1.Care about your craft 关心你的技艺
2.Think about your work 思考!你的工作
3.Provide options,don‘t make lame excuses 提出各种选择,不要找蹩脚的借口
4.don‘t live with broken wendows 不要容忍破窗户
5.be a catalyst for change 做变化的催化剂
6.remember the big picture 记住大图景
7.make quality a requirements issue 使质量成为需求问题
8.invest Regularly in your knowledge portfolio 定期为你的知识资产投资
9.critically analyze what you read and hear 批判性的分析你读到的和听到的
10.it‘s both what you say and the way you speak it 你说什么和你怎么说同样重要
11.Don‘t repeat yourself 不要重复自己
12.make it easy to reuse 让复用变的容易
13.eliminate effects between unrelated things 消除无关事物之间的影响
14.there no final decisions 不存在最终决策
15.use tracer bullets to find the target 只用曳光弹找到目标
16.prototype to learn 为了学习而制作原型
17.program close to the problem domain 靠近问题领域编程
18.estimate to avoid surprice 估算,避免发生意外
19.iterate the schedule with the code 通过代码对进度表进行迭代
20.keep knowledge in plain text 使用纯文本保存你的知识
21.use the power of command shells 利用shell命令力量
22.use a single editor well 用好一种编辑器
23.always use source code controll 总是使用源码控制
24.fix the problem not to blame 要修正问题,而不是发出指责
25.don not panic when debuging 不要恐慌
26.‘select‘ isn‘t broken ‘select’没有问题
27.don‘t assume it,prove it 不要假定 要证明
28.learn a text manipulation language 学习一种文本操作语言
29.write code that write code 编写能写代码的代码
30.you can‘t write perfect software 你不可能写出完美的软件
31.design with contracts 通过合约进行设计
32.crash earlt 早崩溃
33.if it can‘t happen,use assertions to ensure that it won‘t 如果它不可能发生,用断言确保它不会发生
34.use exceptions for exceptional problems 将异常用于异常的问题
35.finish what you start 有始有终
36.minimize coupling between modules 使模块之间的耦合减至最少
37.configure,don‘t integrate 要配置 不要集成
38.put abstractions in code,details in metadata 将抽象放进代码,细节放进元数据
39.analyze workflow to improve concurrency 分析工作流以改善并发性
40.design useing service 用服务进行设计
41.always design for concurrency 总是为并发性进行设计
42.separate views for modules 使视图和模型分离
43.use blackboards to coordinate workflow 用黑板协调工作流
44.don‘t program by coincidence 不要靠巧合编程
45.estimate the order of your algorithms 估算算法的阶
46.test your estimates 测试你的估算
47.refactor early,refactor often 早重构,常重构
48.design to test 为测试而设计
49.test your software,or your users will 测试你的软件,否则你的用户就得测试
50.don‘t use wizard code you don‘t understand 不要使用你不理解的向导代码
51.don‘t gather requirements - dig for them 不要搜集需求,挖掘它们
52.work with a user to think like a user 与用户一同工作,像用户一样思考
53.abstracts live longer than details 抽象比细节活的更长久
54.use a project glossary 使用项目词汇表
55.don‘t think outside the box - find the box 不要在盒子外面思考,找到这个盒子
56.listen to nagging doubts - start when you‘re ready 倾听反复出现的疑虑,等你准备好再开始
57.some things are better done than described 有些事情实践比理论来的更好
58.don‘t be a slave to formal methods 不要做形式方法的奴隶
59.exoensive tools don‘t produce better designs 昂贵的工具不一定能做出更好的设计
60.organize around functionality,bot job functions 围绕功能进行组织,而不是围绕工作职务
61.don‘t use manual procedures 不要使用手工流程
62.test early,test often,test automatically 早测试 常测试 自动化测试
63.codeing ain‘t done till all the test run 要通过全部测试,编码才算完成
64.use saboteurs to test your testing 通过蓄意破坏来测试你的测试
65.test state coverage,not codeing coverage 测试状态覆盖 而不是代码覆盖
66.find bug once 一个bug只抓一次
67.treat English as just another programming language 把英语当作又一种编程语言
68.build document in,don‘t bolt it once 把文档建在版本中,不要拴在外面
69.gently exceed your users‘ exceptations 温和的超出用户的期望
70.sign your work 在你的作品上签名
----摘自《程序员的修炼--从小工到专家》