《程序员应该知道的97件事》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)亨尼编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121117565
  • 页数:231 页
图书介绍:本书是一线程序员的经验荟萃,他们根据各自在软件工程各环节里的实践经历,现身说法,提出了自己的真知灼见,这些经验涵盖了用户需求、系统分析设计、编码实践、编码风格、Bug管理和项目管理等多个方面。来自各领域的程序员都能从中找到自己感兴趣的内容,因此,适合不同层次程序员的阅读。

前言 1

谨慎行动&勒布·罗斯(Seb Rose) 2

函数式编程原则的应用&爱德华·加森(Edward Garson) 4

试问自己“用户会怎么做?”(你不能算是用户)&吉尔斯·科尔伯恩(Giles Colborne) 6

编码标准的自动化&菲利普·冯·莱能(Filip van Laenen) 8

美在于简单&乔恩·奥尔姆海姆(J?rn ?lmheim) 10

在你重构之前&拉吉斯·阿塔帕图(Rajith Attapattu) 12

谨防共享&伍迪·达汉(Udi Dahan) 14

童子军规则&罗伯特·C·马丁(鲍伯大叔)(Robert C.Martin(Uncle Bob)) 16

在责备别人之前先检查自己的代码&阿伦·凯利(Allan Kelly) 18

谨慎选择你的工具&乔瓦尼·阿斯普罗尼(Giovanni Asproni) 20

领域语言里的代码&丹·诺斯(Dan North) 22

代码就是设计&瑞恩·布勒西(Ryan Brush) 24

关于代码布局的麻烦事&史蒂夫·弗里曼(Steve Freeman) 26

代码审查&马蒂亚斯·卡尔森(Mattias Karlsson) 28

编写代码的理由&耶切尔·凯姆治(Yechiel Kimchi) 30

对注释的一个注释&卡尔·埃文斯(Cal Evans) 32

代码说不清,注释来补充&凯文·亨尼(Kevlin Henney) 34

不断学习&克林特·谢恩克(Clint Shank) 36

易用不是一种能力&格雷格·霍普(Gregor Hohpe) 38

早部署,常部署&史蒂夫·巴克扎克(Steve Berczuk) 40

区分业务异常和技术异常 &丹·贝格·约翰松(Dan Bergh Johnsson) 42

有针对性地勤加练习&乔恩·贾格尔(Jon Jagger) 44

领域特定语言&迈克尔·亨格(Michael Hunger) 46

不要怕搞砸&麦克·里维斯(Mike Lewis) 48

不要在你的测试代码里装可爱&洛德·贝吉比(Rod Begbie) 50

不要忽略那个错误&皮特·古德利夫(Pete Goodliffe) 52

不要只学习语言,还要了解它的文化内涵&安德斯·诺拉斯(Anders Nor?s) 54

不要把程序钉死在老地方&维里蒂·什托布(Verity Stob) 56

不要指望“魔法会在此发生”&艾伦·格里菲思(Alan Griffiths) 58

不要重复你自己&史蒂夫·史密斯(Steve Smith) 60

别碰那些代码!&卡尔·埃文斯(Cal Evans) 62

封装行为,而不仅仅是状态&埃纳尔·兰德雷(Einar Landre) 64

浮点数不是真正的数&查克·阿利森(Chuck Allison) 66

开源助你实现雄心壮志&理查德·默森-海菲尔(Richard Monson-Haefel) 68

API设计的黄金法则&迈克尔·费瑟(Michael Feathers) 70

高手神话&瑞恩·布勒西(Ryan Brush) 72

加班加点,事倍功半&奥尔夫·莫德尔(Olve Maudal) 74

如何使用bug跟踪器&马特·多尔(Matt Doar) 76

代码的去芜存菁&皮特·古德利夫(Pete Goodliffe) 78

安装我吧&马库斯·巴克(Marcus Baker) 80

进程间通信对应用程序响应时间的影响&兰迪·斯坦福(Randy Stafford) 82

保持构建的整洁&约翰内斯·布罗德沃(Johannes Brodwall) 84

知道如何使用命令行工具 &卡罗尔·罗宾逊(Carroll Robinson) 86

通晓两门以上编程语言&拉塞尔·文德(Russel Winder) 88

了解你的IDE&亨氏·卡布兹(Heinz Kabutz) 90

了解你的局限性&格雷格·科尔文(Greg Colvin) 92

知道你下次提交的内容&丹·贝格·约翰松(Dan Bergh Johnsson) 94

大型、相关联的数据属于数据库&迪奥米德斯·斯皮内利斯(Diomidis Spinellis) 96

学习外语&克劳斯·马夸特(Klaus Marquardt) 98

要学会估算&乔瓦尼·阿斯普罗尼(Giovanni Asproni) 100

学着说“Hello,World”&托马斯·盖斯特(Thomas Guest) 102

让你的项目能表达它自己&丹尼尔·林德纳(Daniel Lindner) 104

链接器(Linker)并不神秘&沃尔特·布莱特(Walter Bright) 106

临时解决方案的寿命&克劳斯·马夸特(Klaus Marquardt) 108

使接口易于正确使用,难于错误使用&斯科特·迈尔斯(Scott Meyers) 110

让不可见的更加显眼&乔恩·贾格尔(Jon Jagger) 112

在并行系统中使用消息传递可获得更好的伸缩性&拉塞尔·文德(Russel Winder) 114

带给未来的消息&琳达·瑞辛(Linda Rising) 116

错失采用多态的机会&柯克·佩珀丁(Kirk Pepperdine) 118

奇闻轶事:测试人员是你的朋友&比尔克·胡夫纳盖尔(Burk Hufnagel) 120

二进制文件仅此一份&史蒂夫·弗里曼(Steve Freeman) 122

有代码有真相&彼得·索默莱德(Peter Sommerlad) 124

拥有(及重构)构建脚本&史蒂夫·巴克扎克(Steve Berczuk) 126

结对编程,感受流程&古德妮·霍克尼斯,卡里·罗斯兰,安·卡特林·加耐特(Gudny Hauknes、Kari R?ssland、Ann Katrin Gagnat) 128

特定领域类型胜过原始类型&埃纳尔·兰德雷(Einar Landre) 130

预防错误&吉尔斯·科尔伯恩(Giles Colborne) 132

专业程序员&罗伯特·C·马丁(鲍伯大叔)(Robert C.Martin(Uncle Bob)) 134

把一切都置于版本控制之下&迪奥米德斯·斯皮内利斯(Diomidis Spinellis) 136

放下鼠标,远离键盘&比尔克·胡夫纳盖尔(Burk Hufnagel) 138

阅读代码&卡利亚恩·伯格(Karianne Berg) 140

读懂人性&基斯·布雷斯韦特(Keith Braithwaite) 142

经常重新发明轮子&贾森·P·塞奇(Jason P.Sage) 144

抗拒单子模式的诱惑&山姆·沙利斯特(Sam Saariste) 146

通向高性能之路布满了脏代码炸弹&柯克·佩珀丁(Kirk Pepperdine) 148

简单来自于删减&保罗·W·荷马(Paul W.Homer) 150

单一职责原则&罗伯特·C·马丁(鲍伯大叔)(Robert C.Martin(Uncle Bob)) 152

从Yes开始&亚历克斯·米勒(Alex Miller) 154

请转回去做自动化、自动化、自动化&戴·伊霍斯特曼(Cay Horstmann) 156

充分利用代码分析工具&萨拉·芒特(Sarah Mount) 158

为必需行为测试,而不是偶发行为&凯文·亨尼(Kevlin Henney) 160

测试要严密而具体&凯文·亨尼(Kevlin Henney) 162

在睡觉的时候(或度周末的时候)进行测试&拉吉斯·阿塔帕图(Rajith Attapattu) 164

软件开发的工程严密性来自测试&尼尔·福特(Neal Ford) 166

关于状态的思想&尼克拉斯·尼尔森(Niclas Nilsson) 168

一人计短,二人计长&阿德里安·威伯尔(Adrian Wible) 170

错上加错就是貌似正确(并且难以纠正)&阿伦·凯利(Allan Kelly) 172

我写代码为人人,人人为我写代码&阿斯拉姆·汉(Aslam Khan) 174

Unix工具是你的好朋友&迪奥米德斯·斯皮内利斯(Diomidis Spinellis) 176

使用正确的算法和数据结构&简·克里斯蒂安(JC)·冯·温克尔(Jan Christiaan "JC" van Winkel) 178

冗长的日志会让你睡不安枕&约翰内斯·布罗德沃(Johannes Brodwall) 180

WET掩盖了性能瓶颈&柯克·佩珀丁(Kirk Pepperdine) 182

当程序员和测试人员开始合作的时候&珍妮特·格雷戈里(Janet Gregory) 184

编写代码时要像余生都要给它提供支持一样&尤里·祖巴列夫(Yuriy Zubarev) 186

使用实例编写小函数&基斯·布雷斯韦特(Keith Braithwaite) 188

测试为人而写&杰拉德·梅萨罗斯(Gerard Meszaros) 190

你应该关心你的代码&皮特·古德利夫(Pete Goodliffe) 192

心口不一的客户&内特·杰克逊(Nate Jackson) 194

作者简介 196

索引 221

Bug与修复 18

在责备别人之前先检查自己的代码 18

别碰那些代码! 62

如何使用bug跟踪器 76

错上加错就是貌似正确(并且难以纠正) 172

构建与部署 40

早部署,常部署 40

别碰那些代码! 62

安装我吧 80

保持构建的整洁 84

让你的项目能表达它自己 104

二进制文件仅此一份 122

拥有(及重构)构建脚本 126

编码指南与代码布局 8

编码标准的自动化 8

关于代码布局的麻烦事 26

代码审查 28

对注释的一个注释 32

代码说不清,注释来补充 34

充分利用代码分析工具 158

设计原则与编码技术 4

函数式编程原则的应用 4

试问自己“用户会怎么做?”(你不能算是用户) 6

美在于简单 10

谨慎选择你的工具 20

领域语言里的代码 22

代码就是设计 24

编写代码的理由 30

易用不是一种能力 38

区分业务异常和技术异常 42

不要重复你自己 60

封装行为,而不仅仅是状态 64

API设计的黄金法则 70

进程间通信对应用程序响应时间的影响 82

使接口易于正确使用,难于错误使用 110

在并行系统中使用消息传递可获得更好的伸缩性 114

错失采用多态的机会 118

有代码有真相 124

特定领域类型胜过原始类型 130

预防错误 132

抗拒单子模式的诱惑 146

单一职责原则 152

关于状态的思想 168

WET掩盖了性能瓶颈 182

领域思想 22

领域语言里的代码 22

领域特定语言 46

学习外语 98

特定领域类型胜过原始类型 130

读懂人性 142

关于状态的思想 168

使用实例编写小函数 188

错误、错误处理和异常 42

区分业务异常和技术异常 42

不要忽略那个错误 52

不要把程序钉死在老地方 56

预防错误 132

冗长的日志会让你睡不安枕 180

学习、技能和专业 36

不断学习 36

有针对性地勤加练习 44

不要只学习语言,还要了解它的文化内涵 54

开源助你实现雄心壮志 68

高手神话 72

加班加点,事倍功半 74

阅读代码 140

读懂人性 142

经常重新发明轮子 144

夜行系或魔法系 58

不要指望“魔法会在此发生” 58

别碰那些代码! 62

高手神话 72

知道如何使用命令行工具 86

链接器(Linker)并不神秘 106

在睡觉的时候(或度周末的时候)进行测试 164

冗长的日志会让你睡不安枕 180

编写代码时要像余生都要给它提供支持一样 186

性能、优化和展现 4

函数式编程原则的应用 4

浮点数不是真正的数 66

代码的去芜存菁 78

进程间通信对应用程序响应时间的影响 82

了解你的局限性 92

大型、相关联的数据属于数据库 96

在并行系统中使用消息传递可获得更好的伸缩性 114

通向高性能之路布满了脏代码炸弹 148

使用正确的算法和数据结构 178

WET掩盖了性能瓶颈 182

专业主义、心态和态度 36

不断学习 36

有针对性地勤加练习 44

加班加点,事倍功半 74

临时解决方案的寿命 108

专业程序员 134

放下鼠标,远离键盘 138

软件开发的工程严密性来自测试 166

编写代码时要像余生都要给它提供支持一样 186

你应该关心你的代码 192

编程语言和范例 4

函数式编程原则的应用 4

领域特定语言 46

不要只学习语言,还要了解它的文化内涵 54

通晓两门以上编程语言 88

学习外语 98

重构和代码保养 2

谨慎行动 2

在你重构之前 12

童子军规则 16

代码说不清,注释来补充 34

不要怕搞砸 48

代码的去芜存菁 78

保持构建的整洁 84

知道你下次提交的内容 94

临时解决方案的寿命 108

带给未来的信息 116

有代码有真相 124

拥有(以及重构)构建脚本 126

专业程序员 134

通向高性能之路布满了脏代码炸弹 148

简单来自于删减 150

我写代码为人人,人人为我写代码 174

你应该关心你的代码 192

重用VS.重复 14

谨防共享 14

易用不是一种能力-ility 38

有针对性地勤加练习 44

不要重复你自己 60

经常重新发明轮子 144

使用正确的算法和数据结构 178

WET掩盖了性能瓶颈 182

进度、期限和估算 2

谨慎行动 2

代码就是设计 24

知道你下次提交的内容 94

要学会估算 100

让不可见的更加显眼 112

简洁 10

美在于简单 10

学着说“Hello,World” 102

带给未来的消息 116

简单来自于删减 150

团队协作 28

代码审查 28

学习外语 98

结对编程,感受流程 128

从Yes开始 154

一人计短,二人计长 170

我写代码为人人,人人为我写代码 174

当程序员和测试人员开始合作的时候 184

测试、测试行为和测试人员 4

函数式编程原则的应用 4

代码就是设计 24

不要在你的测试代码里装可爱 50

API设计的黄金法则 70

使接口易于正确使用,难于错误使用 110

让不可见的更加显眼 112

奇闻轶事:测试人员是你的朋友 120

为必需行为测试,而不是偶发行为 160

测试要严密而具体 162

在睡觉的时候(或度周末的时候)进行测试 164

软件开发的工程严密性来自测试 166

当程序员和测试人员开始合作的时候 184

使用实例编写小函数 188

测试为人而写 190

工具、自动化和开发环境 8

编码标准的自动化 8

在责备别人之前先检查自己的代码 18

谨慎选择你的工具 20

不要重复你自己 60

如何使用bug跟踪器 76

知道如何使用命令行工具 86

了解你的IDE 90

大型、相关联的数据属于数据库 96

学着说“Hello,World” 102

让你的项目能表达它自己 104

链接器(Linker)并不神秘 106

把一切都置于版本控制之下 136

请转回去做自动化、自动化、自动化 156

充分利用代码分析工具 158

在睡觉的时候(或度周末的时候)进行测试 164

Unix工具是你的好朋友 176

用户和客户 6

试问自己“用户会怎么做?”(你不能算是用户) 6

领域特定语言 46

使接口易于正确使用,难于错误使用 110

奇闻轶事:测试人员是你的朋友 120

预防错误 132

读懂人性 142

心口不一的客户 194