《程序员修炼之道》之提示全集

计算机行业是一个发展非常迅速的行业,技术可谓是日新月异。同样,书籍也是更迭不断。书龄在二十年以上的书,少之又少。如果还能一直保持畅销,那绝对是凤毛麟角。而 《程序员修炼之道》 绝对算是这些神品中不可或缺的一本。
最近当当在搞读书节,又成功骗我入坑,买了几本心仪已久的书。《程序员修炼之道·第2版》被我成功收入囊中。打开书本,只看目录就感觉可以值回书价了。99 条提示,字字珠玑,金科玉律。忍不住发篇水文,推波助澜,让其发扬光大。
- 务实的哲学
关注你的技艺
思考!思考你的工作
你有选择权
提供选择,别找借口
不要放任破窗
做推动变革的催化剂
牢记全景
将质量要求视为需求问题
对知识组合做定期投资
批判性地分析你读到和听到的东西
英语就是另一门编程语言
说什么和怎么说同样重要
把文档嵌进去,而不是拴在表面
- 务实的方法
优秀的设计比糟糕的设计更容易变更
DRY—不要重复自己
让复用变得更容易
消除不想搞事物之间的影响
不设最终决定
放弃追逐时尚
使用曳光弹找到目标
用原型学习
靠近问题域编程
通过估算来避免意外
根据代码不断迭代进度表
- 基础工具
将知识用纯文本保存
发挥 Shell 命令的威力
游刃有余地使用编辑器
永远使用版本控制
去解决问题,而不是责备
不要恐慌
修代码前先让代码在测试中失败
读一下那些该死的出错信息
“select”没出问题
不要假设,要证明
学习一门文本处理语言
- 务实的偏执
你无法写出完美的软件
通过契约进行设计
尽早崩溃
使用断言去预防不可能的事情
有始有终
在局部行动
小步前进——由始至终
避免占卜
- 宁折不弯
解耦代码让改变更容易
只管命令不要询问
不要链式调用方法
避免全局数据
如果全局唯一非常重要,那么将它包装到API 中
编程讲的是代码,而程序谈的是数据
不要囤积状态,传递下去
不要付继承税
尽量用接口来表达多态
用委托提供服务:“有一个”胜过“是一个”
利用 mixin 共享功能
使用外部配置参数化应用程序
- 并发
通过分析工作流来提高并发性
共享状态是不正确的状态
随机故障通常是并发问题
用角色实现并发性时不必共享状态
使用黑板来协调工作流
- 当你编码时
倾听你内心的蜥蜴
不要依赖巧合编程
评估算法的级别
对估算做测试
尽早重构,经常重构
测试与找 Bug 无关
测试是代码的第一个用户
既非自上而下,也不自下而上,基于端对端构建
为测试做设计
要对软件做测试,否则只能留给用户去做
使用基于特性的测试来校验假设
保持代码简洁,让攻击面最小
尽早打上安全补丁
好好取名;需要时更名
- 项目启动之前
无人确切知道自己想要什么
程序员帮助人们理解他们想要什么
需求是从反馈循环中学到的
和用户一起工作以便从用户角度思考
策略即元数据
使用项目术语表
不要跳出框框思考—找到框框
不要一个人埋头钻进代码中
敏捷不是一个名词;敏捷有关你如何做事
- 务实的项目
维持小而稳定的团队
排上日程以待其成
组织全功能的团队
做能起作用的事,别赶时髦
在用户需要时交付
使用版本控制来驱动构建、测试和发布
尽早测试,经常测试,自动测试
直到所有的测试都已运行,编码才算完成
使用破坏者检测你的测试
测试状态覆盖率,而非代码覆盖率
每个 Bug 只找一次
不要使用手动程序
取悦用户,而不要只是交付代码
在作品上签名
- 跋
先勿伤害
不要助纣为虐