本书堪称一部奇书。作者通过许多有趣的故事、寓意深刻的比喻、诙谐的对话和丰富的技术细节,从编程第一线出发,透过现代软件技术和方法的层层迷雾,审视了对于软件开发和程序员职业生涯最本质、最重要的各种最佳实践、技巧和前车之鉴。书中弥漫着的浓浓的人文气息、哲理性和幽默感,书中融汇的丰富而深刻的内涵、俯拾皆是的真知灼见和实战经验之谈,都使本书远远超越了一般讲述特定技术或者学院派地枯燥阐述软件开发方法学的技术图书。
本书是一部令人称奇、耳目一新的著作。书中通过许多有趣的轶事、详实的例子、诙谐的对话和技术细节,从编程一线审视了软件开发以及程序员职业生涯方方面面的最佳实践方案和各种需要注意的前车之鉴。书中给出大量建议,每一条建议都汲取了作者的经验,并与其他建议相互关联而形成系统。
本书适合各层次软件开发人员阅读,也适合高等院校计算机专业学生和教师阅读。
1 A PRAGMATIC PHILOSOPHY 注重实效的哲学
1.The Cat Ate My Source Code 猫把我的代码吃了
2.Software Entropy 软件熵
3.Stone Soup and Boiled Frogs 石头汤与被煮的青蛙
4.Good-Enough Software 恰到好处的软件
5.Your Knowledge Portfolio 知识资产
6.Communicate! 交流!
2 A PRAGMATIC APPROACH 注重实效的途径
7.The Evils of Duplication 重复之罪
8.Orthogonality 正交性
9.Reversibility 可逆性
10.Tracer Bullets 曳光弹
11.Prototypes and Post-it Notes 原型与便笺
12.Domain Languages 领域语言
13.Estimating 估算
3 THE BASIC TOOLS 基本工具
14.The Power of Plain Text 纯文本的威力
15.Shell Games Shell之妙
16.Power Editing 强力编辑
17.Source Code Control 源码控制
18.Debugging 调试
19.Text Manipulation 文本处理
20.Code Generators 代码生成程序
4 PRAGMATIC PARANOIA 注重实效的多疑者
21.Design by Contract 按契约设计
22.Dead Programs Tell No Lies 死程序不会说谎
23.Assertive Programming 断言式编程
24.When to Use Exceptions 何时使用异常
25.How to Balance Resources 如何释放资源
5 BEND, OR BREAK 能屈能伸
26.Decoupling and the Law of Demeter 解耦与Demeter法则
27.Metaprogramming 元编程
28.Temporal Coupling 时间耦合
29.It's Just a View 它只是视图
30.Blackboards 黑板
6 WHILE YOU ARE CODING 当你编程时
31.Programming by Coincidence 靠巧合编程
32.Algorithm Speed 算法的速度
33.Refactoring 重构
34.Code That's Easy to Test 易测试的代码
35.Evil Wizards 邪恶的向导
7 BEFORE THE PROJECT 项目开始之前
36.The Requirements Pit 需求之坑
37.Solving Impossible Puzzles 解决不可解的谜题
38.Not Until You're Ready 直到准备好
39.The Specification Trap 规范陷阱
40.Circles and Arrows 圆圈与箭头
8 PRAGMATIC PROJECTS 注重实效的项目
41.Pragmatic Teams 注重实效的项目
42.Ubiquitous Automation 无所不在的自动化
43.Ruthless Testing 无情的测试
44.It's All Writing 代码文档不分家
45.Great Expectations 巨大的期望
46.Pride and Prejudice 傲慢与偏见
Appendices
A RESOURCES 资源
Professional Societies 专业协会
Building a Library 建立藏书阁
Internet Resources 因特网资源
Bibliography 参考文献
B ANSWERS TO EXERCISES 习题解答
INDEX 索引