第一图书网

卓有成效的程序员

Neal Ford 机械工业出版社
出版时间:

2009-3  

出版社:

机械工业出版社  

作者:

Neal Ford  

页数:

216  

译者:

ThoughtWorks公司(中国)  

Tag标签:

无  

前言

译者序消除浪费,始于细节在一次关于敏捷的讨论中,我说了一句令很多人不解的话:我不要敏捷。和很多话一样,断章取义的理解很容易造成误会。我当时说的整句话是:我不要敏捷,我要致力于消除软件开发中的一切浪费。当“敏捷”渐渐变成一个人见人爱的“大词”,越来越多的人开始发现,其实自己要的不是“be agile”,而是切实地消除浪费、提高效率。所以,作为ThoughtWorks员工的Neal Ford在他的这本书里闭口不谈“敏捷”。

内容概要

本书讲述如何在开发软件的过程中变得更加高效。同时,本书的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,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

章节摘录

奥卡姆剃刀原理奥卡姆 的威廉爵士是一个厌恶华美装饰以及复杂解释的修士。他对哲学和科学的贡献是奥卡姆剃刀原理:如果对于一个现象有好几种解释,那么最简单的解释往往是最正确的。显然,这跟我们讨论的事物本质和附属性质理论紧密关联。这个原理对于软件的影响度也是出乎我们意料的。作为软件工业中的一员,过去十年我们一直在进行着某项实验。这个实验始于上世纪90年代中期,主要是由于开发人员发现其开发进度远远跟不上软件需求的增长而引发的(其实在那时这已经不是一个新问题,这个问题自商业软件的想法出现之后就一直存在)。实验的目的是:创造一些工具和环境来提高那些普通开发人员的生产率,即使一些人比如Fred Brooks(去看他的《人月神话》)已经告诉我们软件开发中的一些混乱事实。此实验试图验证:我们是否可以创造一种能限制程序员破坏力的语言而使人摆脱麻烦;我们是否可以无需支付荒唐的大量金钱给那些令人生厌的软件技工(即使在那时候你可能还为找不到足够的软件技工而发愁),而同样生产出软件呢?这些思考让我们创造出了如dBase, PowerBuilder, Clipper和Access这样的工具,并促成了工具和语言相结合的4GL(第四代语言)的崛起,比如FoxPro和Access。但问题是,即使有这样的工具和环境你也不能完成所有的工作。我同事Terry Dietzler为Access创建了一个叫做"80-10-10"的准则(而我喜欢把它称之为Dietzler定律)。这个定律说的是:80%的客户需求可以很快完成;下一个10%需要花很大的努力才能完成;而最后的10%却几乎是不可能完成的,因为你不能把所有的工具和框架都"招致麾下"。而用户却希望能满足一切需求,所以作为通用目的语言的4GL(Visual BASIC、Java、Delphi以及C#)应运而生。Java和C#的出现主要是由于C++的复杂性和易错性,语言开发者们为了让一般程序员摆脱这些麻烦而在其内建了一些相当严格的限制。在此之后"80-10-10准则"才发生了改变,无法完成的工作已经微乎其微。这些语言都是通用目的语言,只要付出足够的努力,大多数工作都可以完成。但Java虽然比较易用却常常需要大量编码,所以框架出现了,Aspects出现了,大量其它框架蜂拥而至。下面有一个例子。这段Java代码是从一个广泛使用的开源框架中提取出来的,试着找出它的用途吧(关于它的名字我只会提示你一点点):public static boolean xxXxxxx(String str) {int strLen;if (str == null || (strLen = str.length()) == 0) {return true;}for (int i = 0; i < strLen; i++) {if ((Character.isWhitespace(str.charAt(i)) == false)) {return false;}}return true;} 花了多少时间?这实际上是一个从Jakarta Commons框架(它提供了一些或许本该内置于Java的帮助类和方法)中提取出来的isBlank方法。一个字符串是否为"空白"由两个条件决定:这个字符串是空字符串,或者它只由空格组成。这段代码的计算公式非常复杂,因为要考虑参数是null的情况,而且还要迭代所有的字符。当然,你还要把字符包装成Character类型以确定它是否空白字符(空格、制表符、换行符等)。总之,太麻烦了!

媒体关注与评论

对于程序员,过去我们一直习惯于用单纯的技术水平,也就是实现程序功能的能力来衡量。然而这个时代其实已经过去了。虽然技术仍然很重要,但企业越来越多地认识到,对于程序员更全面的衡量标准,应当是生产率。只有能够以较高的效率完成对项目、对企业有价值的工作,才是团队和组织所真正需要的人才。反之,技术好,但不能真正促进整体价值,甚至其反作用,这样的“技术牛人”已经没有生存空间了。 —— 孟岩 《程序员》杂志总编&ldq


编辑推荐

《卓有成效的程序员》是一本揭示高效程序员的思考模式,一本告诉你如何缩短你与优秀程序员的差距。以下媒体、专家、社区联合推荐:媒体:《程序员》杂志、《电脑编程技巧与维护》杂志专家:韩磊、孟岩、冯大辉、李剑、黄晶、温昱、周爱民

名人推荐

《卓有成效的程序员》这本书,个人觉得单独针对“程序员”可能还有点窄,其实《卓有成效的程序员》的大部分内容对所有技术人员也是适用的。但愿看了《卓有成效的程序员》之后,能有更多的技术人员真正的行动起来,利用这本书提升自己,也去积极影响他人,形成更良性的互动,不要让“持续改进”成为一句空话。另外,必须要补充的是,如果技术人员持续从事低效率的工作,极有可能逐渐厌烦技术,疏远技术,乃至对技术绝望,而一个高效的技术人才能从技术中获得真正的快乐。

图书封面

图书标签Tags

广告

下载页面


卓有成效的程序员 PDF格式下载



虽然由于换了工作,已经很久不写程序了,但依然觉得这是一本非常有用的好书。虽然并不厚,我是在一天内读完的,但内容非常丰富,作者的思路非常清晰,翻译得也很流畅。感觉其中的许多建议,不仅对程序员,对其他需要经常操作电脑的人提升效率,都是十分有帮助的。比如尽量多用键盘,少用鼠标,记住常用的快捷键,选择最合适的工具等。当然,最重要的是思想。无论是加速法则,专注法则,规范法则,可以说都是放之四海而皆准的道理,可以说已经上升到哲学的高度上了。这样的好书看一遍肯定是不够的,我还会经常翻看这本书,希望能尽量把其中能用到的部分应用在自己的工作和生活中。最近读了不少书,真正体会到了什么叫“开卷有益”。当然,要抱着学习的态度,虚心的态度,而不是挑毛病的态度,呵呵。


老外比较擅于总结,这本书的前半部“机制”主要是介绍一些工具,如Windows或Linux下一些帮助日常工作的小工具和方法。后段部“实践”,介绍的是软件开发的有效方法与思维方式。此书的内容来源于实践,因此比较有说服力。值得一读。


这本书并不是小技巧、方法的总结,他最大的贡献是总结了几个原则。以及围绕这些原则展开的讨论。很多话题都是非常有趣的。工厂里是用机器生产,而程序员则是一种特殊的机器,对这种机器的探讨应该是刚开始。以后还应该有更多的探讨。


卓有成效的程序员,让你变得不一样。


thoughts works的书每次都不会让我失望,相信这本书能有效的提高程序员的生产效率。但是我不得不说:机械工业出版社书籍纸张的质量真的不怎么样!厕纸风格 , 可惜了这么好的内容 唉。。。。


对于怎么提高程序员的效率,作者确实给出了很多实现的途径,要将那些方法变成习惯谈何容易,呵呵


知道程序员应该具备的素质,和效率 是每个程序员都值得学习的


经典,程序员必看书籍。


指导都很明确具体,拿来认真的坚持执行一定对日常工作学习有益处。无论水平高低看看都不错,除了直接可用的技术,经验以外,也会从书中体会这种积极吸收和创造提高个人水平的思想


一直关注的一本书,一来北京就赶紧买了,最近工作有点忙,所以只粗看了大概一半,不过已经感觉没有白买了,不少点很实用,确实能提高效率,不过该书面向范围教广,所以具体效应因人而异了,不过如果你是个多面手的话,相信这本书一定会让你满意的


很有启发,特别是前面部分。不仅是IT从业人,对任何需要用电脑办公的人都有用。


看了以有的评论都不怎么样。个人认为这本书很不错。我看过了前两章,感觉很好。


非常好的书,建议各个值得膜拜


看推荐说的很好,但实际拿到手后,觉得言过其实。
或许是自己的境界还不到,等过段时间再读一读。


告别无聊的“copy”,“paste”,尽力让程序去实现,省下时间去做更有意义的事情


喜欢这样的文章,能让人在某个特定的时间段沉淀一些东西


正在学习中,o`reilly出的书就是不一样,看了一部分了,里边没有实际的技术指导,但是给我们了很多心得体会


只有看过之后才会知道,所有的细节积累起来的威力有多大。。


一本好书,值得推荐。
很多技巧很有帮助。


了解一些平常不算了解的东西,只是看看。


实用的书,指导性的书


正在阅读,很不错的书 快递也很快


都是如何高效操作计算机的经验之谈,很受用,这也许是我之前知道的太少吧!书里面涉及Windows、Mac和*nix的小技巧,还有.Net,Java,Ruby,Groovy,让我很想试试Mac、学学Ruby,呵呵,有机会一定体会一下!


本书由两部分组成:1.介绍了Windows平台和Mac平台上,一些常用软件的快捷方式的使用技巧,硬件上的指导;2.介绍了一些开发上的要注意,要规避的地方,值得花时间阅读。


讲了好多程序员日常工作提升效率的方法和细节,比较有新意,看了有所收获。注意细节才能**


总体来说属于经验历程的总结,有启示,提醒和警示作用。适合对程序入门后还没有达到中等水平的半吊子。


主要是介绍思想。


内容很好,对读者比较有帮助!!


对提高效率还是很有帮助的。


书不错,纸张有点差。勉强给4


同时推荐的,不错的书


内容倒是比较特别,但是书有点薄,而且很多实用性不是很高


听说很值得一看,赶紧买来cc


更多的是一个技巧经验总结,理论层面的东西没有什么新意,基本是出自经典书籍。适合对刚入行的或者1,2年的新手看看(其中还有些还需公司层面制度的配合)。对于一个资深的(工作了5年以上)工程师,帮助不太大(最大的帮助时是了解一些不错的开源软件,协助一下日常工作),快速过一遍即可(直接在书店蹲上几个小时就可以搞定)。


程序员也不建议看


这本书很适合有Java编程经验的人看,但是其中很多思想是贯通的


是作者的经验总结,但觉得这些光看是不行的,绝知此事要躬行啊!


实际操作不是很简单但思想是好的


书本内容太少,没有比较深入的东西。


实用性只有20%


纸质不好,第一版的印刷质量一般.


自我感觉用处不大


差劲极了,没用处,浪费钱


紙張好差,像盜版,特失望


可能是之前对这本书期望太高,总之看完比较失望。工具基本讲的是osx和winxp中使用的。 win7基本不适用。语音基本讲的是java和ruby。 cxxer感觉不太适用。p154那个伽利略的例子反驳‘逻辑思科比实验更有价值’,而在维基百科上有‘伽利略在1636年的《两种新科学的对话》中写道:如果依照亚里士多德的理论,假设有两块石头,大的重量为8,小的为4,则大的下落速度为8,小的下落速度为4,当两块石头被绑在一起的时候,下落快的会因为慢的而被拖慢。所以整个体系和下落速度在4-8之间。但是,两块绑在一起的石头的整体重量为12,下落速度也就应该大于8,这就陷入了一个自相矛盾的境界。’所以书中的观点是站不住脚的。现在看来所谓提高生产效率的书基本都不用看,《程序员修炼之道》除外。本书大部分原则基本在《程序员修炼之道》都有。


书里面不少工具类的介绍已经old了


爱不释手!真的是爱不释手我不知道已经读过多少遍了,每次随手拿起随便翻到一页就读一会作者分享了自己宝贵的从工作中总结出来的经验,这是一般的计算机类图书所欠缺的太棒了!!!


这是一本非常实用的书,软件行业很少能看了就马上派上用场的书,这是一本。本书第一部分介绍了很多能能极大提高工作效率的软件,比如Launchy,Desktops等,我看完以后就立即运用在实际工作中了,特别是Launchy,真是极大的提高了工作效率,唯一遗憾的就是Launchy不支持多桌面。第二部分也很不错,介绍了很多工作上能用到的方法,就算用不到也能开阔视野,传达了顶级程序员对这个行业的观察点。唯一遗憾的地方就是太贵了,纸张太薄,实在和价钱非常不匹配。不过无论如何来说,都是值得一看,如果能借来看更好啦!


很不错的书,从思维上还介绍如何思考。而不是说几个例子,照着做那种!


书不厚,能学到一些实用的技能


一些简单而又实用、细腻的规则,让人受益良多。最深刻的是"欧姆龙剃刀原理"和 "对象的主要次要属性"(有点像矛盾论~~)


喜欢其中能提高工作效率的内容


书的纸张非常差,用的是再生纸,内容也是不知所云


东西不错,可惜不是我想象的那种内容


还可以吧 我要求不高 只要能学习其中的思路就行 就冲这点了


质量很次,书有折角!纸质也不好!


前面的软件介绍以及后面的一些思想,哪怕是非程序员也一样受用~


研究提高效率的方法显然比延长工作时间更让人兴奋,这本挺薄的书不仅给你介绍了一些具体的工具来优化你的日常操作,让程序员真正成为最懂计算机的人,更重要的是提供了一种持续改进工作效率的思路,让人忽然发现,在很平常的操作中,其实也能提炼出很“懒人”的高效手段来,这是此书最好的地方。虽然只看到第二部分专注法则的前部分,已经感觉值得拥有。


买了就后悔,还以为有多少程序的东西。工具这东西是会过时的...真想买最好到有这书的书店翻翻再做决定吧。


封皮是神秘的麦田圈


好书,知易行难


卓有成效的程序员


多读一本算一本


都是些小技巧


难得一见的译著双磬的佳作


相关图书