现在的软件越来越宠大、应用越来越丰富、应用逻辑也越来越复杂。不象最初的软件开只依靠个人的技巧来完成的。为了解决软件危机,有许多专家和组织也提出了相应的方法论。身为程序员我又应如何来提高我的软件开发能力呢?
1:采用合适的技术
程序员大凡都是聪明的人,至少在抽象思维方面是比较强的。这也决定了我们这些程序员大都有一种追求技术的好斗心。当然有这个好斗心是好的,这是我们得以不断追赶日新月异技术的源动力。但是在开发项目时我们应只能采用合适的技术,因为我们的项目有商业目的。我们不能为了一个小小项目而搬出EJB、DCOM等高深的技术来。也不能因为一时的项目时间吃紧而放弃应有的技术。
2:利用可复用的资源
我总是对别人写的代码抱以审视的态度,总会以为别的代码里有着BUG或者他的模块里有着某种机关。我总想试图自已从无到有地搭建所有的模块。有时甚至怀疑MICROSOFT在MFC这个框架里放入了储如什么“窃听器”,我变得很糟糕。一个生产飞机的公司得要从零开始地生产每一个零件了,这确实是很有趣。我们会发现公司会很快进入一个“疲惫”的状态。当然生产飞机的公司不会这样做,他会采购有质量保证的零件,为什么我们不这样做呢?当然我们也要对将要采用的资源给以质量验证了。
3:画出你的意图
蜜蜂建筑的蜂巢漂亮极了,连最伟大的建筑师也不得不如是说。但是它的建巢行为并没有任何的图纸、规划,它们完全凭着本能,是不是我们的“这种艺术行为”(我在这里这样说,但实际上别人并不会这样认为的)也不需要图纸、规划呢?的确是,不过前提是你必须一出生就会写漂亮代码了(那是你的一种本能)。别以为画图纸、规划乱费了你的时间。看看指南针再走路,是不是等你走出森林才发现走错了方向更好。
4:提高沟通、协作能力
软件开发是一个集体的劳动,至少现在的大多数商业软件不再是单枪匹马地完成的。就算是一个人完成的软件那么这个程序员也会有他的上司。我们应在一个愉快的环境中工作,这样我们的艺术细胞才能跳动起来,灵感才能冒出来。又有谁愿意在一个郁闷的环境中工作呢?一句意思相同的话,用两个句子表达的作用是可能完全不同。我们要跟同事进行良好沟通以最快速度来完成工作,我们要跟上司良好的沟通以取得支持。我要提高自己的沟通、协作能力。
5:持续学习
软件开发技术在飞速地变化,身在这个浪潮中的我们只有不断地学习。不学习就等于倒退,再说就算不倒退。我相信在我所专的这个领域里我还是有太多的未知,为什么我不在空闲时去探索它呢?学海无涯,但我们不一定是苦作舟呀,如果你对此已不感兴趣或者是讨厌了,我建议是马上退出去做别的。因为这世上赚钱的法子还很多。
6:测试自己的模块
不要以为测试是测试员的事,我们要对自己做出的模块有质量的保证,我们也可以籍此来验证自己的思路、发现自己某处的缺陷。这样我们就在总结着经验,一些从“错误”中发掘出来的错误更加宝贵,因为这些都是经过实践洗礼。就像电视里经过越战的战士比较历害一样。
7:写出良好的注释
我阅过很多的项目代码,我发现大师级的模块里总是有很多良好的注释,相反有一些有点功底的人他们的代码里的注释相当少,有的根本没有。现在的很多集成环境能够自动地从我们的注释中生成文档,有这样的支持,我们为什么还吝啬我们的注释呢?