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

    

 

 
發佈了97 篇原創文章 · 獲贊 6 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章