编程匠艺——读书笔记

1.防御性编程:始终使用

  1. 将缺陷引入系统的是实际的算法,或者也可能是客户端代码。凡是可能会被错误地使用的代码,一定会被错误地使用。
  2. 千万不要归咎与那些完全可以用愚蠢来解释的恶意
  3. 使用好的编码风格和合理的设计——有意义的变量名。审慎使用括号。先考虑答题设计发难,一套清晰的API、一个逻辑系统结构、定义良好的组建角色与责任
  4. 不要仓促编写代码——每一行三思,可能会出现什么错?是否考虑了所有分支。如果你不立即做正确的事,那么将来你很可能也不会再去做正确的事
  5. 不要相信任何人——程序各处添加安全检查
  6. 编写目标是清晰而不失简洁——如拆分复杂的代数运算。简单就是一种美
  7. 不要让任何人做他们不该做的事——面向对象将属性用private、面向过程用打包、变量范围尽量小
  8. 编译时打开所有警告开关——总有一天,警告会隐藏一个确实重要的警告
  9. 使用静态分析工具——编辑器警告是一次有效的静态分析
  10. 使用安全的数据结构——尽量使用更安全的、不允许破坏程序的数据结构,如类似c++的string类的托管缓冲,或对不安全的数据结构系统的使用安全操作
  11. 检查所有的返回值——适用于自定义函数及标准库函数。不论何时,都要在适当级别上捕获和处理相应的异常
  12. 审慎的处理内存——执行期间获取的任何资源,必须彻底释放,内存、文件、线程锁。必须显示种植安歇不再需要或不被自动清除的对象的引用;不要意外的保留对对象的引用。不太先进的垃圾回收器会被循环引用蒙蔽
  13. 在声明位置初始化所有变量
  14. 尽可能推迟一些声明变量——使变量的声明位置与使用它的位置尽量接近;不要在多个地方用同一个临时变量,每次重新建立一个新的变量
  15. 使用标准语言工具——明确定义你正在使用的是哪个语言版本,不要将命运交给编译器,会导致以后难以发现的错误。
  16. 使用好的诊断信息日志工具——保留诊断信息,可以有选择的使他们不参加编译
  17. 审慎地进行强制转换——对数据类型的可互换性不要做任何假设。不要假设int和long的大小相同并且可以相互赋值。
  18. 细则:提供默认的行为(default case);遵从语言习惯;检查数值的上下限;正确设置常量(尽可能将可以设为常量的都设为常量)
  19. 约束
  • 前置条件:输入代码前必须为真的条件
  • 后置条件:编写代码后必须为真的条件
  • 不变条件
  • 断言(c和c++标准库提供了实施约束的公用机制)java语言有一套类似的断言机制,可以通过jvm上的控件启用或禁用java的断言机制。如果你发现并修正了一个错误,在修正错误地地方加入一条断言是一个良好的习惯。  为每个类添加一个bool invariant()的成员函数,在每个调用该不变条件的成员函数的开头和结尾,都可以放置一个断言。


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值