超过460,000+ 应用技术资源下载
pdf

编程匠艺-完整版

  • 1星
  • 日期: 2013-10-22
  • 大小: 352.38MB
  • 所需积分:1分
  • 下载次数:96
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 编程匠艺

编辑推荐

   《编程匠艺:编写卓越的代码》的优点,一是比较完整,二是具体而又简明,三是朴实。

   本书中随处可见与编程语言无关、但是与所有开发人员都相关的建议,其内容遍及编程的各个要素,如代码风格、变量命名、错误处理和安全性等。不仅如此,它还触及了一些更广泛的现实世界编程问题,如有效的团队合作、开发过程和文档编写,等等。本书各章末尾均有一个问题和答案部分,这些部分回顾了各章中的一些关键概念,促使你像专家一样思考,从而使本书成为那些渴望作为团队的一分子、专业并高效地编程的新手们的一本绝佳的参考书。本书将告诉你如何:在现实世界困难重重的情况下编写出优秀的代码;避免在工作场所出现灾难和军心涣散的情况;准确地评估你的能力,并找到提高的途径;采取有建设性的态度,并遵从最佳的做法。

内容简介

   如果你可以编写出合格的代码,但是想更进一步、创作出组织良好而且易于理解的代码,并希望成为一名真正的编程专家或提高现有的职业技能,那么本书都会为你给出答案。《编程匠艺:编写卓越的代码》的内容涵盖编程的各个要素,如代码风格、变量命名、错误处理和安全性等。此外,本书还对一些更广泛的编程问题进行了探讨,如有效的团队合作、开发过程和文档编写,等等。《编程匠艺:编写卓越的代码》各章的末尾均提供一些思考问题,这些问题回顾了各章中的一些关键概念,可以促使你像专家一样思考,从而使本书成为那些渴望作为团队的一分子,职业并高效地编程的新手们的一本绝佳的参考书。

目录

第1篇 代码表面第一部分

第1章 善于防守:健壮代码的防御性编程技巧

1.1 向优秀的代码前进

1.2 设想:最坏的选择

1.3 什么是防御性编程?

1.4 又大又坏的世界

1.5 防御性编程技巧

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

1.5.2 不要仓促地编写代码

1.5.3 不要相信任何人

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

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

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

1.5.7 使用静态分析工具

1.5.8 使用安全的数据结构

1.5.9 检查所有的返回值

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

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

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

1.5.13 使用标准语言工具

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

1.5.15 审慎地进行强制转换

1.5.16 细则

1.6 约束

1.6.1 约束的内容

1.6.2 移除约束

1.7 总结

1.8 另请参见

1.9 思考

1.9.1 深入思考

1.9.2 结合自己

第2章 精心布局:源代码的版面和样式

2.1 什么是关键

2.2 了解你的读者

2.3 什么是好的样式

2.4 使用括号

2.4.1 K&R括号风格

2.4.2 悬挂式的括号风格

2.4.3 缩进的括号风格

2.4.4 其他的括号风格

2.5 主宰一切的风格

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

2.7 设立标准

2.8 正义的战争

2.9 总结

2.10 另请参见

2.11 思考

2.11.1 深入思考

2.11.2 结合自己

第3章 名正言顺:为有意义的事物起有意义的名称

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

3.2 我们对什么进行命名

3.3 名字游戏

3.3.1 描述性

3.3.2 技术上正确

3.3.3 符合语言习惯

3.3.4 恰当

3.4 具体细节

3.4.1 命名变量

3.4.2 命名函数

3.4.3 命名类型

3.4.4 命名名字空间

3.4.5 命名宏

3.4.6 命名文件

3.5 玫瑰不叫玫瑰

3.5.1 保持前后一致

3.5.2 利用上下文

3.5.3 使用对你有利的名称

3.6 总结

3.7 另请参见

3.8 思考

3.8.1 深入思考

3.8.2 结合自己

第4章 不言自明:编写“自文档化”代码的技巧

4.1 自文档化的代码

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

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

4.2.2 选择有意义的名称

4.2.3 分解为原子函数

4.2.4 选择描述性的类型

4.2.5 命名常量

4.2.6 强调重要的代码

4.2.7 分组相关信息

4.2.8 提供文件头

4.2.9 恰当地处理错误

4.2.10 编写有意义的注释

4.3 实用的自文档化方法

4.3.1 文学性编程

4.3.2 文档化工具

4.4 总结

4.5 另请参见

4.6 思考

4.6.1 深入思考

4.6.2 结合自己

第5章 随篇注释:如何编写代码注释

5.1 什么是代码注释

5.2 注释看上去是什么样的

5.3 多少注释是恰当的

5.4 注释中应该有些什么

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

5.4.2 不要描述代码

5.4.3 不要取代代码

5.4.4 确保注释有用

5.4.5 避免分心

5.5 实践

5.6 从审美的角度看注释

5.6.1 一致性

5.6.2 清晰的块注释

5.6.3 缩进的注释

5.6.4 行尾注释

5.6.5 帮助你阅读代码

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

5.6.7 分隔板

5.6.8 标志

5.6.9 文件头注释

5.7 使用注释

5.7.1 帮助你编写例行程序

5.7.2 错误修正通告

5.7.3 注释过时

5.7.4 维护和空洞无物的注释

5.8 总结

5.9 另请参见

5.10 思考

5.10.1 深入思考

5.10.2 结合自己

第6章 人非圣贤:处理不可避免的情况——代码中的错误情形

6.1 从何而来

6.2 错误报告机制

6.2.1 不报告

6.2.2 返回值

6.2.3 错误状态变量

6.2.4 异常

6.2.5 信号

6.3 检测错误

6.4 处理错误

6.4.1 何时处理错误

6.4.2 可能的反应

6.4.3 代码示例

6.5 使地狱浮现

6.6 管理错误

6.7 总结

6.8 另请参见

6.9 思考

6.9.1 深入思考

6.9.2 结合自己

第2篇 代码的神秘生命

第7章 欲善其事,先利其器:使用工具构建软件

7.1 什么是软件工具

7.2 为什么要在意工具

7.3 使工具发挥作用

7.3.1 了解它能做些什么

7.3.2 学习如何驾驭它

7.3.3 了解它适合什么任务

7.3.4 检查它是否可用

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

7.3.6 查明新版本何时出现

7.4 哪个工具

7.4.1 源代码编辑工具

7.4.2 代码构建工具

7.4.3 调试和调查工具

7.4.4 语言支持工具

7.4.5 其他工具

7.5 总结

7.6 另请参见

7.7 思考

7.7.1 深入思考

7.7.2 结合自己

第8章 测试时代:测试代码的魔术

8.1 反思现实

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

8.2.1 我们为什么要测试

8.2.2 谁来进行测试

8.2.3 测试的内容有些什么

8.2.4 何时进行测试

8.3 测试并不难……

8.4 测试的类型

8.5 选择单元测试用例

8.6 为测试而设计

8.7 看!不要用手

8.8 面对故障该怎么办

8.9 你能管理它吗

8.9.1 缺陷跟踪系统

8.9.2 bug审查

8.10 总结

8.11 另请参见

8.12 思考

8.12.1 深入思考

8.12.2 结合自己

第9章 寻找缺陷(调试):当事情进展得不顺利时该怎么办

9.1 生活的真相

9.2 bug的种类

9.2.1 从远处看

9.2.2 从近处看

9.2.3 从更近处看

9.3 消灭害虫

9.3.1 地下之路

9.3.2 地上之路

9.4 搜寻bug

9.4.1 编译时错误

9.4.2 运行时错误

9.5 如何修正缺陷

9.6 预防

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

9.7.1 调试器

9.7.2 内存访问校验器

9.7.3 系统调用跟踪

9.7.4 内核转储

9.7.5 日志

9.8 总结

9.9 另请参见

9.10 思考

9.10.1 深入思考

9.10.2 结合自己

第10章 代码构建:将源代码转换为可执行代码的过程

10.1 语言障碍

10.1.1 解释型语言

10.1.2 编译型语言

10.1.3 字节编译型语言

10.2 小题大做

10.3 构建软件版本

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

10.4.1 简洁

10.4.2 一致

10.4.3 可重复和可靠

10.4.4 原子性

10.4.5 能够应付错误

10.5 技术细节

10.5.1 目标的选择

10.5.2 内务处理

10.5.3 依赖关系

10.5.4 自动构建

10.5.5 构建配置

10.5.6 递归地使用make

10.6 请发布我吧

10.7 构建大师是全能的吗

10.8 总结

10.9 另请参见

10.10 思考

10.10.1 深入思考

10.10.2 结合自己

第11章 追求速度:优化程序和编写高效的代码

11.1 优化是什么

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

11.3 为什么不进行优化呢

11.4 为什么要进行优化

11.5 优化的具体细节

11.5.1 证明你需要进行优化

11.5.2 找出运行得最慢的代码

11.5.3 测试代码

11.5.4 优化代码

11.5.5 优化之后

11.6 优化的技术

11.6.1 设计更改

11.6.2 代码更改

11.7 编写高效的代码

11.8 总结

11.9 另请参见

11.10 思考

11.10.1 深入思考

11.10.2 结合自己

第12章 不安全感综合征:编写安全的程序

12.1 危险

12.2 敌人

12.3 借口,都是借口

12.4 感到很脆弱

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

12.4.2 缓冲溢出

12.4.3 嵌入的查询字符串

12.4.4 竞争状况

12.4.5 整数溢出

12.5 防范措施

12.5.1 系统安装技术

12.5.2 软件设计技术

12.5.3 代码实现技术

12.5.4 规程技术

12.6 总结

12.7 另请参见

12.8 思考

12.8.1 深入思考

12.8.2 结合自己

第3篇 代码的形成过程

更多简介内容

推荐帖子

模拟技术是一门手艺
模拟技术是一门手艺,硬件工程师的功力全在画印制板上,就像厨师的功力全在火候上一样。电原理图就像菜谱,网上随处可找到。我们看了菜谱,但炒出的菜和厨师不一样,但菜的名字是一样的。我们可以在网上、杂志中找到各种原理图,按照原理图画出印制板,但测试时发现,仅电磁兼容性就过不了关,打静电测试就过不去,且不说其它电参数如何。一个好的硬件工程师,必须具备一手过硬的画PCB的能力,这是硬件工程师的基本功。画好一块
七月七日晴 模拟电子
周立功讲述其创业故事(完整版) 转
尽管我们不能改变制度,也不一定能够改变别人,但我们可以改变自己,因为没有人能够阻止我们不断进步,如果失败或者失意,那只能怪我们自己无能,怪我们自己不善于学习,不能怪别人没有给您机会,更不能怪这个社会......    我创业至今已经超过10年,我再能还是要依靠优秀而卓越的人才来实现我的想法,他们的执行力应该比我想象的结果还要好,只有这样才能保证创造可持续发展的成功。   很多人虽然能够做出一些
unbj FPGA/CPLD
Altium Designer 17 全套入门完整版视频教程
replyreload += ',' + 2170076; 全套视频下载地址:https://pan.baidu.com/s/1jIBQNkE 回帖领取下载密码:游客,如果您要查看本帖隐藏内容请回复 此内容由EEWORLD论坛网友小崇伟原创,如需转载或用于商业用途需征得作者同意并注明出处 补充内容 (2019-3-30 15:58): 由于百度链接老是失效,大家可以加我微信获取,VX:
小崇伟 PCB设计
编程
ORG    0000H            MOV    A,#6            MOV    R2,#6            MOV    R0,#70H LOOP: MOV   @R0,A            DEC    A            DJNZ    R2,LOOP           LCALL   DISPLAY MAIN:LCALL   
TSB52 单片机
编程
基于单片机自动售货机设计/12864显示/电子设计自动售货机使用说明: 使用单片机设计,设有8个按键,3个硬币模拟按键(5元、1元、5角),5个货物选择按 键,一块12864显示屏。步骤: 1.开机启动显示货物价格列表,自动切换列表。 2.可以选择①―⑤种货物(或更多)。 3.按对应按键可选择该货物。 4.选择后,提示要投进的金额,并显示投币有效时间30秒(可修改)。 5.按键模
结束是开始 【51单片机】
PCB十年精髓,嘉立创《PCB设计与制造》应用教材完整版!
replyreload += ',' + 2174292;PCB十年精髓,嘉立创《PCB设计与制造》应用教材完整版,免费提供给工友们,需要的回复本帖可下载哦! 全套应用教程资料下载地址:链接: http://pan.baidu.com/s/1bIDdjo 回帖领取下载密码:游客,如果您要查看本帖隐藏内容请回复 此内容由EEWORLD论坛网友szjlcgw原创,如需转载或用于商业
szjlcgw PCB设计

评论


个人中心

意见反馈

求资源

回顶部

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子

搜索下次设计所需的
TI 器件

● 目前在售器件有45,000款
● 6.99美元标准运费,不受时间和地点限制
● 无最低起订量要求

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

EEWorld电子技术资料下载——分享有价值的资料

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })