专业程序员
本文翻译自"The Professional Programmer",来自于《程序员应该知道的97件事》一书中的某个章节。
什么是专业程序员?
一个专业程序员的唯一的、最重要的特点是个人的责任。专业程序员会对他们的职业生涯负责,会对他们的估计负责,会对他们的计划承诺负责,会对他们的错误负责,会对他们的技艺负责。一个专业程序员绝不会将他们的责任推到其它人身上。
·如果你是一名专业程序员,你将对你自己的职业生涯负责。负责你的阅读和学习。负责让你紧跟上行业和技术最新发展的步伐。有太多的程序员认为培训他们是雇主的责任。对不起,这真是大错而特错。你想过医生会那样做吗?你想过律师会那样做吗?他们不会。他们会利用自己的时间并且自掏腰包对自己进行培训。他们花费大量业余时间阅读专业期刊或法院判决书。他们努力保持着与时俱进。我们也必须如此。你的雇佣合同明确地阐明了你和你的雇主之间关系。简而言之:他们承诺付给你薪水,你承诺做好工作。
·专业程序员会对他们编写的代码负责。除非他们认为代码可以正常工作了,否则他们绝不会发布代码。用一分钟考虑一下。如果你愿意发布那些你尚不确信可以正常工作的代码,那你怎么可能自称是一个专业程序员呢?专业程序员们预计QA(译注:Quality Assurance,质量保证)人员无法从他们的代码中找出任何问题,因为他们发布的代码都是经过彻底地测试验证的。当然QA也会发现一些问题,毕竟人无完人。不过作为专业程序员,我们的态度必须是:不给QA留下任何问题。
·专业程序员是富有团队精神的成员。他们不仅要对自己的工作负责,他们还对整个团队的成果物负责。他们相互帮助,相互指导,相互学习,甚至在必要的时候代替对方工作。当一个队友失败了,其他人会加进来。他们知道总有一天他们也会成为那个被代替工作的人。
·专业程序员无法忍受庞大的Bug列表。一个庞大的bug列表是草率的。一个在问题跟踪数据库中有着成千上万个问题的系统是一场因草率而导致的悲剧。事实上,在大多数项目中,对问题跟踪系统的急切需求恰恰是一种粗心大意的病兆。只有规模超级庞大的系统才应该有这么冗长的bug列表,并且需要自动化地管理它们。
·专业程序员不会制造混乱。他们以技艺为豪。他们保持代码整净,结构良好,易于阅读。他们遵循业界公认的标准和最佳实践。他们从不仓促行事。想像一下,假如你有一个灵魂出鞘的机会,你在体外观看一名医生给你进行心内直视手术。这位医生有一个最后期限(在字面意义上的)。他必须在心肺体外循环机损坏你太多的血液细胞之前完成手术。你想让他怎么做呢?你想让他像一个典型的软件开发者那样,仓促行事并制造一团混乱吗?你想让他说:“我一会儿会回来解决这个问题的”吗?或者你想让他仔细地遵守手术规范,不慌不忙,自信他的方法就是他能合理地采用的最好的方法。你想要混乱还是专业性?
专业程序员是负责任的。他们对职业生涯负责,对保证代码的正常运行负责,对他们的技艺的质量负责。即使是最后期限迫近,他们也不会放弃原则。事实上,当压力增大时,专业程序员会更加坚定地坚持那些他们认为是正确的原则。
By Uncle Bob
© 2011, bigwhite. 版权所有.
Related posts:
评论