程序员修炼之道

Care About Your Craft. 关心你的技艺

Think!About Your Work. 思考!你的工作


1.A Pragmatic Philosophy 注重实效的哲学

Provide Options,Don't Make Lame Excuses. 提供各种选择,不要找撇脚的借口

Don't Live with Broken Windows. 不要容忍破窗户

Be a Catalyst for Change. 做变化的催化剂

Remember the Big Picture. 记住大图景

Make Quality a Requirements Issue. 使质量成为需求问题

Invest Reqularly in Your KnowLedge Portfolio. 定期为你的知识资产投资

Critically Analyze What You Read and Hear. 批判地分析你读到的和听到的

It's Both What You Say and the Way You Say It. 你说什么和你怎么说同样重要


2.A Pragmatic Approach 注重实效的途径

DRY - Don't Repeat Yourself. 不要重复你自己

Make It Easy to Reuse. 让复用变得容易

Eliminate Effects Between Unrelated Things. 消除无关事物之间的影响

There Are No Final Decisions. 不存在最终决策

Use Tracer Bullets to Find the Target. 用曳光弹找到目标

Prototype to Learn. 为了学习而制作原型

Program Close to the Problem domain. 靠近问题领域编程

Estimate to Avoid Surprises. 估算,以避免发生意外

Iterate the Schedule with the Code. 通过代码对进度表进行迭代


3.The Basic Tools 基本工具

Keep Knowledge in Plain Text. 用纯文本保存知识

Use the Power of Command Shells. 利用命令shell的力量

Use a Single Editor Well. 用好一种编辑器

Always Use Source Code Control. 总是使用源码控制

Fix the Problem, Not the Blame. 要修正问题,而不是发出职责

Don't Panic. 不用恐慌

"Select" Isn't Broken. “Select”没有问题

Don't Assume it - Prove it. 不要假定,要证明

Learn a Text Manipulation Language.  学习一种文本操纵语言

Write Code That Writes Code. 编写能编写代码的代码


4.Pragmatic Paranoia 注重实效的偏执

You Can't Write Perfect Software. 你不可能写出完美的软件

Design with Contracts. 通过合约进行设计

Crash Early. 早崩溃

If It Can't Happen, Use Assertions to Ensure That It Won't. 如果它不可能发生,用断言确保它不会发生

Use Exceptions for Exceptional Problems. 将异常用于异常的问题

Finish What You Start. 要有始有终


5.Bend,or Break 弯曲,或折断

Minimize Coupling Between Modules. 使模块之间的耦合减至最少

Configure,Don't Integrate. 要配置,不要集成

Put Abstractions in Code, Details in Metadata. 将抽象放进代码,细节放进元数据

Analyze Workflow to Improve Concurrency. 分析工作流,以改善并发性

Design Using Services. 用服务进行设计

Always Design for Concurrency. 总是为并发进行设计

Separate Views from Models. 使视图与模型分离

Use Blackboards to Coordinate Workflow. 用黑板协调工作流


6.While You Are Coding 当你编码时

Don't Program by Coincidence. 不要靠巧合编程

Estimate the Order of Your Algorithms. 估算你的算法的阶

Test Your Estimates. 测试你的估算

Refactor Early,Refactor Often. 早重构,常重构

Design to Test. 为测试而设计

Test Your Software,or Your Users Will. 测试你的软件,否则你的用户就得测试

Don't Use Wizard Code You Don't Understand. 不要使用你不理解的向导代码


7.Before The Project 在项目开始之前

Don't Gather Requirements - Dig for Them. 不要搜集需求——挖掘他们

Work with a User to Think Like a User. 与用户一同工作,以像用户一样思考

Abstractions Live Longer than Details. 抽象比细节活得更长久

Use a Project Glossary. 使用项目词汇表

Don't Think Outside the Box - Find the Box. 不要在盒子外面思考——要找到盒子

Listen to Nagging Doubts - Start When You're Ready. 倾听反复出现的疑虑——等你准备好再开始

Some Things Are Better Done than Described. 对有些事情“做”胜于“描述”

Don't Be a Slave to Formal Methods. 不要做形式方法的奴隶

Expensive Tools Do Not Produce Better Designs. 昂贵的工具不一定能制作出更好的设计


8.Pragmatic Projects 注重实效的项目

Organize Around Functionality, Not Job Functions. 围绕功能,而不是工作职务进行组织

Don't Use Manual Procedures. 不要使用手工流程

Test Early.Test Often.Test AutoMatically. 早测试,常测试,自动测试

Coding Ain't Done Til All the Tests Run. 要到通过全部测试,编码才算完成

Use Saboteurs to Test Your Testing. 通过“蓄意破坏”测试你的测试

Test State Coverage,Not Code Coverage. 测试状态覆盖,而不是代码覆盖

Find Bugs Once. 一个bug只抓一次

Treat English as Just Another Programming Language. 把英语当作又一种编程语言

Build Documentation In, Don't Bolt It On. 把文档建在里面,不要拴在外面

Gently Exceed Your Users' Expectations. 温和地超出用户的期望

Sign Your Work. 在你的作品上签名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容