﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-火焰出林工作室-文章分类-程序人经验谈</title><link>http://www.blogjava.net/blameswood/category/26352.html</link><description>程序人生:JAVA Web之路</description><language>zh-cn</language><lastBuildDate>Thu, 04 Oct 2007 16:09:09 GMT</lastBuildDate><pubDate>Thu, 04 Oct 2007 16:09:09 GMT</pubDate><ttl>60</ttl><item><title>对J2EE项目的一些体会</title><link>http://www.blogjava.net/blameswood/articles/150443.html</link><dc:creator>火焰出林</dc:creator><author>火焰出林</author><pubDate>Thu, 04 Oct 2007 14:07:00 GMT</pubDate><guid>http://www.blogjava.net/blameswood/articles/150443.html</guid><wfw:comment>http://www.blogjava.net/blameswood/comments/150443.html</wfw:comment><comments>http://www.blogjava.net/blameswood/articles/150443.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blameswood/comments/commentRss/150443.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blameswood/services/trackbacks/150443.html</trackback:ping><description><![CDATA[1、认真考虑是否真要使用J2EE&nbsp;<br />
<br />
这个很重要，非常重要。J2EE涵盖的内容大而全，但很多不一定就是具体实际项目需要的。象EJB级的权限控制，如果你的表现层（大部分项目就是Web&nbsp;server）和应用服务器不存在信任问题，那么基本上就不用考虑。又比如伸缩性，如果同时在线最多不超过100个，就没什么用处。针对项目的实际情况选择效费比最合适的解决方案，而不要为了应用先进技术而应用先进技术。&nbsp;<br />
<br />
2、选择合适的分布模型&nbsp;<br />
<br />
提起分布，很多人可能都会有这样的设想：server&nbsp;A处理认证，server&nbsp;B处理订单，server&nbsp;C处理仓储；如果B的负载太大，那么再细分一下：录入、修改部分的EJB部署在server&nbsp;D，统计、分析部分的部署在server&nbsp;E，等等。其实没有必要，我的体会是：除非业务必须（如分支机构统一通过总部的app&nbsp;server来进行权限验证），否则最好将所有的应用全部放在一个app&nbsp;server中，能在一个进程空间内更好（使用home&nbsp;interface），然后进行平行的分布?D?D即集群中的所有app&nbsp;server功能上都是等价的。相比前一种垂直（或者网状）分布，平行分布的可靠性、容错能力、伸缩能力都要更好，同时减少了部署、管理负担。最重要的是，减少了因为业务逻辑层内部跨进程调用引起的开销，提高了整体性能。然而，如果a、一些业务逻辑必须相互独立部署、管理，b、负载较为集中地分布在若干个EJB中，那么，垂直分布还是必不可少的。&nbsp;<br />
<br />
3、为Entity&nbsp;bean选择合适的数据存储方案&nbsp;<br />
首先尽量使用CMP管理数据存储，尤其是简单的，大部分业务操作都是插入删除修改的实体，不然光insert&nbsp;update就够你忙的了，更不用说数据库移植问题。其次对于简单的一对一、一对多关系，如果你的app&nbsp;server没有实现EJB2.0规范，可以考虑使用O/R映射工具帮助开发，象Cocobase,&nbsp;EJB&nbsp;creator等等，可以提高不少效率。对于复杂的对象存储，没办法，老老实实写代码吧&#8230;&#8230;&nbsp;<br />
<br />
4、慎重考虑EJBHome.findByXXX()，listXXX()的实现&nbsp;<br />
设想对一个百万记录级的表进行检索，结果集很可能是上万条、十万条，这本身就是一个耗费资源的过程；同时对于检索到的每一个记录还要做一次findByPrimarykey，这么多次跨进程调用，开销可想而知。为什么有的人觉得用J2EE实现的程序奇慢无比，缺乏仔细的设计就是主要原因之一。&nbsp;<br />
<br />
5、使用抽象数据结构传递数据&nbsp;<br />
例如，listOrder()返回Collection而不是Vector，insertItems()也是以Collection为参数而不是LinkedList。当然这个实际上与J2EE本身关系不是很大。&nbsp;<br />
<br />
6、对Entity&nbsp;bean尽量使用Map来存储、传递属性&nbsp;<br />
对业务流程没有很大影响的属性，象身高体重出生年月之类，最好用一个HashMap来存放，而不要直接用成员变量+getXXX/setXXX。对于ejbCreate也是一样，十几个参数的create方法，实现、维护都是代价高昂的。需知实际应用中这些字段的增减、属性变化是家常便饭，光维护get/set方法可能就会让你吐血了。但是，对于对业务流程有关建意义的字段，例如员工的入职日期决定其休假天数的计算，那么还是作为成员变量的好。&nbsp;<br />
7、分清Entity&nbsp;bean和session&nbsp;bean的职责&nbsp;<br />
<br />
Entity&nbsp;bean是实体的对象形式，它的职责应限于自身的存储，以及对外部提供访问内部数据的接口（所以我认为它本质上应该属于数据存储层）。Entity&nbsp;bean应该尽量避免自己实现有其他Entity&nbsp;bean参与的业务逻辑。例如，订单的货款收到以后，将订单的状态由&#8220;提交&#8221;变为&#8220;生效&#8221;，同时将订单的金额按照某种规则折算成该客户的积分。这个业务流程有三个对象参与：客户，订单和积分折算策略。那么，实现流程的方法应该在哪个对象中呢，是客户还是订单？都不合适，如果在订单中，那么订单对象需要了解客户积分属性的接口及积分折算的接口；如果在客户对象中也是一样。耦合度增强就意味着维护难度增大，如果用户对象的积分接口或者折算策略的接口改变了，那么改变就会蔓延到订单对象中。合适的方式是用一个OrderProcessor来管理订单处理流程，以stateless&nbsp;session&nbsp;bean来实现。OrderProcessor了解所有参与订单处理的对象的接口，它集中管理对订单的处理流程，如果流程发生变化，订单生效之前要通过审批，这种变化不会影响到参与流程的实体对象；同样，参与流程的某个对象接口发生了变化，也不会影响到其他对象。&nbsp;<br />
<br />
8、重视表现层的复用&nbsp;<br />
<br />
企业软件的界面，大部分都可以用一些基本元素如grid,&nbsp;tree,&nbsp;page&nbsp;control,&nbsp;form等组合而来。如果能合理采用一些技术对这些元素进行复用，不但有利于降低开发成本，而且也便于统一维护界面风格。对J2EE的表现层，也就是JSP/servlet，可以采用的复用技术不多，基本上就是文件包含、创建类库、Tag&nbsp;lig（本质上还是创建类库，使用起来我觉得还不一定有直接方法调用来的方便）等等。还有一些不同于JSP/servlet的表现层框架，如Apache&nbsp;Velocity、Enhydra、WebMacro等等，也可以参考。虽然Java还没有一个规范的、统一的HTML界面元素类库，但自己项目内部统一使用某种方案还是可能的。&nbsp;<br />
<br />
另外，XML+XSLT也是一种方案。将数据直接用XML形式表现出来，绕过Entity&nbsp;bean，然后再用XSLT模版转化成最终界面。XML与XSLT之间属于模式匹配式的松散耦合，可以避免强类型语言方法调用带来的参数类型、个数、顺序限制，做到彻底地数据与界面分离；同时XML形式的数据集在app&nbsp;server中可以按照合适的方案进行缓冲，避免频繁访问数据库，抵销XSLT转换引入的性能负担。同时XML和XSLT是业界广泛采纳的标准，如果今后采用不同的体系结构（如从J2EE移植到.Net或者相反），表现层的XSLT形式的界面可以重用。JSP或ASP就没有这种可能。问题在于首先要管理关系型数据到层次型XML数据的映射，其次如果没有一个好的工具，创建、维护XSLT也是很费时费力的事情。我现在的项目正在朝这个方向努力，希望能做一个象Delphi那样好用的，基于XSLT的HTML界面控件开发、管理、使用环境。&nbsp;<br />
<br />
9、充分估计开发的艰辛程度&nbsp;<br />
<br />
这个，一言难尽。总之实际需求的变化往往是超乎我们想象的，要在需求分析结束的时候就清晰划分模块接口几乎做不到，计划不如变化。而J2EE体系架构是重量级的框架，虽然app&nbsp;server实现了很多功能，但同时也要求你开发的时候付出额外的代价。对于J2EE项目的资金、时间、人手等资源估计，宁可多不可少，千万不要简单认为用了一个weblogic就万事大吉了。&nbsp;<br />
<img src ="http://www.blogjava.net/blameswood/aggbug/150443.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blameswood/" target="_blank">火焰出林</a> 2007-10-04 22:07 <a href="http://www.blogjava.net/blameswood/articles/150443.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>漫长的道路——走向J2EE </title><link>http://www.blogjava.net/blameswood/articles/150442.html</link><dc:creator>火焰出林</dc:creator><author>火焰出林</author><pubDate>Thu, 04 Oct 2007 14:05:00 GMT</pubDate><guid>http://www.blogjava.net/blameswood/articles/150442.html</guid><wfw:comment>http://www.blogjava.net/blameswood/comments/150442.html</wfw:comment><comments>http://www.blogjava.net/blameswood/articles/150442.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blameswood/comments/commentRss/150442.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blameswood/services/trackbacks/150442.html</trackback:ping><description><![CDATA[<p>初次涉及<a href="http://www.javadby.com/"><u>Java</u></a>领域，感觉到<a href="http://www.javadby.com/"><u>Java</u></a>入门是好像没有C,C++入门快，工具也没有什么Turbo C,Visual C++好用（自己的破机器实在陪不起JBuilder，贪婪的家伙，以后一定要收拾她）。什么JAVA_HOME,CLASSPATH，虚拟机等概念都是初次基础，旁边的人都很少用<a href="http://www.javadby.com/"><u>Java</u></a>的。感觉<a href="http://www.javadby.com/"><u>Java</u></a>就是做Applet的。慢慢的知道了<a href="http://java.sun.com/">http://java.sun.com</a>，开始知道<a href="http://www.javadby.com/"><u>Java</u></a>博大精深。让我不可思议的是JAVA 2,JDK,J2SE,<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>,J2ME等新名词在自己的脑海里蔓延。慢慢的自己知道了JCP组织是制定<a href="http://www.javadby.com/"><u>Java</u></a>相关规范的发源地<a href="http://java.jcp.org/">http://java.jcp.org</a> ,于是订阅了一份邮件列表。真是好东西啊，定期有<a href="http://www.javadby.com/"><u>Java</u></a>的最新动向，所以<a href="http://www.javadby.com/"><u>Java</u></a>的动态尽收眼里，建议大家也去订阅一份。免费的。自己动手下载了<a href="http://www.javadby.com/"><u>Java</u></a>(TM) 2 SDK和<a href="http://www.javadby.com/"><u>Java</u></a>(TM) 2 SDK Documentation后,不懂的就查<a href="http://www.javadby.com/"><u>Java</u></a>(TM) 2 SDK Documentation,特别好用，也不需要什么手册之类的，建议大家都要有一份。<br />
&nbsp;&nbsp;&nbsp; 搭起<a href="http://www.javadby.com/"><u>Java</u></a>开发环境后，记得还是用UltraEdit编辑并编译的（在其中可以配好<a href="http://www.javadby.com/"><u>Java</u></a>的编译环境）。慢慢的改用JCreator了。不错，至少很多方面有改进。最开始卖了一套&lt;<a href="http://www.javadby.com/"><u>Java</u></a> 2核心技术&gt; 2本书，还不错。对于入门来说足够了。慢慢的知道&lt;Thinking in <a href="http://www.javadby.com/"><u>Java</u></a>&gt;是一本好书，后来才知道，有了<a href="http://www.javadby.com/"><u>Java</u></a>经验后，看这本书特别过瘾，所以现在还经常翻翻。周而复始的看，效果特别好。慢慢的知道了Oreilly公司（<a href="http://www.oreilly.com/">http://www.oreilly.com</a>）出的图书不错，很高雅，国内翻译的也还可以（<a href="http://www.oreilly.com.cn/">http://www.oreilly.com.cn</a>）。本人收集了很多Oreilly的原版图书，有需要的可以和我联系（Acrobat pdf格式）。慢慢知道了jjhou这个人.(<a href="http://jjhou.csdn.net/">http://jjhou.csdn.net</a> )以及他的个人网站，最让我感兴趣的是jjhou老师写的散文，书评，很有收获，不是为技术而技术。很有趣味性。其中, <a href="http://www.epubcn.com/">http://www.epubcn.com</a> 上有很多美丽的图书。<br />
&nbsp;&nbsp;&nbsp; 不知道什么时候，要开始干项目了，以前从书上看到的东西，慢慢的在项目中有了很好的机会去温习，慢慢的有了感觉，开始主要是用Swing,开发桌面系统，放置一个按钮怎么也放不好，后来才知道有一个布局管理器。咳，这个婆婆的<a href="http://www.javadby.com/"><u>Java</u></a>也讨厌的很。开始涉及到数据库访问,JDBC。后来我才知道，Sun的<a href="http://www.javadby.com/"><u>Java</u></a>网站有一个<a href="http://www.javadby.com/"><u>Java</u></a> Tutorial。（<a href="http://java.sun.com/docs/books/tutorial/">http://java.sun.com/docs/books/tutorial/</a> ）。同时，也知道了蔡??先生的sleepless in java(<a href="http://www.oreilly.com.tw/sleepless/index.htm">http://www.oreilly.com.tw/sleepless/index.htm</a> ),太美了，美的很。 满满的，OReilly, <a href="http://www.onjava.com/">http://www.onjava.com/</a> 也是不错的地方。都有很多优秀的文章。<a href="http://www-900.ibm.com/developerWorks/cn/index.shtml">http://www-900.ibm.com/developerWorks/cn/index.shtml</a>，也很棒。<br />
&nbsp;&nbsp;&nbsp; 每次，美美的享用一顿大餐后，也来也觉得自己是不是应该换一种学习方式，因为这样学习效果不太好。比较乱。让我想起了<a href="http://www.javadby.com/"><u>Java</u></a> Specification，对，我开始研究<a href="http://www.javadby.com/"><u>Java</u></a>规范了。最开始下载的规范是JDBC Specification，很多概念一目了然，尤其是DATABASE的事务性控制，自己对于她的理解慢慢的有了较为深入的了解。对于开发C/S结构，比如,Swing+JDBC,开发数据库应用系统，让我学会开发两层结构的应用系统。很神气。<br />
&nbsp;&nbsp;&nbsp; 也不知道什么时候要开始开发一个网站，基于Linux+JSP+<a href="http://www.javadby.com/"><u>Java</u></a>Bean+Oracle的系统。很是有意思。为什么这么说呢？因为不同于Swing+JDBC的开发模式，系统之间多了一层(<a href="http://www.javadby.com/"><u>Java</u></a>Bean,姑且就这么叫吧！嘻嘻)；同时，很多开发技术和面向左面系统不一样，比如分页技术。<br />
&nbsp;&nbsp;&nbsp; 完成项目后，自己对于<a href="http://www.javadby.com/"><u>Java</u></a>的很多方面都比较了解了。开始思考一个问题，<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>是什么东西？。我们学习<a href="http://www.javadby.com/"><u>Java</u></a>大概有3个方向，第一，桌面系统，包括C/S结构；第二，J2ME,面向无限领域，很有潜力的家伙，看看中国的手机用户就知道了。第三，面向企业应用、计算的平台,<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>.<br />
&nbsp;&nbsp;&nbsp; 在痛苦的抉择后，我选择<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>..分享<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>给我带来的快乐。学到现在，最大的感觉，就是: 简单就是美，美就是<a href="http://www.javadby.com/"><u>Java</u></a>.不会有学MFC的痛苦，也不会有去分析STL的艰辛，网路应用上一点也不逊色于C++。开始进入我的<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>之旅。<br />
&nbsp;&nbsp;&nbsp; 还是下载了一份<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>规范，一份<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a> SDK。开始研究<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>,结合<a href="http://java.sun.com/j2ee/tutorial/index.html">http://java.sun.com/j2ee/tutorial/index.html</a> 提供的<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a> Tutorial开始研究了。大概过了1个月，开始有感觉了，也就在这个时候，需要我去完成一个<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>构架方面的项目。差不多边学编写完成了，很多概念在写完后都不是很清晰，因为东西太多了，主要是基于JSP(Servlet)+Session Bean+EIS构架开发系统。当然也学到很多东西，至少对SB&nbsp; EJB的编写不成问题。懂得了JSP如何调用EJB&#8230;&#8230;..<br />
&nbsp;&nbsp;&nbsp; 完成项目后，我开始研究<a href="http://www.javadby.com/"><u>Java</u></a> Pet Store了，很是过瘾。开始知道了Servlet过滤器，XML方面较为全面的知识，知道了<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>整个框架中各种技术的实际应用。慢慢的，开始研究WebLogic配置好的Pet Store（也是Sun公司的）。慢慢的分析两者的不同之处。开始对<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a> Specification有了很好的感觉。因为<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a> Specification本身是很严肃的，但Pet Store给出了活力。在反复的学习中，我明白了<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>构架的70?D80%。新的问题又出来了，实际企业中会如何建构一个<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>系统呢？带着这个问题，我开始分析Core <a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a> Patterns,这本书。同时，也有EJB Design Patterns。慢慢的，开始知道了<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>的魅力所在，知道了<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>为什么会在企业中得到较为好的认可。大家都知道，设计模式一词，在公司上班，你们的老板会看你的代码吗？会赞赏你的DP很好吗，我想很少。在完成你的工作进度之余，加班，加班，再加班，我想你没有更多的时间去分析研究DP.但，<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>框架不一样，她内置了很多优秀的设计模式，我们在设计开发、构架一个<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>系统中用到了很多设计模式。比如，MVC,EJB中封装的DAO设计模式。构架J2E系统用Session Fa&#231;ade,Message Fa&#231;ade设计模式也不会太困难。这也是后来<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>吸引我的地方。慢慢的我知道了，作为一个<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>开发者，我们要掌握其中的核心内容。我个人认为，3方面很重要。实施EJB系统常用的架构、设计模式，比如session fa&#231;ade、message fa&#231;ade、DTO等。<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>系统构架中常用的模式。UML-&gt; EJB,EJB-&gt;UML相互映射。现在也一样在研究。<br />
&nbsp;&nbsp;&nbsp; 善于享受孤独，幸好还有<a href="http://www.javadby.com/yuyanjichu/index.html"><u>J2EE</u></a>！</p>
<img src ="http://www.blogjava.net/blameswood/aggbug/150442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blameswood/" target="_blank">火焰出林</a> 2007-10-04 22:05 <a href="http://www.blogjava.net/blameswood/articles/150442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序员超越软件蓝领的七种武器</title><link>http://www.blogjava.net/blameswood/articles/150408.html</link><dc:creator>火焰出林</dc:creator><author>火焰出林</author><pubDate>Thu, 04 Oct 2007 12:34:00 GMT</pubDate><guid>http://www.blogjava.net/blameswood/articles/150408.html</guid><wfw:comment>http://www.blogjava.net/blameswood/comments/150408.html</wfw:comment><comments>http://www.blogjava.net/blameswood/articles/150408.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/blameswood/comments/commentRss/150408.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/blameswood/services/trackbacks/150408.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">信息技术的发展时间虽然不长，但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一，更是其中的主要参与者，这是时代赋予每个程序员的机会和责任。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">信息技术的更新速度是惊人的，程序员的职业生涯则是一个要求不断学习的过程，永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页，在网上聊天，打游戏，浪费了大量的时间，十分不可取。而另外一种情况是，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">IT</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">技术的日新月异使很多程序员眼花缭乱，什么都想学，却又不知从何学起，今天看看这个，明天学学那个，贪多不熟。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">虽然</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">IT</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">技术发展迅速，但很多技术都是有规律可循，一些基本的概念、原理和方法还很通用，可以举一反三。本人根据自己的体会和经验，向那些刚刚踏入</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">IT</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器，有了这七种武器，虽不敢说笑傲江湖，但将自己立于不败之地还是可以的。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第一种武器：开发工具</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">至少熟练掌握两到三种开发工具的使用，这是程序员的立身之本，其中</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C/C++</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">和</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">JAVA</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是我重点推荐的开发工具，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C/C++</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">以其高效率和高度的灵活性成为开发工具中的利器，很多系统级的软件还是用</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C/C++</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">编写。而</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">JAVA</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的跨平台和与</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">WEB</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">很好的结合是</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">JAVA</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的优势所在，而本人对</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">SUN</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">公司的</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&#8220;</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">网络即计算机</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的概念相当欣赏，并相信</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">JAVA</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">即其相关的技术集</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">JAVA&nbsp;One</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">会成为未来的主流开发工具之一。其次，如果能掌握一种简便的可视化开发工具，如</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">VB</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">PowerBuilder</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Delphi</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">C++&nbsp;Builder</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，则更好，这些开发工具减小了开发难度，并能够强化程序员对象模型的概念。另外，需要掌握基本的脚本语言，如</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">shell,perl</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">等，至少能读懂这些脚本代码。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第二种武器：数据库</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">为什么数据库是如此重要？很多应用程序都是以数据库的数据为中心，而数据库的产品也有不少，其中关系型数据库仍是主流形式，所以程序员至少熟练掌握一两种数据库，对关系型数据库的关键元素要非常清楚，要熟练掌握</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">SQL</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具，但</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">SQL</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是基础，是通用的数据库操作方法。如果没有机会接触商业数据库系统，可以使用免费的数据库产品是一个不错的选择，如</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">mySQL,&nbsp;Postgres</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">等。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第三种武器：操作系统</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">当前主流的操作系统是</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Windows</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Linux/Unix</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，熟练地使用这些操作系统是必须的，但只有这些还远远不够。要想成为一个真正的编程高手，需要深入了解操作系统，了解它的内存管理机制、进程</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">/</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">线程调度、信号、内核对象、系统调用、协议栈实现等。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Linux</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">作为开发源码的操作系统，是一个很好的学习平台，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Linux</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">几乎具备了所有现代操作系统的特征。虽然</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Windows</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">系统的内核实现机制的资料较少，但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后，你会发现自己上了一个新的台阶。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第四种武器：网络协议</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">TCP/IP&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">在互联网如此普及的今天，如果您还没有对互联网的支撑协议</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">TCP/IP</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">协议栈有很好的掌握，就需要迅速补上这一课，网络技术已改变了软件运行的模式，从最早的客户</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">/</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">服务器结构，到今天的</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">WEB&nbsp;Services</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，再到未来的网格计算，这一切都离不开以</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">TCP/IP</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">协议栈为基础的网络协议支持，所以，深入掌握</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">TCP/IP</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">协议是非常必要的。至少，你需要了解</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">ISO</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">七层协议模型，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">IP/UDP/TCP/HTTP</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">等常用协议的原理和三次握手机制。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第五种武器：</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">DCOM/CORBA/XML/WEB&nbsp;Services&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">随着技术的发展，软件与网络的无缝结合是必然趋势，软件系统的位置无关性是未来计算模式的重要特征之一，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">DCOM/CORBA</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是当前两大主流的分布计算的中间件平台，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">DCOM</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是微软</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">COM(</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">组件对象模型</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">)</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的扩展，而</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">CORBA</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">是</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">OMG</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件，而是要理解这些技术的初衷，即为什么需要这项技术，如果你能理解了这一点，再回头看这些技术的具体实现，就如庖丁解牛，迎刃而解。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">XML/WebServices</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">重要性不言而喻，</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">XML</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">以其结构化的表示方法和超强的表达能力被喻为互联网上的</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&#8220;</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">世界语</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">，是分布计算的基石之一。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第六种武器：软件工程与</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">CMM&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">现代大型软件系统的开发中，工程化的开发控制取代个人英雄主义，成为软件系统成功的保证，一个编程高手并不一定是一个优秀的程序员，一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合，编程只是软件生命周期中的其中一环，优秀的程序员应该掌握软件开发各个阶段的基本技能，如市场分析，可行性分析，需求分析，结构设计，详细设计，软件测试等。一句话可以概括我的看法：</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&#8220;</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">创意无限，流程保证</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&#8221;</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">第七种武器：强烈的好奇心</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">什么才是一个程序员的终极武器呢，那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了，它是程序员们永攀高峰的源泉和动力所在。</span><span lang="EN-US" style="font-size: 10pt; font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">&nbsp;<br />
<br />
</span><span style="font-size: 10pt; font-family: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">其实学好一种就够用了。</span>
 <img src ="http://www.blogjava.net/blameswood/aggbug/150408.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/blameswood/" target="_blank">火焰出林</a> 2007-10-04 20:34 <a href="http://www.blogjava.net/blameswood/articles/150408.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>