新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 计算机科学论坛计算机技术与应用『 编程心得 』 → 机械工业出版社《卓有成效的程序员》样章独家 下载(PDF) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 41033 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 机械工业出版社《卓有成效的程序员》样章独家 下载(PDF) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     admin 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      头衔:W3China站长
      等级:计算机硕士学位(管理员)
      文章:5255
      积分:18406
      门派:W3CHINA.ORG
      注册:2003/10/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给admin发送一个短消息 把admin加入好友 查看admin的个人资料 搜索admin在『 编程心得 』 的所有贴子 点击这里发送电邮给admin  访问admin的主页 引用回复这个贴子 回复这个贴子 查看admin的博客楼主
    发贴心情 机械工业出版社《卓有成效的程序员》样章独家 下载(PDF)


    感谢机械工业出版社 华章图文独家提供《卓有成效的程序员》样章下载(PDF)

    第一章

    第四章

    第十章

    China-pub购买:http://www.china-pub.com/192175


    此主题相关图片如下:
    按此在新窗口浏览图片

    程序员的高产与否和地域无关。我供职的ThoughtWorks是一家素以其独特的企业文化而闻名的跨国咨询公司,当我遇到来自其他国家(包括中国)的ThoughtWorks员工时,我们之间总是相似多过差异。在我看来,不管来自哪个国家,软件开发者总是我们的第一身份,然后才是国籍和文化的区别。

    世界各地的软件开发者都大致相同,也就是说我们在尝试提高生产率时也面临同样的挑战。正因为如此,在听说《The Productive
    Programmer》一书被翻译成其他语言(当然也包括中文)时我才会如此高兴。我希望书中所有的技巧与思考都能原汁原味地翻译给具有不同文化背景的读者,更希望这本书能帮助它的读者们变得更加卓有成效,不论他们来自哪个国家。

    译者序
    消除浪费,始于细节

    在一次关于敏捷的讨论中,我说了一句令很多人不解的话:我不要敏捷。
    和很多话一样,断章取义的理解很容易造成误会。我当时说的整句话是:我不要敏捷,我要致力于消除软件开发中的一切浪费。当“敏捷”渐渐变成一个人见人爱的“大词”,越来越多的人开始发现,其实自己要的不是“be agile”,而是切实地消除浪费、提高效率。
    所以,作为ThoughtWorks员工的Neal Ford在他的这本书里闭口不谈“敏捷”。他只是实实在在地告诉你,作为一个程序员,你每天都在什么地方浪费着自己的生产率,以及如何去有效地消除这些浪费。
    也许你甚至意识不到这些细小环节上浪费的存在。随便举个例子吧,在你一天的工作中,你有多少次从资源管理器里导航到源代码文件夹查看代码,然后又导航到另一个文件夹寻找文档,然后打开命令行窗口并进入项目目录,以及在密密麻麻的任务栏里找到正确的浏览器窗口?Neal Ford说,这些都是浪费:做这些与核心任务──软件开发──无关的事情是在浪费生产率。有兴趣知道这些自己每天做无数次的事还能如何改进吗?即便不是专业程序员,这本书的第2章也将对你不无裨益。
    从某种意义上来说,Neal Ford在这本书里做的事,正是现代科学管理理论的鼻祖弗雷德里克•泰勒在伯利恒钢铁厂做过的“泰勒实验”:剖析每个个体日常工作中的每个细节,对细节进行持续优化,通过对细节的改进提升生产率。在钢铁厂,泰勒的科学管理方法让一个搬运铁块的工人每天的工作效率提高了3倍;而在软件开发中对细节的重视甚至能让程序员的效率提升更多,因为人的体力终归有限,而脑力的开发程度则远未达到极限。
    这并非痴人说梦,因为ThoughtWorks就是这样的例证。据说ThoughtWorks有一群天才的程序员,只有近距离接触才会发现,这些人之所以能做到如此高效,很大程度上是因为他们有一些根深蒂固的好习惯,而且不断在细节上精益求精。ThoughtWorks中国公司的几位同事一起来翻译这本书,也正是为了把我们的经验分享给更多人。
    从每天的细节开始,让自己成为一个高产的程序员,其实每个人都能做到。
    熊节
    ThoughtWorks,咨询师
    2008年11月17日


    目录
    目  录
    译者序

    前言
    第1章 简介 9
    为什么要写一本关于程序员生产力的书? 9
    本书包含哪些内容? 10
    如何读此书? 12
    第2章 加速
    启动面板 14
    加速器 18
    宏 24
    小结 26
    第3章 专注 27
    排除干扰 27
    搜索优于导航 29
    找出难找的目标 30
    使用有根视图 31
    设好“粘性属性” 32
    使用基于项目的快捷方式 33
    使用多显示器 33
    用虚拟桌面拆分工作空间 33
    小结 34
    第36章 自动化 36
    不要重新发明轮子 37
    建立本地缓存 37
    自动访问网站
    与RSS源交互
    在构建之外使用Ant
    用Rake执行常见任务
    用Selenium浏览网页
    用bash统计异常数
    用Windows Power Shell替代批处理文件
    用Mac OS X的Automator来删除过时的下载文件
    驯服Subversion命令行
    用Ruby编写SQL拆分工具
    我应该把它自动化吗?
    别给牦牛剪毛
    小结
    第5章 规范性 54
    DRY 版本控制 54
    使用标准的构建服务器 55
    间接机制 56
    利用虚拟平台
    DRY 阻抗失配 60
    DRY 文档 65
    小结 68
    第6章  测试驱动设计
    不断演化的测试 70
    代码覆盖率 76
    第7章静态分析 78
    字节码分析
    源码分析
    用 Panopticode生成统计数据
    动态语言的分析
    第8章当个好公民 82
    破坏封装 82
    构造函数
    静态方法
    犯罪行为
    第9章YAGNI
    第10章 古代哲人
    亚里斯多德的“事物的本质和附属性质”理论
    奥卡姆剃刀原理
    笛米特法则
    “古老的”软件学说
    第11章. 质疑权威 100
    愤怒的猴子 100
    连贯接口 101
    反目标(Anti-Objects) 102
    第12章 元编程 104
    Java和反射 104
    用Groovy测试Java 105
    编写连贯接口 106
    元编程的归处 107
    第13章 组合方法和SLAP
    组合方法实践 109
    SLAP 114
    第14章 多语言编程 119
    历史与现状 119
    路在何方? 121
    Ola的金字塔 123
    第15章 寻找完美工具 125
    寻找完美编辑器 125
    编辑器参考列表 127
    为你的工作选择正确的工具 128
    丢弃错误的工具 132
    第16章. 尾声:继续对话
    附录  Building Blocks 135


       收藏   分享  
    顶(0)
      




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

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

    第十二章第一节《用ROR创建面向资源的服务》
    第十二章第二节《用Restlet创建面向资源的服务》
    第三章《REST式服务有什么不同》
    InfoQ SOA首席编辑胡键评《RESTful Web Services中文版》
    [InfoQ文章]解答有关REST的十点疑惑

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/5 0:06:00
     
     chengrong 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:69
      门派:XML.ORG.CN
      注册:2008/9/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chengrong发送一个短消息 把chengrong加入好友 查看chengrong的个人资料 搜索chengrong在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chengrong的博客2
    发贴心情 
    本书有一个讨论群:68443878
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/5 16:46:00
     
     hjx_221 帅哥哟,离线,有人找我吗?
      
      
      威望:7
      等级:博士一年级
      文章:4607
      积分:24021
      门派:XML.ORG.CN
      注册:2004/8/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hjx_221发送一个短消息 把hjx_221加入好友 查看hjx_221的个人资料 搜索hjx_221在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看hjx_221的博客3
    发贴心情 
    下来欣赏一下先

    ----------------------------------------------
    初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒~ 
    http://hjx221.blogger.org.cn/

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/5 20:50:00
     
     chengrong 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:69
      门派:XML.ORG.CN
      注册:2008/9/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chengrong发送一个短消息 把chengrong加入好友 查看chengrong的个人资料 搜索chengrong在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chengrong的博客4
    发贴心情 
    专注地编写优美、简约的代码是每个程序员的梦想,我们不希望遇到任何打扰和羁绊,我们希望代码随心所欲倾泻在屏幕上,编译、运行,行云流水,酣畅淋漓的感觉,但现实是这个梦想经常遥不可及,你常被各种繁杂的头绪扰乱思绪,常因为需求变更把程序改到千疮百孔而且丑陋、臃肿,你期待改善这种状况。就像那句著名的话,“卓有成效是可以学习的“,让编程工作变得卓有成效也是可以学习的,方法就在这里。
        在编程工具方面,Emacs曾经是程序员的最爱,眼花缭乱的快捷键让你对代码进行随心所欲的操控,有必要的话写段Lisp随需扩展。然而 Emacs复杂的快捷键序列多少让人望而生畏,幸运的是还有很多选择,充分掌握工具会让编程更加流畅,有句话叫做“懒人推动社会发展”,程序员大概是最懒的人,总把尽可能多的工作丢给机器,作为程序员,找到适合自己的开发环境并能充分发挥工具的威力非常重要;另外作为资深程序员,作者提出时间管理的法则,编写代码的法则,都给人醍醐灌顶的感觉。
        我会要求我们团队所有程序员认真研读本书!
                                                                                          校内网 高级技术总监 黄晶
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/7 17:49:00
     
     chengrong 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:69
      门派:XML.ORG.CN
      注册:2008/9/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chengrong发送一个短消息 把chengrong加入好友 查看chengrong的个人资料 搜索chengrong在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chengrong的博客5
    发贴心情 
    在飞速发展软件行业和互联网行业来说,效率是所有产品制胜的关键!

    这些年一直从事互联网产品的开发,互联网的一个重要特点就是要快!你一个产品三个月出来,竞争对手可能两个月就出来了,别人抢在前面占领市场,你的机会就变小了,所以每个公司在推出产品的速度上都是力求最新。

    一个产品的推出,程序员是非常关键的角色,直接决定了产品推出的进度。作为精益求精的程序员的我们,我想大家都在极力改进自己开发项目的速度,一般普遍的方式就是时间:时间换速度。其实,除了加长时间来获得项目的开发进度,同样还能够通过改进自己的工作方式、工作习惯来提升效率,相同的时间,做更多的事情,更有效的编码,本书就是告诉你如何改进工作方式工作习惯,通过工具来辅助工作来提升效率,做一个卓有成效的程序员。

    记得2007年夏天开发过一个项目,当时项目是另外一个团队开发三个月开发的一个半成品,因为功能和效率没法达到要求,要求我们这个团队进行构建,接手该项目后,我们完全抛弃了旧有代码,在我们与前一个团队相同开发人员数量的条件下,只花了一个月时间就把该项目完成了,并且功能和性能超越了前者。这么快速的完成项目,除了针对项目良好的架构设计,我想应该归功于我们按照了类似本书第三、四、五章描述的工作方法来进行项目开发有关系。有些知识,你可能需要工作学习体验很久才能够掌握,而本书作者Neal Ford已经直接把这些经验方法告诉你了。

    衡量一本好计算机书,除了能够向读者传递技能和知识,同时还能够传递价值观和哲学。在开发过程中,我们除了增加时间来获得项目的完成,通过改进自我的做事方式方法,同样有效,而且有些良好的习惯养成以后,能够收益终生,而那些工具和方法,也会让你受益匪浅。

    很早就在CSDN出版的《程序员》杂志上看到熊节(透明思考)的名字,文字犀利,见解独特。我与他素未谋面,但是也折服于他的文采和技术能力,一个技术和文采并重的人,才是一个优秀的咨询师吧,同样本书的作者 Neal Ford 是 ThoughtWorks 的一名软件构架师,也是个牛人,在熊节的翻译下,Neal Ford的书读起来到也是比较对味,很是流畅。

    希望熊节翻译的这本《卓有成效的程序员》能够帮助你,成为一个高产有效率的程序员。


                                                                            heiyeluren
                                                                          2009年02月18日

    http://blog.csdn.net/heiyeshuwu/archive/2009/02/24/3931018.aspx

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/7 17:54:00
     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 编程心得 』 的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客6
    发贴心情 
    从目录看起来很不错哦,下来详细看看,哈哈

    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/10 15:24:00
     
     huajinggangbo 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:59
      门派:XML.ORG.CN
      注册:2009/3/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给huajinggangbo发送一个短消息 把huajinggangbo加入好友 查看huajinggangbo的个人资料 搜索huajinggangbo在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看huajinggangbo的博客7
    发贴心情 
    下载个先,慢慢看了!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/17 10:07:00
     
     realdragon 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:54
      门派:XML.ORG.CN
      注册:2009/3/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给realdragon发送一个短消息 把realdragon加入好友 查看realdragon的个人资料 搜索realdragon在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看realdragon的博客8
    发贴心情 
    dsh
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/19 18:19:00
     
     chengrong 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:4
      积分:69
      门派:XML.ORG.CN
      注册:2008/9/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给chengrong发送一个短消息 把chengrong加入好友 查看chengrong的个人资料 搜索chengrong在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看chengrong的博客9
    发贴心情 
    http://www.luanxiang.org/blog/archives/593.html
      
      程序员,就是整天与机器打交道的那群人。
      在计算机并不普及的年代,这样的描述毫无疑问;然而,这些年来,得益于计算机成本的不断下降,软件使用门槛的不断降低,如今,昔日昂贵而又神秘不可莫测电脑,已经成了随处可见、人人能用的办公器材。一句话:人机交互,不再是程序员的专利。大家都可以用电脑干活,只不过,程序员用电脑写程序,其他人用电脑干其它事。
      结果,普通人抱怨的问题,程序员也在抱怨:电脑不够聪明,不够智能,效率太低……
      
      可是,电脑真的进化到了对程序员和普通用户“一视同仁”的地步吗?
      
      我不由得想起,上个世纪80年代,温伯格在《技术领导之路》中提出的疑问:
      
       (开办技术领导力学习班)也让我们产生怀疑,技术在当今社会扮演了重要的角色,我们的学习班,是否赋予了某些人太多的力量?
      
      细细想来,当年,IT技术那么高深,只有少数人能够接触,因而程序员“理所当然”地借助了IT的东风,具有超常的力量。可是如今呢?与常人无异的程序员(或者说,IT技术人员),他们身上让人担心的“太大的”力量,到底是被淘汰了,还是没有发挥出来?
      
      对这个问题,不同的人或许有不同的看法。不过,读过The Productive Programmer(中文版《卓有成效的程序员》)的人,多半会选择后一个答案。
      
      The Productive Programmer是一本奇特的书,它的Productive(也就是“生产力”),与新的语言、新的框架、新的系统完全无关,而是另辟蹊径:它只是提醒读者,作为程序员,你与普通用户是不同的:其它人只是简单地“启动”程序,而你完全可以动用自己的专业知识,“驱使/调度”那些程序。这样的机会,普通用户想不到,也不愿意抓住,但是抓住它们,你的生产率就会成倍上升。所以,这本书叫做The Productive Programmer,而不是The Productive Computer-User。
      
      薄薄的一本书(英文版224页,中文版215页),共分16章,兼顾概念和实践两个方面,既介绍了加速、专注、自动化等等提高生产率的“先进 ”思维观念(譬如“多用键盘少用鼠标”,“消除干扰集中精力”),也给出了在设计、分析、构造、元编程、多语言编程等等多种任务中贯彻前述思想的若干实例(譬如 “用全面测试保证质量”,“选用最省事的方式/语言完成任务”),可以说是“麻雀虽小,五脏俱全”了。
      
      不过,看完整本书,我最深刻的印象还是贯彻全书的思想。说白了,就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势——他人眼中的普通工具,是程序员手里的有利武器。
      不信,你可以想想,虽然如今人机交互的难度已经大大下降,然而程序终究是程序,程序跟人打交道,与程序跟程序打交道,效率差的不是一星半点:
      不用宏,你可能需要一次又一次地重复选择、修改、保存;
      不用脚本,你可能需要一次又一次地点击、配置、等待;
      不用自动化测试,你可能需要一遍又一遍地运行、调试;
      不用管道,你可能需要一次又一次地生成、删除中间文件;
      ……
      
      The Productive Programmer则会“教导”你:
      多用宏吧,启动它,你就可以迅速完成大量重复的工作;
      多用脚本吧,你可以提高运行的效率,避免变数和误差;
      多用自动化测试吧,你可以迅速定位问题,保证质量;
      多用管道吧,这样多个程序就可以“无缝结合”成一条生产线;
      ……
      
      没错,学习宏、脚本、自动化测试、管道(Shell),不是“容易”的事情。但别忘了,身为技术人员,了解技术,学习技术,运用技术,正是你的职业,你的优势,也是你的责任,你的生产力(所谓productive)所在。随便举个例子吧,在本书中文版的第196页有这么一段话:
      
       ……在我刚才提到的例子中,开发人员用了1小时58分建立正确的语法,然后用了不足两分钟运行。在一些未曾培训过的人眼里,他的大多数时间都没有效率(这就是为什么他们反对使用正则表达式的原因),但最后,他节省的是几天的时间!……
      
      我还要补充的是,解决好这样的问题,“现在”能节省几天的时间,将来,更可以节省无穷无尽的时间!就我的开发经历来说,平时多注重这样的细节,做些 “没效率”的事情,积累起来,就可以节省大量的时间和精力——至少至少,你不会抱怨,自己终日被一大堆“简单重复劳动”所困扰。
      
      类似的例子,在书中随处可见,譬如作者讲到,“几乎每个*nix用户,都会有自己的shell alias”,真是于我心有戚戚焉:我自己积累了一大堆alias,喜欢用grep –color把要找的内容标成高亮,也喜欢在统计脚本里用不同的颜色标注不同的状态……在Shell下干活,更加简单、利索,一目了然,这种流畅和效率,也可算专属于程序员的宝贵财富。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/3/31 16:59:00
     
     蓝的黑 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:54
      门派:XML.ORG.CN
      注册:2009/4/7

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给蓝的黑发送一个短消息 把蓝的黑加入好友 查看蓝的黑的个人资料 搜索蓝的黑在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看蓝的黑的博客10
    发贴心情 
    程序员的哲学指导书,值得一看——我只能下载1、4、10,其它的呢?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/4/7 11:47:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/28 3:19:38

    本主题贴数12,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    139.648ms