From journeyman to master

The Pragmatic Programmer Quick Reference Guide

                      [ 注重实效的程序员之快速参考指南]

 

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 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 say it

11. 不要重复你自己

Don’t repeat yourself

12. 让复用变得更容易

     Make it easy to reuse

13. 消除无关事务之间的影响

     Eliminate effects between unrelated things

14. 不存在最终决策

     There are 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 surprises

19. 通过代码对进度表进行迭代

     Iterate the schedule with the code

20. 用纯文本保存知识

     Keep knowledge in plain text

21. 利用命令shell的力量

     Use the power of command shells

22. 用好一种编辑器

     Use a single editor well

23. 总是使用源码控制

     Always use source code control

24. 要修正问题,而不是指责

     Fix the problem, not the blame

25. 调试时不要恐慌

     Don’t panic when debugging

26. 选择没有问题

“Select” is not broken.   Ps. OS、编译器或者第三方库很少有Bug,问题常出在应用中

27. 不要假定,要证明

Don’t assume it, prove it.

28. 学习一种文本操纵语言

Learn a text manipulation language

29. 编写能编写代码的代码

Write code that writes code

30. 你不可能写出完美的软件

You cann’t write perfect software

31. 通过合约进行设计

     Design by contracts

32. 早崩溃

     Crash early

33. 用断言避免不可能发生的事情

     Use assertions to prevent the impossible

34. 将异常用于异常的问题

     Use exception 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. 分析工作流,以改善并发性

     Analyse the workflow to improve the concurrency

40. 用服务设计

     Design using services

41. 总是为并发而设计

     Always design for concurrency

42. 将视图和模型分离

     Separate views from model

43. 用黑板协调工作流

Use blackboard 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 the 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. 抽象比细节活得长久

     Abstractions live longer than details

54. 使用项目词汇表

     Use project glossary

55. 不要在盒子外面思考,要找到盒子

     Don’t think outside the box, find the box

56. 等你准备好再开始

     Start when you are ready

57. 对有些事情,做胜于说

     Some things are better done than described

58. 不要作形式方法的奴隶

      Don’t be a slave to formal methods

59. 昂贵的工具未必能做出良好的设计

      Costly tools don’t produce better designs

60. 围绕功能组织团队

      Organize teams around functionality

61. 不要使用手工流程

      Don’t use manual procedures

62. 早测试,常测试,自动测试

     Test early, Test Often, Test automatically

63. 要通过全部测试,编码才算完成

     Coding aren’t done till all the tests run

64. 通过蓄意破坏,测试你的测试

     Use saboteurs to test your testing

65. 测试状态覆盖,而不是代码覆盖

     Test state coverage, not code coverage

66. 一个bug只抓一次

     Find a bug once

67. 英语就是一门编程语言

     English is just a programming language

68. 把文档建在里面,不要拴在外面

     Build document in, don’t bolt it on

69. 温和地超出用户的期望

     Gently exceed your users’ expectation

70. 在你的作品上签名

     Sign your work

    

 

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值