《程序员修炼之道——从小工到专家》

  1. 关心你的技艺
    Care About Your Craft
    如果你不在乎能否漂亮的开发出软件,你又为何要耗费生命去开发软件呢?

  2. 思考!你的工作
    Think? About your work
    关掉自动驾驶,接管操作。不断地批评和评估你的工作。

  3. 提供各种选择,不要找蹩脚的借口
    Provide options, don't make lame excuses
    要提供各种选择,而不是找借口。不要说事情做不到;说明能够做什么。

  4. 不要容忍破窗户
    Don't live with broken windows
    当你看到糟糕的设计、错误的决策和糟糕的代码时,修正它们。

  5. 做变化的催化剂
    Be a catalyst for change
    你不能强迫人们改变。相反,要向它们展示未来可能会怎样,并帮助它们参与对未来的创造。

  6. 记住大图景
    Remember the bit 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 say it
    如果你不能有效地想他人传达你的了不起的想法,这些想法就毫无意义。

  11. 不要重复你自己
    Don't repeat yourself
    系统中的每一项知识都必须具有单一、无歧义、权威的表示。

  12. 让复用变得容易
    Make it easy to reuse
    如果复用很容易,人们就会去复用。创造一个支持复用的环境。

  13. 消除无关事物之间的影响
    Eliminate effect between unrelated things
    设计自足、独立、并具有单一、良好定义的目的组件。

  14. 不存在最终决策
    There are no final decisions
    没有决策时浇铸在石头上的。相反,要把没想决策都视为是卸载沙滩上的,并为变化做好计划。

  15. 用曳光弹找到目标
    Use tracer bullets to find the target
    验光单能通过试验各种事物并检查他们离目标有多远来让你追踪目标。

  16. 为了学习而制作原型
    Prototype to learn
    原型制作是一种学习经验。其价值并不在于所产生的代码,而在于所学到的经验教训。

  17. 估算,以避免发生意外
    Estimate to avoid surprises
    在着手之前先进行估算。你将提前发现潜在的问题。

  18. 通过对进度表进行迭代
    Iterate the schedule with the code
    用你在进行实现时获得的经验提炼项目的时间标度。

  19. 要修正问题,而不是发出指责
    Fix the problem, not the blame
    bug 是你的过错还是别人的过错,并不是真的很有关系——它仍然是你的问题,让仍然需要修正。

  20. 编写能编写代码的代码
    Write code that writes code
    代码生成器能提高你的生产率,并有助于避免重复。

  21. 通过合约进行设计
    Design with contracts
    使用合约建立文档,并检查代码所做的事情正好是它声明要做的。

  22. 要有始有终
    Finish what you start
    只要可能,分配某些资源的例程或对象也应该负责接解除其分配。

  23. 使模块之间的耦合减至最低
    Minimize coupling between modules

  24. 要配置,不要集成
    Configure, don't integrate
    要将应用的各种技术选择实现为配置选项,而不是通过集成或工程方法实现。

  25. 将抽象放进代码,细节放进元数据
    Put abstractions in code, details in metadata
    为一般情况编程,将细节放在被编译的代码库之外。

  26. 早重构,常重构
    Refactor early, refactor often

  27. 抽象比细节活得更长久
    Abstractions live longer than details

  28. 早测试,常测试,自动测试
    Test early. Test often. Test Automatically

  29. 要到通过全部测试,编码才算完成
    Coding ain't done 'Til all the tests run

  30. 在你的作品上签名
    Sign your work
    过去时代的手艺人为能在他们的作品上签名而自豪。你也应该如此。

你可能感兴趣的:(《程序员修炼之道——从小工到专家》)