14. 写单元测试
每个程序员都知道他们应该为自己的代码编写测试,但很少有人会这样做。问其“为什么不呢?”通常会回应“我太忙了。”这很快就会变成了一个恶性循环——你感到压力越大(越忙),你写的测试就会越少,你的代码也会变得不太稳定,你的生产力会越来越低。这样一来,你的压力就更大了(工作更忙了)。正是由于这样的恶性循环,导致程序员的编码热情降低。我们发现,有时一个简单的测试框架,就可以让工作有很大的不同。
(没有单元测试)你不是在重构,你只是正在改变一堆狗屎。——Hamlet D'Arcy
15. 测试驱动开发&控制反转(Inversion of Control)
即使你的代码不需要测试,你也应该编写可测试的代码。IoC(控制反转)可以帮你这样做。尝试在测试时注入对测试友好的依赖或模拟实例,并隔离受测试单元。
16. 避免将对象创建与应用程序逻辑混合在一起
17. 避免创建技术债务
尽管不成熟的代码可以正常工作,客户也完全可以接受,但是最后出现的技术债务将会使你疲惫不堪,整个工作组也有可能会被这些技术债务困在原地。
18. 过早优化是罪恶之源
一些程序员会浪费大量的时间去思考或担心程序中非关键部分的运行速度,而他们的这些尝试有可能会对最终的调试和维护产生负面影响。我们应该忘掉小的效率,在97%的时间内告诫自己“过早优化是罪恶之源”,但是,也一定不能在关键的3%上错过优化机会。
19. 计划,计划,计划
首次就做正确的事情比稍后重做的代价要小得多,发现解决问题越早,代价就越小。
夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜少算,而况于无算乎!吾以此观之,胜负见矣。——孙子兵法
计划是无用的,规划是无价的。——温斯顿•丘吉尔
Copyright © 2004-2024 Ynicp.com 版权所有 法律顾问:建纬(昆明)律师事务所 昆明市网翼通科技有限公司 滇ICP备08002592号-4