实效程序员快速参考指南

来源:互联网 发布:我国大数据研究方向 编辑:程序博客网 时间:2024/06/05 19:46

 

《The Pragmatic Programmer:From Journeyman to Master》
本文章是从《程序员修炼之道》选摘的。

Andrew Hunt &David Thomas 著

马维达 译

本书为网易、趋势科技等公司新员工技术培训首选用书

风云、邹飞、霍炬、徐宥、赵钟秋写书评推荐

 

1.关心你的技艺

care about your craft

2.思考!你的工作

think!about your work

3.提供各种选择,而不是找蹩脚的借口

provide options,don't makelame excuses

4.不要容忍破玻璃

don't live with brokenwindows

5.做变化的催化剂

be a catalyst for change

6.记住大图景

remember the big picture

7.使质量成为需求问题

make quality a requirementsissue

8.定期为你的知识资产投资

invest regularly in yourknowledge portfolio

9.批判的分析你读到的和听到的

critically analyze what youread and hear

10.你说什么和你怎么说同样重要

it's both what you say andthe way you say it

11.不要重复你自己

DRY——don't repeatyourself

12.让复用变得容易

make it easy to reuse

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

eliminate effects betweenunrelated things

14.不存在最终决策

there are no final decisions

15.用曳光弹找到目标

use tracer bullets to findthe target

16.为学习制造原型

prototype to learn

17.靠近问题领域编程

program close to the problemdomain

18.估算,以避免发生意外

estimate to avoid surprise

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

iterate the schedule with thecode

20.用纯文本保存知识

keep knowledge in plain text

21.利用命令shell的力量

use the power of commandshells

22.使用一种编辑器

use a single editor well

23.总是使用源码控制

always use source codecontrol

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

fix the problem,not the blame

25.不要恐慌

don't panic when debuging

26.“Select”没有问题

Select” isn't broken

27.不要假定,要证明

don't assume it——prove it

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

learn a text manipulationlanguage

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

write code that writes code

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

you can't write perfectsoftware

31.通过合约进行设计

design with contracts

32.早崩溃

crash early

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

use assertions to preventthe impossible

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

use exceptions forexceptional problems

35.要有始有终

finish what you start

36.模块之间的耦合减至最少

minimize coupling betweenmodules

37.要配置,不要集成

configure,don't integrate

38.将抽象放进代码,细节放进元数据

put abstractions incode,details in metadata

39.分析工作流,以改善并发性

analyze workflow to improveconcurrency

40.用服务进行设计

design using services

41.总是为并发进行设计

always design forconcurrency

42.使用视图与模型分离

separate views from models

43.使用黑板协调工作流

use blackboards tocoordinate workflow

44.不要靠技巧编程

don't program by coincidence

45.估计你算法的阶

estimate the order of youralgorithms

46.测试你的估计

test your estimates

47.早重构,常重构

refactor early,refactoroften

48.为测试而设计

design to test

49.测试你的软件,否则你的用户就要测试

test your software,or yourusers will

50.不要使用你不理解的向导代码

don't use wizard code youdon't understand

51.不要搜集需求——挖掘他们

don't gatherrequirements——dig for them

52.与用户一起工作,像用户一样的思考

work with a user to thinklike a user

53.抽象比细节活的时间更久

abstractions live longer thandetails

54.使用项目词汇表

use a project glossary

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

don't think outside thebox——find the box

56.等你准备好了再开始

start when you are ready

57.对有些事情“做”胜于“描述”

some things are better donethan described

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

don't be a slave to formalmethods

59.昂贵的工具不一定能制作出更好的设计

costly tools don't producebetter designs

60.围绕功能组织团队

organize teams aroundfunctionality

61.不要使用手工流程

don't use manual procedures

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

test early. Test often . Testautomatically

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

coding ain't done till allthe test run

64.通过“蓄意破坏”来测试你的测试

use saboteurs to test yourtesting

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

test state coverage,not codecoverage

66.一个bug指抓一次

find bugs once

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

English is just aprogramming language

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

build documentation in,don'tbolt it on

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

gently exceed your users'expectations

70.在你的作品上签名

sign your work

-------------------------------------------------------------------------------------------------------

这本书曾在前面的日志中有电子版的转载,但是,看了感觉非常好,于是就买了一本,读了很多了,虽然能领会的东西很少,但是,就像这

书中提及的,是作者本人二十年的开发经验,对于初学者来说是一本放在枕边的书籍!