编程不是机械工具
靠巧合编程
避免靠巧合编程,不要依靠运气和偶然地成功,而要深思熟虑地编程;
巧合编程:实现地偶然;语境地偶然;隐含地假定;
Don’t Program by Coincidence.不要靠巧合编程
深思熟虑地编程
1. 总是意识到自己在做什么
2. 不要盲目地编程
3. 按照计划行事,不管计划写在哪里
4. 依靠可靠地事务
5. 为你地假定建立文档
6. 不要只是测试你的代码,还要测试你的假定
7. 为你的工作划分优先级
8. 不要让已有地代码支配将来的代码
算法的效率
推荐:Sedgewick关于算法的书
常识估算:
简单循环O(n);嵌套循环O(n*n);二分法O(nlgn);组合:效率失控
Estimate the Order of Your Algorithms.估算你的算法的阶
Test Your Estimate.测试你的估算
重构
重写、重做和重新架构代码合起来,成为重构(refactoring)
应该重构代码的条件:
1. 重复,违反DRY原则
2. 非正交设计
3. 过时的知识
4. 性能不好
Refactor Early,Refactor Often.早重构,常重构
如何进行重构:
1. 不要试图在重构的同时增加功能;
2. 在开始重构之前,确保你拥有良好的测试;
3. 采取短小,深思熟虑的步骤
易于测试的代码
单元测试是对模块进行演练的代码,也是针对合约的测试
Design to Test.为测试而设计
测试驱动法:先测试代码,再进行模块测试
Print法——>即兴测试
Test Your Software,Or Your Users Will.测试你的软件,否则你的用户就得测试
邪恶的向导
慎用设计向导,否则那些自动生成的代码会让你崩溃
Don’t Use Wizard Code You Don’t UnderStand.不要使用你不理解的向导代码