解惑

解己之惑,解人之惑

日:2005年6月23日

需要掌握的软件开发技术

虽然现在有很多的软件开发技术需要我们掌握,但是就我而言,有如下几个需要掌握的技术,因为只有掌握这些,你才能得到一个比较好的系统设计,系统的灵活性、协调性、可扩展性、稳定性才能得到比较好的保证。
 

  • 设计模式:这个是这几年一直在被热炒的技术,虽然今年似乎热度有所下降,但是这个实在是非常重要的技术,你不一定精通所有的经典模式,但是对于常见的几种一定需要掌握。 
  • 重构:这个在XP中可能强调得比较多,在其它的场合提出得比较少,但是它实在是防止过度设计和优化系统设计的一个利器,需要强调的是重构必须建立在单元测试的基础上,否则系统的稳定性将得不到保证。 
  • 单元测试:这个是保证系统质量的最关键的一个因素,也是保证有效的重构的基础。 
  • IoC:就我的理解,就是要加大对配置的依赖而非代码间的直接依赖,虽然这样做以后系统的总体结构和代码间的关系变得不像以前那么清晰,但是这个确实是使得系统更加灵活和可扩展的不二法宝。 
  • AOP:虽然我还没有真正使用过,但是实在是喜欢它,因为这个可以很好的实现动态的Plugin结构,也是提高系统的灵活性和可扩展性的法宝,而且可以将一些共通的杂项延迟到以后考虑。 
  • 重用:虽然这个不应该算一种技术,但是我想强调项目组内的代码重用,这个是保证系统的行为一致和协调的关键因素,就像我在另外一篇文章提升项目组的开发效率中所强调的那样。

J2EE世界的现状:生机勃勃的生态系统

今天在CSDN上看到一个以这个为标题的新闻,猛然间觉得一语道破了长久以来对Java界的感觉。一直以来总在看到关于Java和.Net的讨论和比较,但是总觉得Java更好一些,一则是担心.Net是MS一家控制的,二则对MS的垄断也比较反感,三则自己很欣赏开源精神,四则Java的核心类库的源代码都是公开的,遇到问题可以研究源代码。虽然平心而论,微软的产品在易用性上确实比较高,而且开发工具的功能也很全,MSDN的开发文档更是非常的丰富完善,但除了上面说到的原因外总感到有其它的因素,那就是Java界其实在思路上比.Net要活跃得多,跟随MS的技术人员在遇到不能解决或者不方便的时候更多的是等待MS拿出新的API或者规范,而Java界不然,SUN的东东功能远远不能满足大家的需要,这个其实给了别人以机会,他可以有很多对Java的功能进行补充的余地,而且不用担心SUN以后拿出相同的功能时一下子将自己掐死,因为SUN没有那个能力,而MS有(这种情况已经发生了不知道多少次)。正是SUN给追随者留下的这个空间使得大家有很多的发挥余地,也促进了这个生态的循环。证明这个观点的一个现象就是.Net下的开发者会抄袭Java界的成果,例如JUnit,Hibernate,Ant等等,都被冠以N后拿到.Net下,但是好像还没有听说什么.Net下很好的东西被Java所抄袭。所以说,Java世界更像一个生机勃勃的生态系统,有很多相互依存的关系,而MS的架构则更像一个供给系统,MS供,而MS的开发者消费。

广博和精深

一个人要想做到既广博又精深几乎是不可能,虽然人类历史上曾经出现过像阿基米德、达芬奇、拉斐尔之类的奇人,但是那是在知识相对匮乏的时代,对于现代人而言,能通一门科学或者学科已经是非常的不易。虽然鱼与熊掌不能兼得,但是也不是水火不容,无论从事什么工作,都可以追求广博,对世界的方方面面都有所接触不会是坏事,而且可能会对你的性格造成一定的影响,就我而言,感觉可以让人更加大度一些,不会让自己有不可一世的感觉,也不会让自己萎靡不振;而追求精深可以很好的树立自己的自信,可以表明自己的能力,也可以解除生活之虞。万事在于把握一个度,过犹不及。

© 2025 解惑

本主题由Anders Noren提供向上 ↑