本书是一线程序员的经验荟萃,他们根据各自在软件工程各环节里的实践经历,现身说法,提出了自己的真知灼见,这些经验涵盖了用户需求、系统分析设计、编码实践、编码风格、Bug管理和项目管理等多个方面。来自各领域的程序员都能从中找到自己感兴趣的内容,因此本书适合不同层次程序员的阅读。
前言 I
谨慎行动 2
勒布•罗斯(Seb Rose)
函数式编程原则的应用 4
爱德华•加森(Edward Garson)
试问自己“用户会怎么做?”(你不能算是用户) 6
吉尔斯•科尔伯恩(Giles Colborne)
编码标准的自动化 8
菲利普•冯•莱能(Filip van Laenen)
美在于简单 10
乔恩•奥尔姆海姆(Jørn Ølmheim)
在你重构之前 12
拉吉斯•阿塔帕图(Rajith Attapattu)
谨防共享 14
伍迪•达汉(Udi Dahan)
童子军规则 16
罗伯特•C•马丁(鲍伯大叔)(Robert C. Martin (Uncle Bob))
在责备别人之前先检查自己的代码 18
阿伦•凯利(Allan Kelly)
谨慎选择你的工具 20
乔瓦尼•阿斯普罗尼(Giovanni Asproni)
领域语言里的代码 22
丹•诺斯(Dan North)
代码就是设计 24
瑞恩•布勒西(Ryan Brush)
关于代码布局的麻烦事 26
史蒂夫•弗里曼(Steve Freeman)
代码审查 28
马蒂亚斯•卡尔森(Mattias Karlsson)
编写代码的理由 30
耶切尔•凯姆治(Yechiel Kimchi)
对注释的一个注释 32
卡尔•埃文斯(Cal Evans)
代码说不清,注释来补充 34
凯文•亨尼(Kevlin Henney)
不断学习 36
克林特•谢恩克(Clint Shank)
易用不是一种能力 38
格雷格•霍普(Gregor Hohpe)
早部署,常部署 40
史蒂夫•巴克扎克(Steve Berczuk)
区分业务异常和技术异常 42
丹•贝格•约翰松(Dan Bergh Johnsson)
有针对性地勤加练习 44
乔恩•贾格尔(Jon Jagger)
领域特定语言 46
迈克尔•亨格(Michael Hunger)
不要怕搞砸 48
麦克•里维斯(Mike Lewis)
不要在你的测试代码里装可爱 50
洛德•贝吉比(Rod Begbie)
不要忽略那个错误 52
皮特•古德利夫(Pete Goodliffe)
不要只学习语言,还要了解它的文化内涵 54
安德斯•诺拉斯(Anders Norås)
不要把程序钉死在老地方 56
维里蒂•什托布(Verity Stob)
不要指望“魔法会在此发生” 58
艾伦•格里菲思(Alan Griffiths)
不要重复你自己 60
史蒂夫•史密斯(Steve Smith)
别碰那些代码! 62
卡尔•埃文斯(Cal Evans)
封装行为,而不仅仅是状态 64
埃纳尔•兰德雷(Einar Landre)
浮点数不是真正的数 66
查克•阿利森(Chuck Allison)
开源助你实现雄心壮志 68
理查德•默森-海菲尔(Richard Monson-Haefel)
API设计的黄金法则 70
迈克尔•费瑟(Michael Feathers)
高手神话 72
瑞恩•布勒西(Ryan Brush)
加班加点,事倍功半 74
奥尔夫•莫德尔(Olve Maudal)
如何使用bug跟踪器 76
马特•多尔(Matt Doar)
代码的去芜存菁 78
皮特•古德利夫(Pete Goodliffe)
安装我吧 80
马库斯•巴克(Marcus Baker)
进程间通信对应用程序响应时间的影响 82
兰迪•斯坦福(Randy Stafford)
保持构建的整洁 84
约翰内斯•布罗德沃(Johannes Brodwall)
知道如何使用命令行工具 86
卡罗尔•罗宾逊(Carroll Robinson)
通晓两门以上编程语言 88
拉塞尔•文德(Russel Winder)
了解你的IDE 90
亨氏•卡布兹(Heinz Kabutz)
了解你的局限性 92
格雷格•科尔文(Greg Colvin)
知道你下次提交的内容 94
丹•贝格•约翰松(Dan Bergh Johnsson)
大型、相关联的数据 属于数据库 96
迪奥米德斯•斯皮内利斯(Diomidis Spinellis)
学习外语 98
克劳斯•马夸特(Klaus Marquardt)
要学会估算 100
乔瓦尼•阿斯普罗尼(Giovanni Asproni)
学着说“Hello,World” 102
托马斯•盖斯特(Thomas Guest)
让你的项目能表达它自己 104
丹尼尔•林德纳(Daniel Lindner)
链接器(Linker)并不神秘 106
沃尔特•布莱特(Walter Bright)
临时解决方案的寿命 108
克劳斯•马夸特(Klaus Marquardt)
使接口易于正确使用,难于错误使用 110
斯科特•迈尔斯(Scott Meyers)
让不可见的更加显眼 112
乔恩•贾格尔(Jon Jagger)
在并行系统中使用消息传递可获得更好的伸缩性 114
拉塞尔•文德(Russel Winder)
带给未来的消息 116
琳达•瑞辛(Linda Rising)
错失采用多态的机会 118
柯克•佩珀丁(Kirk Pepperdine)
奇闻轶事:测试人员是你的朋友 120
比尔克•胡夫纳盖尔(Burk Hufnagel)
二进制文件仅此一份 122
史蒂夫•弗里曼(Steve Freeman)
有代码有真相 124
彼得•索默莱德(Peter Sommerlad)
拥有(以及重构)构建脚本 126
史蒂夫•巴克扎克(Steve Berczuk)
结对编程,感受流程 128
古德妮•霍克尼斯,卡里•罗斯兰,安•卡特林•加耐特(Gudny Hauknes、Kari Røssland、Ann Katrin Gagnat)
特定领域类型胜过原始类型 130
埃纳尔•兰德雷(Einar Landre)
预防错误 132
吉尔斯•科尔伯恩(Giles Colborne)
专业程序员 134
罗伯特•C•马丁(鲍伯大叔)(Robert C. Martin (Uncle Bob))
把一切都置于版本控制之下 136
迪奥米德斯•斯皮内利斯(Diomidis Spinellis)
放下鼠标,远离键盘 138
比尔克•胡夫纳盖尔(Burk Hufnagel)
阅读代码 140
卡利亚恩•伯格(Karianne Berg)
读懂人性 142
基斯•布雷斯韦特(Keith Braithwaite)
经常重新发明轮子 144
贾森•P•塞奇(Jason P. Sage)
抗拒单子模式的诱惑 146
山姆•沙利斯特(Sam Saariste)
通向高性能之路布满了脏代码炸弹 148
柯克•佩珀丁(Kirk Pepperdine)
简单来自于删减 150
保罗•W•荷马(Paul W. Homer)
单一职责原则 152
罗伯特•C•马丁(鲍伯大叔)(Robert C. Martin (Uncle Bob))
从Yes开始 154
亚历克斯•米勒(Alex Miller)
请转回去做自动化、自动化、自动化 156
戴•伊霍斯特曼(Cay Horstmann)
充分利用代码分析工具 158
萨拉•芒特(Sarah Mount)
为必需行为测试,而不是偶发行为 160
凯文•亨尼(Kevlin Henney)
测试要严密而具体 162
凯文•亨尼(Kevlin Henney)
在睡觉的时候(或者度周末的时候)进行测试 164
拉吉斯•阿塔帕图(Rajith Attapattu)
软件开发的工程严密性来自测试 166
尼尔•福特(Neal Ford)
关于状态的思想 168
尼克拉斯•尼尔森(Niclas Nilsson)
一人计短,二人计长 170
阿德里安•威伯尔(Adrian Wible)
错上加错就是貌似正确(并且难以纠正) 172
阿伦•凯利(Allan Kelly)
我写代码为人人,人人为我写代码 174
阿斯拉姆•汉(Aslam Khan)
Uinx工具是你的好朋友 176
迪奥米德斯•斯皮内利斯(Diomidis Spinellis)
使用正确的算法和数据结构 178
简•克里斯蒂安(JC)•冯•温克尔(Jan Christiaan “JC” van Winkel)
冗长的日志会让你睡不安枕 180
约翰内斯•布罗德沃(Johannes Brodwall)
WET掩盖了性能瓶颈 182
柯克•佩珀丁(Kirk Pepperdine)
当程序员和测试人员开始合作的时候 184
珍妮特•格雷戈里(Janet Gregory)
编写代码时要像余生都要给它提供支持一样 186
尤里•祖巴列夫(Yuriy Zubarev)
使用实例编写小函数 188
基斯•布雷斯韦特(Keith Braithwaite)
测试为人而写 190
杰拉德•梅萨罗斯(Gerard Meszaros)
你应该关心你的代码 192
皮特•古德利夫(Pete Goodliffe)
心口不一的客户 194
内特•杰克逊(Nate Jackson)
作者简介 196
索引 221
Google Android2手机应用程序设计入门-第3版-(1DVD+手册) 本书特色 用*短的时间,跟随拥有android market单一应用程序下载超过...
C语言兼具高级语言和汇编语言的特点,学习起来难度较大,令不少初学者望而生畏。同时,C语言又是一门应用非常广泛的编程语言,在
《成长力觉醒:探寻人生与职业幸福之路》内容简介:本书从个人对自我、对个人角色和使命,以及对如何成长发展三方面的认知,帮助实
《超体能健身》内容简介:本书将通过8个简单的步骤,帮助你重返自己的最佳状态。这套健身计划十分简单,不用花太多钱,你就能达到健
《辣味江湖》内容简介:这不仅是口腹之欲的记录,更是一次美食文化之旅。在这本《辣味江湖——一个食客的寻味笔记》中,要云先生以
《朕的圆明园》内容简介:这是一本结合典籍与历史图片,介绍雍正至咸丰五位皇帝与圆明园关系的历史书籍。他们中的雍正和道光就去世
《真实世界的经济学》内容简介:经济学大家、北大国发院教授周其仁代表作。经济学基于“理性人”假设,但它应当用来解释处处“不理
学习GNUEmacsGNUEmacs是Emacs编辑器家族中最受欢迎、传播范围最广、也是最强大和最灵活的UNIX文本编辑器。与其他文本编辑器的重要
《漫画分镜头表现教程(第3版)》内容简介:本书共分5章,分别讲解分镜头概述、漫画分镜头表现、四格漫画分镜头表现、特殊分镜头技
《且介亭杂文二集》内容简介:本书是鲁迅1935年所作杂文四十八篇,1935年末经作者亲自编定,1937年7月由上海三闲书屋初版。包括《叶
《给设计师看的交互程序设计书:FlashActionScript3.0溢彩编程》内容简介:ActionScript是针对FlashPlayer运行环境的编程语言...
《C语言的科学和艺术》是计算机科学的经典教材,介绍了计算机科学的基础知识和程序设计的专门知识。《C语言的科学和艺术》以介绍
操作系统导论 本书特色 这是一本关于现代操作系统的书。全书围绕虚拟化、并发和持久性这3个主要概念展开,介绍了所有现代系统的主要组件(包括调度、虚拟内存管理、磁盘...
《运营思维》内容简介:什么是运营?运营工作具体包括哪些种类,需要运营人员掌握哪些技能?运营和产品、用户、增长、转化及数据是
《清华大学电子与信息技术系列教材:现代通信原理》以现代通信系统为背景,系统、深入地介绍现代通信技术的基本原理,并以数字通信
《刘晓蕾《红楼梦》十二讲》内容简介:读过和没有读过《红楼梦》,生命中有些东西是不一样的。《红楼梦》无疑是阻隔在读者面前的一
《超简单!一学就懂的财务报表(全彩图解版)》内容简介:零基础、全图解,通过近100多个精辟的知识点、120多张通俗易懂的逻辑图表
《怎样成为一名设计师》内容简介:头脑独立的设计师需要自己发现合理建议,也需要当代设计师面对的道德与实践问题的指南。《怎样
《构图之本(风光摄影四部曲)》内容简介:任何风光摄影师要想拍好风光,都必须学习和谙熟构图知识。高觉著的《构图之本》从风光拍
我们生活的世界中存在各种各样的商品,T恤、手机、家具、汽车……不管哪一种商品,其中必定包含着某种“创意”。换言之,每一种商