每位开发人员都应铭记的10句编程谚语( 二 )


译注:《注重实效的程序员》,作者Andrew Hunt / DavidThomas 。该书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视――即根据需求,创建用户乐于接受的、可工作和易维护的代码 。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术 。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容 。
译注:破窗理论(BrokenWindowtheory):是关于环境对人们心理造成暗示性或诱导性影响的一种认识 。“破窗效应”理论是指:如果有人打坏了一幢建筑物的窗户玻璃,而这扇窗户又得不到及时的维修,别人就可能受到某些暗示性的纵容去打烂更多的窗户 。发现问题就要及时矫正和补救 。
5. 欲速则不达
经理、客户和程序员正日益变得急躁 。一切都需要做的事,都需要马上就做好 。正因如此,快速修复问题变得非常急迫 。
没时间对一个新功能进行适当的单元测试?好吧,你可以先完成一次测试运行,然后你就可以随时回来继续测试它 。
当访问Y属性时,会不会碰到奇怪的对象引用错误?无论怎样,把代码放到try/catch语句块中 。我们要钓到大鱼啦!
是不是似曾相识呢?这是因为我们在以前已经都做到了 。并且在某些情况下、它是无可非议的 。毕竟,我们有最后期限,还得满足客户和经理 。但不要过于频繁操作,否则你会发现你的代码不稳定,有很多热修复、逻辑重复、未测试的方案和错误处理 。最后,你要么是把事情草草做完,要么是把事情好好做完 。
6. 三思而后行
“敏捷开发”这个词最近被频繁滥用,经常被程序员用来掩饰他们在软件开发过程中的糟糕规划/设计阶段 。我们是设计者,看到产品朝正当方向有实质进展,我们理应高兴 。但意外的是,UML图和用例分析似乎并不能满足我们的愿望 。所以,在不知自己做什么的情况下或者不知自己身处何处时,我们开发人员经常就稀里糊涂地写代码了 。
这就好比你要去吃饭,但你根本没有想好去哪里吃 。因为你太饿了,所以你迫不及待地找个餐馆,定个桌位 。然后你上车开车后沿途在想(找地方吃饭) 。只是,这样会耗费更多的时间,因为你要过较多的U型弯道,还在餐馆前停车,也许最后因等待时间过长而不吃了 。确切地说,你最后应该能找到地方吃饭,但你可能吃的饭并不是你想吃的,并且这样花费的时间,可能比你直接在想去的餐馆订餐所花的时间更长 。
7. 如果你惟一的工具是一把锤子,你往往会把一切问题看成钉子

每位开发人员都应铭记的10句编程谚语

文章插图
 
看见了吧?我早就说过动态记录在这个项目中很有效
程序员有一种倾向,当一谈到他们工具时,其视野就变狭窄了 。一旦某种方法在我们的一个项目上“行得通”,我们就会在接下来所有的项目上都用到它 。学习新东西仿佛是一种煎熬,有时候甚至会心神不定 。从始至终都在想“如果我用之前的方法做、这个就不会这么麻烦了” 。一定要摒弃这种想法,按我们所知道的去做,即使那不是最完美的解决方法 。
坚持自己所知很简单,不过从长远的角度讲,选择一个适合这项工作的工具要容易得多 。否则,就会与你的职业生涯格格不入 。
8. 沉默即赞同
每位开发人员都应铭记的10句编程谚语

文章插图
 
我什么都没看见!没看见!
"破窗理论"与"变成惯性理论"有着宏观的联系 。
编程社区就好像一个现实社区 。每个作品都是一个开发者的缩影 。糟糕的代码发布的越多,就越容易反映现状 。如果你不去努力编写优秀、整洁和稳定的代码,那你每天都将和糟糕的代码相伴了 。
同样地,如果你看到别人写出了糟糕的代码,你就要跟这个人提出来 。注意,这时候机智就应该用上场了 。一般情况下,程序员都愿意承认他们在软件开发中还是有不懂的地方,并且会感谢你的好意 。互相帮助对大家都有利,而对问题视而不见,只会使问题一直存在 。
9. 双鸟在林,不如一鸟在手
如果可以讨论系统架构和重构,那么就差找个时间把事情做完 。为了使正常运作的东西更加简洁而做改动,权衡改动的利弊很重要 。当然了,简洁是一个理想目标,但总会有可以通过重构改进的代码 。在编程世界中,为了代码不过时,会频繁简单改动代码 。但有时候你又必须保证代码对客户有价值 。那么,你面临一个简单窘境:你不能一石二鸟 。你在重构旧代码上所花时间越多,你编写新代码的时间就越少 。在及时改进代码和维护程序之间,也需要找到平衡点 。


推荐阅读