本书讲述如何在开发软件的过程中变得更加高效。同时,本书的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X以及 *-nix(Unix或者Linux)。
本书讨论的是程序员个体的生产力,而不是团队的生产力问题,所以它不会涉及方法论(好吧,可能总会在这里或那里谈论到一些,但肯定不会深入讨论)。同时,本书也不会讨论生产力对整个团队的影响。我的使命,是让作为个体的程序员通过掌握恰当的工具和思想变得更加高效。
Neal Ford是ThoughtWorks的软件架构师。他曾在美国和其他国家进行现场授课,客户包括军方和很多《财富》500强的企业。
..
<< 查看详细
译者序
序
前言
第1章 简介
为什么要写一本关于程序员生产力的书?
本书包含哪些内容?
如何读此书?
第一部分 机制
第2章 加速
启动面板
加速器
宏
小结
第3章 专注
排除干扰
搜索优于导航
找出难找的目标
使用有根视图
设好“粘性属性”
使用基于项目的快捷方式
. 使用多显示器
用虚拟桌面拆分工作空间
小结
第4章 自动化
不要重新发明轮子
建立本地缓存
自动访问网站
与RSS源交互
在构建之外使用Ant
用Rake执行常见任务
用Selenium浏览网页
用bash统计异常数
用Windows Power Shell替代批处理文件
用Mac OS X的Automator来删除过时的下载文件
驯服Subversion命令行
用Ruby编写SQL拆分工具
我应该把它自动化吗?
别给牦牛剪毛
小结
第5章 规范性
DRY 版本控制
使用标准的构建服务器
间接机制
利用虚拟平台
DRY 阻抗失配
DRY 文档
小结
第二部分 实践
第6章 测试驱动设计
不断演化的测试
代码覆盖率
第7章 静态分析
字节码分析
源码分析
用 Panopticode生成统计数据
动态语言的分析
第8章 当个好公民
破坏封装
构造函数
静态方法
犯罪行为
第9章 YAGNI
第10章 古代哲人
亚里斯多德的“事物的本质和附属性质”理论
奥卡姆剃刀原理
笛米特法则
“古老的”软件学说
第11章 质疑权威
愤怒的猴子
连贯接口
反目标(Anti-Objects)
第12章 元编程
Java和反射
用Groovy测试Java
编写连贯接口
元编程的归处
第13章 组合方法和SLAP
组合方法实践
SLAP
第14章 多语言编程
历史与现状
路在何方?
Ola的金字塔
第15章 寻找完美工具
寻找完美编辑器
编辑器参考列表
为你的工作选择正确的工具
丢弃错误的工具
第16章 尾声:继续对话
附录 Building Blocks
消除浪费,始于细节
在一次关于敏捷的讨论中,我说了一句令很多人不解的话:我不要敏捷。.
和很多话一样,断章取义的理解很容易造成误会。我当时说的整句话是:我不要敏捷,我要致力于消除软件开发中的一切浪费。当“敏捷”渐渐变成一个人见人爱的“大词”,越来越多的人开始发现,其实自己要的不是“be agile”,而是切实地消除浪费、提高效率。
所以,作为ThoughtWorks员工的Neal Ford在他的这本书里闭口不谈“敏捷”。他只是实实在在地告诉你,作为一个程序员,你每天都在什么地方浪费着自己的生产率,以及如何去有效地消除这些浪费。
也许你甚至意识不到这些细小环节上浪费的存在。随便举个例子吧,在你一天的工作中,你有多少次从资源管理器里导航到源代码文件夹查看代码,然后又导航到另一个文件夹寻找文档,然后打开命令行窗口并进入项目目录,以及在密密麻麻的任务栏里找到正确的浏览器窗口?Neal Ford说,这些都是浪费:做这些与核心任务──软件开发──无关的事情是在浪费生产率。有兴趣知道这些自己每天做无数次的事还能如何改进吗?即便不是专业程序员,这本书的第2章也将对你不无裨益。..
从某种意义上来说,Neal Ford在这本书里做的事,正是现代科学管理理论的鼻祖弗雷德里克?泰勒在伯利恒钢铁厂做过的“泰勒实验”:剖析每个个体日常工作中的每个细节,对细节进行持续优化,通过对细节的改进提升生产率。在钢铁厂,泰勒的科学管理方法让一个搬运铁块的工人每天的工作效率提高了3倍;而在软件开发中对细节的重视甚至能让程序员的效率提升更多,因为人的体力终归有限,而脑力的开发程度则远未达到极限。
这并非痴人说梦,因为ThoughtWorks就是这样的例证。据说ThoughtWorks有一群天才的程序员,只有近距离接触才会发现,这些人之所以能做到如此高效,很大程度上是因为他们有一些根深蒂固的好习惯,而且不断在细节上精益求精。ThoughtWorks中国公司的几位同事一起来翻译这本书,也正是为了把我们的经验分享给更多人。
从每天的细节开始,让自己成为一个高产的程序员,其实每个人都能做到。...
熊节
ThoughtWorks,咨询师
2008年11月17日
对于程序员,过去我们一直习惯于用单纯的技术水平,也就是实现程序功能的能力来衡量。
然而这个时代其实已经过去了。虽然技术仍然很重要,但企业越来越多地认识到,对于程序员更全面的衡量标准,应当是生产率。只有能够以较高的效率完成对项目、对企业有价值的工作,才是团队和组织所真正需要的人才。反之,技术好,但不能真正促进整体价值,甚至其反作用,这样的“技术牛人”已经没有生存空间了。
—— 孟岩 《程序员》杂志总编
“卓有成效是可以学习的“,让编程工作变得卓有成效也是可以学习的,方法就在这里……我会要求我们团队的所有程序员认真研读这本书。
—— 黄晶 校内网高级技术总监
如果你想做一个真正的懒人,就请继续读完这本书,因为这本书是天堂;如果你不想做一个真正的懒人,那也可以读完这本书,因为它至少可以教会你掌握一些小窍门耍酷,而且要比从前那种一遍遍敲ls或者dir滚屏更加专业。
—— 李剑 InfoQ中文站敏捷社区首席编辑
通俗不掩睿智,腕从何妨心悟——用这一句话可概括我喜欢本书的原因。
—— 温昱 资深咨询顾问《软件架构设计》作者
同样的工作,如果你不能持续提高自己的价值,恐怕迟早会沦为公司的鸡肋。赢得竞争,就是让自己比别人更有效率!好习惯决定高效率,同时也希望《卓有成效的程序员》能够让你的代码走正确的路……Neal Ford的这本书中有这样的一句话:“我的使命,是让作为个体的程序员通过掌握恰当的工具和思想变得更加高效。”这本书倾注了ThoughtWorks公司精英们的心血,他们把自己的宝贵经验都分享了出来,那些工具和方法,定会让你受益匪浅。熊节,这位优秀的咨询师,他犀利的文字也为这本书凭添了几分独特,让人爱不释手。
—— 胡铭娅 IT168技术频道资深编辑
有些知识,你可能需要工作学习体验很久才能掌握,而本书作者Neal Ford已经直接把这些经验方法告诉你了……在熊节的翻译下,Neal Ford的书读起来到也比较对味,很是流畅。
—— 谢华亮 CSDN博客专家,Tencent工程师
一直以来,我都未曾在书店找到过一本关于代码和工程以外的,实战类的通用技巧性的书籍……如果你想在效率的竞赛中上百尺竿头更进一步,那这本书就是你需要的。
—— 乔坦 .NET程序员
程序员总有学不完的东西,许多看过我写的“程序员的十层楼”的人觉得自己仍然是“菜鸟”。同样,当我看到Neal的这本书时,发现自己十几年的程序员生涯仍然是一个低效的程序员,书中介绍的许多提高效率的工具和方法以前没有用过或没有用好。要是在“菜鸟”或“大虾”阶段就能看到这样一本好书多好啊!不仅能及时掌握各种提高效率的工具和方法,更重要的是变成“牛人”或“大牛”后,它可以为设计高效的软件提供非常好的借鉴。”
—— 周伟明 多核编程专家