代码大全读书心得 还记得大学三年级的时候就在一位师兄那见到了《代码大全》 ,当时师兄就向我着力推 荐, 说它是一本值得收藏并精读的好书, 它是一本百科全书式的帮助我们提高编程质量的优 秀 IT 书籍, 书中介绍了大量的提高代码质量的实实在在的技术和诀窍。 但是由于种种原因, 当时并未认真加以注意此书。颇有缘分的是,在此次民生银行的培训
课程上,方总也着重推 荐起了这本书。方总是 JAVA 界的重量级人物,什么书能值得他如此浓墨重彩地推荐,并要 求不认真做读书笔记就不允许入职。想必此书必有过人之处,于是回来速度购买,并高度期 待地阅读起来了。 经过 1 个月左右时间,通读此书下来,确实受益匪浅,感受颇多。此书英文名叫:code complete,诚如书中译序所说,这本书讲的正是为了到达“编码完成”这一重要里程碑所需 的软件构建技术,确切地说,就是如何编写高质量的代码。高质量的代码既可以说是一个节 省成本的问题, 也可以说是一个软件安全性的问题。 特别是针对金融行业的软件开发者而言, 提高软件质量显得尤为重要。 为了使我们能够编写出高质量的软件, 书中讲述了软件构建的 方方面面,详细讨论了
源代码的可读性,类和函数命名、变量命名、数据类型和控制结构、 代码布局等编程的基本要素,也讨论了防御式编程、表驱动法、协同构建、开发者测试、性 能优化等有效的开发实践方法。 同时书中展示了大量高质量的代码作为示例, 同时也有低质 量的代码来做比较。 这对于已经有一定的编程基础, 同时希望能够编写出更加高质量高水平 的代码的我来说,无疑指明了努力的方向以及实践的标准指南。 本书章节甚多,此篇心得就不按照《项目经理案头手册》的心得那样做一个通篇心得阐 述,而是就在阅读过程中有深刻体会的几个问题进行记录: 第一 Defensive Programming 防御式编程 主要谈谈防止程序免遭非法输入数据的破坏和断言 防止程序被非法参数破坏已经是一个很古老的问题了, 比较多遇到的是 SQL 注入。 我 觉得在防御非法数据方面 Discuz!系列的产品都做得不错,或者说是开源的一些 Web 软件。 似乎很少报出可利用的注入漏洞。反而是商业软件却经常有内存溢出等被利用的问题。 本节的代码大全指出,通常有三种方法来处理进来垃圾的情况: 1. 检查所有来源于外部的数据的值 2. 检查子程序所有输入参数的值 3. 决定如何处理错误的输入数据 在我写程序的时候我比较注意对外部数据的检查, 但对于内部数据却总是疏于校验。 防御式 编程是提高软件质量技术的有益辅助手段。使用
迭代式设计、编码前先写伪代码、写代码前 先写测试用例及底层设计检查等活动,都有助于防止引入错误。
Today’s Topic 2: Assertions(8.2) 今日主题 2:断言(8.2) 断言是什么? 所谓的“断言”就是指开发期间使用的、 让程序运行时进行自检的代码。 通俗的说就是一个 过程或者一个函数是否达到预期目的,达到了预期目的就返回 True 否则就是 False。今天 阅读之前并不知道什么是断言, 今天算是给了个定义。 对于大型的复杂程序或者可靠性要求 较高的程序来说,断言是非常重要的,它能帮助程序员排查出错误。 Building Your Own Assertion Mechanism 建立你自己的断言机制
1. 2. 3. 4.
就我目前所
学习过的语言来说基本上都支持断言,如:
VB、
PHP、C++等。 Guidelines for Using Assertions 使用断言的指导建议 用错误处理代码处理预期会发生的情况,用断言来处理绝对不应该发生的情况。 不要把需要执行的代码放到断言中。(编译器可能会将这些代码排除在外而不去编 译它) 用断言来注释并验证前后条件 应当先使用断言在进行错误处理
第二 高质量的子程序 life.dabai.org/2008/04/03/232.dabai
第三 变量名的力量
名不正则言不顺