程序员的基本开发素养

程序员应该具备什么样的素养?除了开发的基本功之外,我认为还应该具有洞察细节,控制整体的能力。优秀的程序员具有很强的分析能力,可以发掘出用户潜在的需求,拥有一定的设计能力,并且对自己所写的代码有很好的控制能力。这些能力在软件越来越复杂的时候就更为重要,甚至决定了软件开发的成败。当功能开发需求交到我们手上的时候,即便我们不是架构设计师,我们也应该对这些功能进行一定的分析和设计。有人说任何程序员在写代码之前都有设计,只是设计的深浅、好坏不同罢了。对此我并不认同,首先,设计不是直觉,的确,每个程序员在写代码之前都会在脑子里打草稿,但是这并不代表是进行了认真、仔细的分析,真正的设计要有对潜在需求的分析,用户需求到程序的功能需求的映射,新增功能对系统、其他模块的整合及影响,还包代码路径、错误处理、性能影响、可重用性等等方面的考虑,如果没有这些,是不能称之为设计的。但现实是很多程序员并不注重这些,虽然功能完成的很快,但最后往往被反复的推倒重来、成堆的 bug 搞的焦头烂额。其实如果先花一点时间思考一下,也许只要10分钟,就可以避免很多问题。

程序员具有的另一个基本素养应该是对自己的代码负责。我见过一些程序员能力不错,而且在开发功能时速度很快,但就是缺少一种负责的态度,一种对自己写的代码负责的态度。一个功能完成,绝不仅仅是把代码写完,而是要自己完整的测试并通过才算完成。这里的测试不仅包括所写功能本身,还应该包括对有可能受影响的其他模块的测试,而这恰恰是比所写的功能本身测试更重要,如果我们写出来的功能导致整体系统不稳定,对整体来说就是测试不过的。尤其在现代软件开发中更是如此,软件的复杂性要求多人协作开发,如果开发团队的每个人都只顾自己编写的功能不去考虑整体的话,整个系统是不可能稳定的。相反,如果开发团队的每个人都能认真地负责的对待自己的代码,我相信系统的稳定是可以保证的。

以上两个方面不仅对项目开发的整体有好处,对程序员本身也大有裨益。首先,编码前的设计,是一种有意识的提升设计能力的锻炼。在程序员的职业发展道路上,只要坚持搞技术,最后都是要走上架构设计师的层次上的,而这种有意识的自我提升,会大大加快这个进程。其次,对整体系统稳定性的全面测试有助于提高程序员自身的全局观和整体控制能力,这也是架构师所具有的基本能力。当我们抱怨开发进度紧,时间不够用,bug 满天飞的时候,也多找找自身的问题,看看我们自己是否做到了程序员应该做到的事情,如果能坚持做,我相信会成为优秀的开发人员的。

Advertisements
此条目发表在计算机与 Internet分类目录。将固定链接加入收藏夹。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s