- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代码大全读书心得
还记得大学三年级的时候就在一位师兄那见到了《代码大全》,当时师兄就向我着力推荐,说它是一本值得收藏并精读的好书,它是一本百科全书式的帮助我们提高编程质量的优秀IT书籍,书中介绍了大量的提高代码质量的实实在在的技术和诀窍。但是由于种种原因,当时并未认真加以注意此书。颇有缘分的是,在此次民生银行的培训课程上,方总也着重推荐起了这本书。方总是JAVA界的重量级人物,什么书能值得他如此浓墨重彩地推荐,并要求不认真做读书笔记就不允许入职。想必此书必有过人之处,于是回来速度购买,并高度期待地阅读起来了。
经过1个月左右时间,通读此书下来,确实受益匪浅,感受颇多。此书英文名叫:code complete,诚如书中译序所说,这本书讲的正是为了到达“编码完成”这一重要里程碑所需的软件构建技术,确切地说,就是如何编写高质量的代码。高质量的代码既可以说是一个节省成本的问题,也可以说是一个软件安全性的问题。特别是针对金融行业的软件开发者而言,提高软件质量显得尤为重要。为了使我们能够编写出高质量的软件,书中讲述了软件构建的方方面面,详细讨论了源代码的可读性,类和函数命名、变量命名、数据类型和控制结构、代码布局等编程的基本要素,也讨论了防御式编程、表驱动法、协同构建、开发者测试、性能优化等有效的开发实践方法。同时书中展示了大量高质量的代码作为示例,同时也有低质量的代码来做比较。这对于已经有一定的编程基础,同时希望能够编写出更加高质量高水平的代码的我来说,无疑指明了努力的方向以及实践的标准指南。
本书章节甚多,此篇心得就不按照《项目经理案头手册》的心得那样做一个通篇心得阐述,而是就在阅读过程中有深刻体会的几个问题进行记录:
第一Defensive Programming 防御式编程
主要谈谈防止程序免遭非法输入数据的破坏防止程序被非法参数破坏已经是一个很古老的问题了,比较多遇到的是SQL注入。我觉得在防御非法数据方面Discuz!系列的产品都做得不错,或者说是开源的一些Web软件。似乎很少报出可利用的注入漏洞。反而是商业软件却经常有内存溢出等被利用的问题。本节的代码大全指出,通常有三种方法来处理进来垃圾的情况:
检查所有来源于外部的数据的值
检查子程序所有输入参数的值
决定如何处理错误的输入数据
在我写程序的时候我比较注意对外部数据的检查,但对于内部数据却总是疏于校验。防御式编程是提高软件质量技术的有益辅助手段。使用迭代式设计、编码前先写伪代码、写代码前先写测试用例及底层设计检查等活动,都有助于防止引入错误。
?Today’s Topic 2: Assertions(8.2)今日主题2:断言(8.2)断言是什么?所谓的“断言”就是指开发期间使用的、让程序运行时进行自检的代码。通俗的说就是一个过程或者一个函数是否达到预期目的,达到了预期目的就返回True否则就是False。今天阅读之前并不知道什么是断言,今天算是给了个定义。对于大型的复杂程序或者可靠性要求较高的程序来说,断言是非常重要的,它能帮助程序员排查出错误。Building Your Own Assertion Mechanism 建立你自己的断言机制就我目前所学习过的语言来说基本上都支持断言,如:VB、PHP、C++等。Guidelines for Using Assertions 使用断言的指导建议
用错误处理代码处理预期会发生的情况,用断言来处理绝对不应该发生的情况。
不要把需要执行的代码放到断言中。(编译器可能会将这些代码排除在外而不去编译它)
用断言来注释并验证前后条件
应当先使用断言在进行错误处理
/2008/04/03/232.dabai
第三 变量名的力量
名不正则言不顺
“为变量命名”恐怕是编程中最普通的一项活动,一般介绍编程风格的书都会用几页的篇幅给出一些好的建议[KP99, Section 1.1],而《代码大全》用了整整一章30多页的篇幅(第11章)来讨论变量的命名,另外第7.3节专门讨论子程序的命名,第6.2节讨论了类的命名。如果变量、子程序和类型命名得当,代码本身就能用作程序的文档,可以减少注释和外部文档(第32.2节)。
变量名
为变量命名时最重要的考虑事项是,该名字要完全、准确地描述出该变量所代表的事物。currentDate和todaysDate都是很好的名字,因为它们都完全而且准确地描述出了“当前日期”这一概念。事实上,这两个名字都用了非常直白的词。程序员们有时候会忽视这些普通词语,而它们往往却是最明确的。cd和c是很糟的命名,因为它们太短,同时又不具有描述性。current也很糟,因为它并没有告诉你是当前的什么。date看上去不错,但经过最后推敲它也只是个坏名字,因为这里所说的日期并不是所有的日期均可,而只是特指当前日期;而dat
文档评论(0)