李天平的博客


天道酬勤
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

心得体会:关于开发效率和项目周期的问题

Posted on 2005-12-03 01:23  李天平  阅读(4240)  评论(1编辑  收藏  举报
      在项目开发的过程中,经常会遇到市场人员急命的催,开发人员玩命的写,但还是赶不上进度,每个人都感觉很累,却没有太大效果。 怎么办呢?我想这种情况是可以避免的,退一步说,最起码应该不会像这个样子。这里总结一下自己的一些心得和体会:

1.经常总结完成模块中共性的代码,封装成方法或组件,方便以后调用。
   比如,数据访问,XML配置操作分页控件,数据校验,加密等等我都总结成一个个独立的模块或组件,使用的时候拿来调用就行了,为项目争取了很多时间,也留出更多的时间来想业务逻辑的处理。

2.复杂业务简单化
   对一些复杂的业务系统,可以通过抽象的方式,来简单化,把复杂的问题抽象成简单的模型,变成人们容易理解的业务模型。能用简单的方式解决的问题我们为什么要搞的那么复杂。我们开发软件就是来解决问题的,不是来做秀的。

3.思路清晰,代码简洁,通读易懂。特别对团队开发很是重要。
   我不知道有些程序员怎么了,个人英雄主义很重,总是把代码写的稀奇古怪,这样好像来表示自己的不同凡响,技术水平高。其实,我认为作为现在的团队开发,这样会给企业带来很大的隐患。同时我个人觉得这也不是一个好的编码习惯,因为写代码也是人一种表达思想的方式,用最少的话和最精辟的词表达出人们容易理解的问题才是最厉害的。就像人穿衣服注意整洁一样,再高贵的衣服,如果不注意整洁,给人的感觉一样很糟糕的。

4.注意高内聚和低耦合。减少模块间的耦合度,抽离出通用的模块,每个模块就像一块积木。这样做一个系统时,如果能充分利用这些资源,会起到事半功倍的效果。省时省力。我总结的角色权限管理摸块就是这样,用到了很多项目,也确实为我节省了不少时间,也可以说为公司创造了不少效益。

5.做好架构设计。好的架构会给开发人员一个明确的导向,且不会让程序员作太多的无用功和重复劳动和返工。并且好的可扩展性设计会对项目善变的需求有好的应对能力。

6.采用OOP,分层开发等经典的开发模式,从一定程度上减少重复,增强扩展性。

7.尽量采用成熟可靠的技术
    这句话我想有两种理解,
一:采用最合适的技术,而不是选择“最先进”的。不能因为“用技术”而“用技术”。它给项目带来的后果是不可估量的,风险也是很大的,以至甚至延期等等。当然学习好它还是很好的,但是在做商业应用方面还要考虑好。
二:去用那些已经存在的成熟的模式或代码,不要自己再去“造车”了。一来缩短开发周期,二来降低风险。所以,我们平常开发时,还是要有一定的“拿来主义”,这没什么不好的,相反,应该是一个明智的选择。

8.学会改变世界。
    写了很久的程序,养成一个习惯,就是坚持用尽量少的代码实现尽量多的事情,所以一般能共用的代码,我就写成共用的,这样基本上就减少了不少的代码量。另外,通过一定的抽象过程,本人已经总结出一定规律,并成功的开发出一个.Net(C#)代码自动生成器工具,基本上我尝试了一下,一个有二十几个表的系统,二十分钟内,我就完成了三层架构的构建,生成了80%的代码,这个过程如果纯手工的话,我觉得效率高的也要一两周吧。人类的进步是从使用工具开始的,我们要进步也比须制造工具来替代人工,改变世界,其实我们的生活可以很精彩。


(作者:李天平    转载请注明)