请输入您要查询的百科知识:

 

词条 CodeCraft编程匠艺:编写卓越的代码
释义

CodeCraft编程匠艺:编写卓越的代码的内容遍及编程的各个要素,如代码风格、变量命名、错误处理和安全性等。此外,本书还对一些更广泛的编程问题进行了探讨,如有效的团队合作、开发过程和文档编写,等等。本书各章的末尾均提供一些思考问题,这些问题回顾了各章中的一些关键概念,可以促使你像专家一样思考,从而使本书成为那些渴望作为团队的一分子,职业并高效地编程的新手们的一本绝佳的参考书。

版权信息

书 名: CodeCraft编程匠艺:编写卓越的代码

作 者:(美国)(Goodliffe.P.)古德利弗

出版社: 电子工业出版社

出版时间: 2008

ISBN: 9787121069802

开本: 16

定价: 79.00 元

编辑推荐

《编程匠艺》中随处可见与编程语言无关、但是与所有开发人员都相关的建议,其内容遍及编程的各个要素,如代码风格、变量命名、错误处理和安全性等。不仅如此,它还触及了一些更广泛的现实世界编程问题,如有效的团队合作、开发过程和文档编写,等等。《CodeCraft编程匠艺--编写卓越的代码》各章末尾均有一个问题和答案部分,这些部分回顾了各章中的一些关键概念,促使你像专家一样思考,从而使这《CodeCraft编程匠艺--编写卓越的代码》成为那些渴望作为团队的一分子、专业并高效地编程的新手们的一本绝佳的参考书。《CodeCraft编程匠艺--编写卓越的代码》将告诉你如何:

在现实世界困难重重的情况下编写出优秀的代码;

避免在工作场所出现灾难和人心涣散的情况;

准确地评估你的能力,并找到提高的途径;

采取有建设性的态度,并遵从最佳的做法。

第1章善于防守

1.1向优秀的代码前进4

1.2设想:最坏的选择4

1.3什么是防御性编程6

1.4又大又坏的世界8

1.5防御性编程技巧8

1.5.1使用好的编码风格和合理的设计9

1.5.2不要仓促地编写代码9

1.5.3不要相信任何人10

1.5.4编码的目标是清晰,而不是简洁10

1.5.5不要让任何人做他们不该做的修补工作11

1.5.6编译时打开所有警告开关11

1.5.7使用静态分析工具12

1.5.8使用安全的数据结构12

1.5.9检查所有的返回值13

1.5.10审慎地处理内存(和其他宝贵的资源)13

1.5.11在声明位置初始化所有变量14

1.5.12尽可能推迟一些声明变量14

1.5.13使用标准语言工具14

1.5.14使用好的诊断信息日志工具15

1.5.15审慎地进行强制转换15

1.5.16细则15

1.6约束16

1.6.1约束的内容17

1.6.2移除约束18

1.7总结20

1.8另请参见20

1.9思考21

1.9.1深入思考21

1.9.2结合自己22

第2章精心布局

2.1什么是关键24

2.2了解你的读者25

2.3什么是好的样式26

2.4使用括号26

2.4.1K&R括号风格27

2.4.2悬挂式的括号风格27

2.4.3缩进的括号风格29

2.4.4其他的括号风格29

2.5主宰一切的风格30

2.6内部风格(以及在哪里使用它们)31

2.7设立标准33

2.8正义的战争35

2.9总结35

2.10另请参见37

2.11思考37

2.11.1深入思考37

2.11.2结合自己38

第3章名正言顺

3.1为什么我们应该恰当地命名呢41

3.2我们对什么进行命名41

3.3名字游戏42

3.3.1描述性42

3.3.2技术上正确42

3.3.3符合语言习惯43

3.3.4恰当43

3.4具体细节44

3.4.1命名变量44

3.4.2命名函数45

3.4.3命名类型46

3.4.4命名名字空间47

3.4.5命名宏48

3.4.6命名文件48

3.5玫瑰不叫玫瑰49

3.5.1保持前后一致50

3.5.2利用上下文51

3.5.3使用对你有利的名称51

3.6总结52

3.7另请参见53

3.8思考53

3.8.1深入思考54

3.8.2结合自己55

第4章不言自明

4.1自文档化的代码59

4.2编写自文档化代码的技术61

4.2.1使用好的样式编写简单的代码61

4.2.2选择有意义的名称62

4.2.3分解为原子函数62

4.2.4选择描述性的类型63

4.2.5命名常量63

4.2.6强调重要的代码64

4.2.7分组相关信息64

4.2.8提供文件头64

4.2.9恰当地处理错误65

4.2.10编写有意义的注释65

4.3实用的自文档化方法66

4.3.1文学性编程66

4.3.2文档化工具67

4.4总结69

4.5另请参见70

4.6思考71

4.6.1深入思考71

4.6.2结合自己72

第5章随篇注释

5.1什么是代码注释74

5.2注释看上去是什么样的75

5.3多少注释是恰当的75

5.4注释中应该有些什么76

5.4.1解释为什么,而不是怎么样76

5.4.2不要描述代码76

5.4.3不要取代代码76

5.4.4确保注释有用77

5.4.5避免分心78

5.5实践79

5.6从审美的角度看注释80

5.6.1一致性80

5.6.2清晰的块注释80

5.6.3缩进的注释81

5.6.4行尾注释81

5.6.5帮助你阅读代码81

5.6.6选择一种维护成本较低的风格82

5.6.7分隔板82

5.6.8标志83

5.6.9文件头注释83

5.7使用注释84

5.7.1帮助你编写例行程序84

5.7.2错误修正通告85

5.7.3注释过时85

5.7.4维护和空洞无物的注释86

5.8总结86

5.9另请参见87

5.10思考87

5.10.1深入思考88

5.10.2结合自己88

第6章人非圣贤

6.1从何而来90

6.2错误报告机制91

6.2.1不报告91

6.2.2返回值92

6.2.3错误状态变量93

6.2.4异常93

6.2.5信号95

6.3检测错误95

6.4处理错误96

6.4.1何时处理错误97

6.4.2可能的反应98

6.4.3代码示例100

6.5使地狱浮现104

6.6管理错误105

6.7总结106

6.8另请参见107

6.9思考107

6.9.1深入思考107

6.9.2结合自己108

目录 代码的神秘生命

第7章欲善其事,先利其器

7.1什么是软件工具112

7.2为什么要在意工具114

7.3使工具发挥作用115

7.3.1了解它能做些什么115

7.3.2学习如何驾驭它116

7.3.3了解它适合什么任务116

7.3.4检查它是否可用116

7.3.5找到了解更多信息的途径117

7.3.6查明新版本何时出现117

7.4哪个工具117

7.4.1源代码编辑工具118

7.4.2代码构建工具120

7.4.3调试和调查工具123

7.4.4语言支持工具124

7.4.5其他工具125

7.5总结126

7.6另请参见127

7.7思考128

7.7.1深入思考128

7.7.2结合自己128

第8章测试时代

8.1反思现实131

8.2谁、是什么、何时以及为什么132

8.2.1我们为什么要测试132

8.2.2谁来进行测试133

8.2.3测试的内容有些什么133

8.2.4何时进行测试134

8.3测试并不难……135

8.4测试的类型138

8.5选择单元测试用例142

8.6为测试而设计144

8.7看!不要用手!144

8.8面对故障该怎么办145

8.9你能管理它吗146

8.9.1缺陷跟踪系统147

8.9.2bug审查148

8.10总结149

8.11另请参见150

8.12思考150

8.12.1深入思考150

8.12.2结合自己151

第9章寻找缺陷

9.1生活的真相154

9.2bug的种类155

9.2.1从远处看155

9.2.2从近处看156

9.2.3从更近处看158

9.3消灭害虫160

9.3.1地下之路161

9.3.2地上之路161

9.4搜寻bug162

9.4.1编译时错误162

9.4.2运行时错误164

9.5如何修正缺陷167

9.6预防169

9.7除蜂剂、驱虫剂、捕蝇纸169

9.7.1调试器169

9.7.2内存访问校验器170

9.7.3系统调用跟踪170

9.7.4内核转储170

9.7.5日志170

9.8总结171

9.9另请参见172

9.10思考173

9.10.1深入思考173

9.10.2结合自己173

第10章代码构建

10.1语言障碍176

10.1.1解释型语言177

10.1.2编译型语言178

10.1.3字节编译型语言179

10.2小题大做179

10.3构建软件版本181

10.4怎样才算是一个优秀的构建系统184

10.4.1简洁184

10.4.2一致184

10.4.3可重复和可靠185

10.4.4原子性186

10.4.5能够应付错误187

10.5技术细节187

10.5.1目标的选择187

10.5.2内务处理189

10.5.3依赖关系189

10.5.4自动构建190

10.5.5构建配置191

10.5.6递归地使用make192

10.6请发布我吧192

10.7构建大师是全能的吗194

10.8总结195

10.9另请参见195

10.10思考196

10.10.1深入思考196

10.10.2结合自己196

第11章追求速度

11.1优化是什么200

11.2是什么使代码不尽如人意201

11.3为什么不进行优化呢202

备选方案204

11.4为什么要进行优化205

11.5优化的具体细节206

11.5.1证明你需要进行优化206

11.5.2找出运行得最慢的代码207

11.5.3测试代码208

11.5.4优化代码209

11.5.5优化之后209

11.6优化的技术210

11.6.1设计更改210

11.6.2代码更改213

11.7编写高效的代码217

11.8总结219

11.9另请参见219

11.10思考220

11.10.1深入思考220

11.10.2结合自己221

第12章不安全感综合症

12.1危险224

12.2敌人226

12.3借口,都是借口228

12.4感到很脆弱229

12.4.1不安全的设计和体系结构229

12.4.2缓冲溢出229

12.4.3嵌入的查询字符串230

12.4.4竞争状况231

12.4.5整数溢出231

12.5防范措施232

12.5.1系统安装技术233

12.5.2软件设计技术234

12.5.3代码实现技术235

12.5.4规程技术236

12.6总结236

12.7另请参见237

12.8思考238

12.8.1深入思考238

12.8.2结合自己238

目录 代码的形成过程

第13章崇尚设计

13.1边设计边编程242

13.2我们要设计什么243

13.3为什么这么忙乱244

13.4良好的软件设计245

13.4.1简洁246

13.4.2优雅247

13.4.3模块化247

13.4.4良好的接口248

13.4.5可扩展性251

13.4.6避免重复251

13.4.7可移植性252

13.4.8符合语言习惯252

13.4.9良好地文档化253

13.5如何设计代码253

13.5.1设计方法和过程254

13.5.2设计工具255

13.6总结257

13.7另请参见258

13.8思考258

13.8.1深入思考258

13.8.2结合自己259

第14章软件体系结构

14.1什么是软件体系结构262

14.1.1软件蓝图262

14.1.2视图263

14.1.3在何时和何处进行体系结构设计264

14.1.4用体系结构来做什么265

14.1.5关于组件和连接266

14.2什么是良好的体系结构268

14.3体系结构风格269

14.3.1没有体系结构269

14.3.2分层的体系结构270

14.3.3管道和过滤器体系结构271

14.3.4客户端/服务器体系结构271

14.3.5基于组件的体系结构273

14.3.6框架274

14.4总结275

14.5另请参见276

14.6思考276

14.6.1深入思考276

14.6.2结合自己277

第15章改良与革命

15.1软件腐烂281

15.2警告信号282

15.3代码是如何成长的284

15.4相信不可能之事286

15.5对此我们可以做些什么287

15.5.1编写新代码287

15.5.2维护现有代码288

15.6总结290

15.7另请参见290

15.8思考291

15.8.1深入思考292

15.8.2结合自己292

目录 一群程序员

第16章代码猴子

16.1各种各样的猴子296

16.1.1卖力工作的程序员297

16.1.2代码猴子298

16.1.3权威299

16.1.4半权威300

16.1.5傲慢的天才300

16.1.6牛仔302

16.1.7规划者302

16.1.8老前辈303

16.1.9狂热者304

16.1.10单线条程序员305

16.1.11拖沓者306

16.1.12勉强的团队领导306

16.1.13你307

16.2理想的程序员308

16.3那么该怎么办308

16.4最愚蠢的人309

16.5总结310

16.6另请参见310

16.7行为表格311

16.8思考312

16.8.1深入思考312

16.8.2结合自己312

第17章团结就是力量

17.1我们的团队——概览316

17.2团队组织318

17.2.1管理方法318

17.2.2责任划分318

17.2.3组织和代码结构320

17.3团队合作工具320

17.4团队疾病322

17.4.1巴别塔322

17.4.2独裁制324

17.4.3民主制325

17.4.4卫星站327

17.4.5大峡谷329

17.4.6流沙330

17.4.7旅鼠332

17.5良好团队合作的个人技巧和特点333

17.5.1沟通333

17.5.2谦虚334

17.5.3处理冲突334

17.5.4学习和适应能力335

17.5.5了解你的不足之处336

17.6团队合作原则336

17.6.1集体代码所有制336

17.6.2尊重别人的代码337

17.6.3编码准则337

17.6.4定义成功337

17.6.5定义责任338

17.6.6避免倦怠338

17.7团队的生命周期339

17.7.1团队的创建339

17.7.2团队的成长341

17.7.3团队合作342

17.7.4团队结束343

17.8总结345

17.9另请参见346

17.10行为表格347

17.11思考348

17.11.1深入思考348

17.11.2结合自己348

第18章安全措施

18.1我们的责任350

18.2源代码控制351

18.2.1修订控制352

18.2.2访问控制353

18.2.3处理代码库354

18.2.4在代码树上创建分支354

18.2.5源代码控制简史356

18.3配置管理356

18.4备份358

18.5发布源代码359

18.6应该将源代码放在哪里360

18.7总结361

18.8另请参见362

18.9思考363

18.9.1深入思考363

18.9.2结合自己363

目录 开发过程的组成部分第一部分

第19章注意细节

19.1规范到底是什么368

19.2规范的类型369

19.2.1需求规范371

19.2.2功能规范373

19.2.3系统体系结构规范373

19.2.4用户界面规范374

19.2.5设计规范374

19.2.6测试规范375

19.3规范应当包含哪些内容376

19.4规范编写过程379

19.5我们为什么会不编写规范381

19.6总结383

19.7另请参见383

19.8思考384

19.8.1深入思考384

19.8.2结合自己384

第20章代码审查

20.1什么是代码审查386

20.2何时进行审查387

20.2.1是否要进行审查388

20.2.2审查哪些代码389

20.3执行代码审查389

20.3.1代码审查会议390

20.3.2集成审查392

20.4审查你的态度393

20.4.1作者的态度393

20.4.2审查人员的态度394

20.5完美的代码395

20.6代码审查之外396

20.7总结397

20.8另请参见397

20.9清单398

20.10思考399

20.10.1深入思考399

20.10.2结合自己399

第21章时间估计

21.1在黑暗中摸索402

21.2为什么估计这么困难?403

21.3压力之下405

21.4实用的估计方法406

21.5计划游戏409

21.6坚持!412

21.7总结415

21.8另请参见415

21.9思考416

21.9.1深入思考416

21.9.2结合自己416

目录 从高处鸟瞰

第22章程序秘方

22.1编程风格420

22.1.1结构化编程421

22.1.2面向对象的程序设计422

22.1.3函数式编程423

22.1.4逻辑编程424

22.2烹饪方法:做什么与怎样做424

22.3开发过程425

22.3.1混乱426

22.3.2瀑布模型427

22.2.3SSADM和PRINCE429

22.3.4V模型430

22.3.5原型设计430

22.3.6迭代和增量开发432

22.3.7螺旋模型432

22.3.8敏捷的方法433

22.3.9其他开发过程434

22.4已经够了!435

22.5选择一种过程436

22.6总结437

22.7另请参见438

22.8思考438

22.8.1深入思考438

22.8.2结合自己439

第23章编程领域大观

23.1应用程序编程442

23.1.1塑装软件443

23.1.2定制应用程序444

23.2游戏编程445

23.3系统编程446

23.4嵌入式编程447

23.5分布式编程450

23.6网络应用程序编程451

23.7企业编程453

23.8数字编程454

23.9那又怎样455

23.10总结456

23.11另请参见456

23.12思考457

23.12.1深入思考457

23.12.2结合自己457

第24章下一步呢

但下一步该做什么呢?460

答案和讨论463

参考书目559

索引564

……

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/7 15:40:25