程序员修炼之道

2017-07-11  本文已影响14人  hyhchaos

第一章 注重实效的哲学

(1)为自己承诺的项目进度负责
(2)保持代码编写整洁,设计良好,不要留着瑕疵不修,那会导致代码越来越差
(3)注意周围发生的事情
(4)编写当前足够好的软件(就可以交付给用户了)而不是能在未来达到完美的软件(没有必要,而且用户没有那么多等待时间)
(5)管理知识资产和管理金融资产一样重要
(6)了解听众,用他们感兴趣和理解的方式介绍自己的工作

第二章 注重实效的途径

(1)避免无意义的重复
(2)编写正交的系统,降低代码之间的耦合度
(3)所有在编写代码时做出的决策都不是固定的,所以代码要尽量有低的耦合度
(4)先构造端到端的可使用代码(曳光弹),再对它加以完善(增加功能)
(5)通过构造原型也可以检验一些问题,和曳光弹不同,原型用过就扔,不考虑出错和健壮性等
(6)靠近问题领域编程,甚至可以为特定的领域编写有特定语法的语言
(7)对整个项目进行估算,以避免发生意外

第三章 基本工具

(1)纯文本用于保存知识是比其他编程语言要好的,虽然它会多占存储资源,计算代价也很大
(2)多学习shell语言,对于某些工作,它比IDE更好用,IDE虽然所见即所得,但是也限制了用户能进行的操作
(3)使用合适的编辑器并熟悉它(就用sublime吧)
(4)源码控制,使用github
(5)对程序的调试要抱着解决问题的想法,而且要先假设自己当前写的代码出错了
(6)掌握一门文本操纵语言(比如perl)
(7)用代码生成器节约重复工作的时间

第四章 注重实效的偏执

(1)按合约设计(看不懂)
(2)如果程序有错,让他崩溃,而不要继续运行下去
(3)在程序中加入断言,检测并提醒那些绝不因该发生的事
(4)把异常处理用于异常情形中,和错误区分开来(比如取文件,文件应该在但不在,是异常;不知道是否在然后不在,是错误)
(5)要合理地分配及释放资源

第五章 弯曲,或折断

(1)用得墨忒耳法则使代码耦合度变低,这样子改动一个模块不会影响太多的其他模块,但是这样子也会使系统性能受损,所以要进行权衡
(2)使用元数据使程序高度可配置
(3)使用并发来减少对时间的依赖
(4)用mvc架构分离模块
(5)用一个区域协调不同的事实和因素,又使他们相互独立

第六章 当你编码时

(1)不要靠巧合编程
(2)估算算法的速率
(3)重构是为了解决(重复,非正交设计,过时的知识,性能)等问题,重构的时候要保持谨慎
(4)编程过程中要测试
(5)要理解向导(IDE提供的代码生成器),而不是仅仅会使用它

第七章 在项目开始之前

(1)建立需求文档
(2)当发现难题时,解决真正的约束,而不要被那些自己想当然的约束束缚住
(3)启动新项目时要准备好再做,但不要拖延
(4)编写程序规范就是把需求规约到程序员能够接管的程度
(5)不要成为形式方法的奴隶

第八章 注重实效的项目

(1)构建一个注重实效的团队
(2)把能自动化的工作都自动化
(3)注重测试
(4)内部文档(技术文档)和外部文档(用户手册)好好写
(5)不仅要和用户交流来达到他们的期望,还要做的比他们的期望好一点
(6)为自己写的代码署名,并由此督促自己严格要求自己
上一篇 下一篇

猜你喜欢

热点阅读