- 1 关心你的技艺
- 2 思考你的工作
- 3
在所有的弱点中,最大的弱点就是害怕暴露弱点
- 4 提供各种选择,不要找各种蹩脚的借口
- 5 不要容忍破窗户
- 6 作变化的催化剂
- 7 记住大方向
- 8 让质量成为需求问题
-
9 知识也会贬值,定期为你的知识投资
- 每年至少学习一种编程语言
- 每季度至少读一本技术书籍
- 也要阅读非技术书籍
- 上课
- 上网
- 玩玩UNIX
- 跟上潮流
- 10 批判的分析你读到的和听到的
- 11 我相信,被打量要被忽略要好
- 12 你说什么和
你怎样说
同样重要 - 13
不要重复你自己, 也不要重复别人
- 14 糟糕的代码才需要许多注释
- 15 让复用变得容易
- 16 消除无关事物之间的影响 (解耦性,正交性)
-
17 编码
- 让你的代码保持解耦
- 避免使用全局数据
- 避免编写相似的函数
- 18
如果某个想法是你唯一的想法,再没有什么比这更危险的事情了
- 19 不存在最终决定
- 20 稍后就是永不
- 21 用曳光弹找到目标
- 22 语言的界限就是一个人世界的界限
- 23 靠近问题编程
- 24 估算,避免发生意外
- 25 用纯文本保存知识
- 26 利用命令
shells
的力量 -
27 用好一种编辑器,彻底了解它,确保你的编辑器能在所有平台上使用 (我的最爱是
sublime
)- 可配置
- 可扩展
- 可编辑
- 语法高亮
- 自动完成
- 自动缩进
- 跨平台
- 启动快
- 占用内存小
- 漂亮
- 28 总是使用源码控制
- 29 要修正问题,而不是发出职责 (关于调试,bug)
- 30 不要恐慌 (我曾经差点因为上线的之前的重大问题产生辞职的想法)
- 31 不要假定,要证明
- 32
你不可能写出完美的软件
- 33 如果它不可能发生,用断言确保它不会发生
- 34 将异常用于异常的问题
- 35 要有始有终
- 36
使模块之间的耦合减至最小
- 37
要配置,不要集成
(可配置) - 38 将抽象放进代码,将细节放进元数据
- 39 分析工作流,以改善并发性
- 40 用服务进行设计
- 41 总是为并发进行设计
- 42 将视图与模型分离
- 43 小心那些替你编写大量代码的工具,除非你了解它在做什么
- 44 不要靠巧合编程
- 45 估算你算法的阶
- 46 早重构,常重构
- 47 为测试而设计
- 48 不要搜集需求,挖掘他们
- 49 与用户一起工作,以像用户一样思考
- 50 需求不是架构,需求不是设计,也不是用户界面,而是需求。
- 51
抽象比细节活的更长久
- 52
使用项目词汇表
(名不正则言不顺) - 53 昂贵的工具不一定能制作出更好的设计
- 54 早测试,常测试,自动测试
- 55 要到通过全部测试,编码才算完成
- 56 把网收紧,一个bug只抓一次
- 57 温和的超出用户的期望
- 58 在你的作品上签名
- 59 建立自己的藏书库
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。