181、匆忙动手解决问题是你所能做的最低效的事情之一。这将导致草率判断,片面分析,还有并不彻底地改正。如果妄想一蹴而就,没有问题也会弄出问题。压力-----通常是来自自身------将会使程序更倾向于采用随机测试查找错误,并且让程序员在没经过验证的情况下武断判定这种方法能奏效。
182、
183、如果你能在开发过程中认识到软件演化是无法避免且具有重要意义的现象,并对其细加谋划,就可能使这一过程有益于你的开发。
演化一开始就充满危险,但同时也是使你的软件开发接近完美的天赐良机。
184、
185、回归测试
在软件生命周期中,即使一个得到良好维护的测试用例库也可能变得相当大,这使每次回归测试都重新运行完整的测试包变得不切实际。一个完全的回归测试包括每个基线测试用例,时间和成本约束可能阻碍运行这样一个测试,有时测试组不得不选择一个缩减的回归测试包来完成回归测试。
回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时,有可能删除了将揭示回归错误的测试用例,消除了发现回归错误的机会。然而,如果采用了代码相依性分析等安全的缩减技术,就可决定哪些测试用例可以被删除而不会让回归测试的意图遭到破坏。
186、
曾设计了ALGOL语言的团队得到了下面的建议:“完美是优良之大敌。”愈是追求完美,越有可能完不成任务。程序员们首先应该实现程序应该具备的所有功能,然后再使程序臻于完美。
187、高级语言代码行数和程序最终的资源占用和运行速度之间并无必然联系。
188、对于特定类型的项目,运行速度或资源占用是程序员需要重点考虑的问题。这种类型的项目比人们通常所认为的要少,并且随着时间的推移会越来越少。这类项目的性能风险必须通过初期的设计来规避。对其他项目而言,过早地优化则会对软件的整体质量产生严重威胁,受到影响的甚至会包括软件的性能。
189、
190、
191、C#中访问内存的速度比访问磁盘的速度要快上1000倍。