第五次读书笔记——robrtc.martin的《代码整洁之道》

Zucks Zucks     2022-10-31     723

关键词:

 

本周我读的书是美国作者Robrt C. Martin的《代码整洁之道》。一周的时间,我主要阅读了本书的前五章,关于整洁代码、有意义的命名、函数、注释以及格式等内容。

书中作者有个观点:优雅和高效。作者说:代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。高效的代码是我们都在追求的,而优雅却往往被我们忽视。当我看到作者对糟糕的代码形容成代码“沼泽”,我不禁想起了在参加robgame比赛和大学生数学建模大赛时,我们组所写的代码——不仅包含了混乱的变量名、各种各样千奇百怪的函数、以及接近100:1的代码/注释比。这些在coding时随意的“天马行空”,让我们在调试时吃了大苦头。到了后来,我们痛定思痛,特意花了整整两天,对我们的算法重新进行了分层和优化,把结构好歹变得清楚了一些,但是在改的过程中,我们不止一次地咒骂编代码时的自己:这写的什么玩意。。。。因此。当我读到书中的糟糕代码的描述,我不仅感到羞愧,同时也越发对这本书感兴趣了。

另外一个很有意思的地方是,这本书的作者在每一章的前面都放了一幅漫画来简要的概述本章的内容。比如第二章—有意义的命名—前,作者放了一幅父母亲费力地思索给孩子起名字的画。看到这,我在付之一笑的同时也体会到了作者的良苦用心。的确,就像在生活中家长给孩子取名字哪个不是要经过细细斟酌的?既要蕴含家长的期望与祝福,又希望叫起来朗朗上口,还要注意将来不能成为别人的笑柄。那么,类比之下,我们在给程序中的变量、函数取名字的时候不也应该考虑清楚吗?事实上,好的变量名,既能给编程者自己带来方便,帮助他们看到变量名就能想起其作用,又会帮助后来的维护者或是其他读者更好的理解代码。对于取名字,作者给出了18点我们需要注意之处,尤其是前面几条如名副其实、避免误导等,对我的日常编程实在是有很大的指导意义,令人颇有醍醐灌顶之感。

同时,值得一提的是关于注释的这一章。我本以为作者会直接讲怎样写注释是好的注释,然而作者却直接当头棒喝:注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败。他强调是一种失败,他的观点是唯一真正好的注释是想办法不去写的注释。诚然,他在后面还是讲了关于写好的注释的要点,前面的话给了我很大的启发,的确,随着代码的修改与优化,我们往往不会立即去更正注释,因为我们一直关注的还是代码本身,而注释上的不准确编译器也不会帮我们指出来,注释往往会失去其作用,我们真正应该花心思在增强代码的表现力上。

第五次读书笔记

1.几种主要的低压接地系统的概念:TN,TT,IT 我们国家110KV及以上系统普遍采用中性点直接接地系统(即大电流接地系统)。  35KV、10KV系统普遍采用中性点不接地系统或经大阻抗接地系统(即小电流接地系统) &nb... 查看详情

第五次笔记李响150206108

   查看详情

第五周读书笔记

程序员修炼之道读书笔记第五周这周继续读了《程序员修炼之道》,终于看完了这本书,结合最近的团队项目经历和上课讲的内容,来写一个总的读书笔记。当时刚买回来的时候粗略翻过后面的内容,现在看,又有了新的感悟,... 查看详情

第五次笔记

集合:唯一性,可变性,无序性定义方法:set()a=set(1,2,3)a=1,2,3定义空集合:a=set()三种运算:a=1,2,3,4,5b=4,5,6,7,8a&b交集4,5a|b并集1,2,3,4,5,6,7,8a-b差集1,2,3b-a差集8,6,7增:add()update([])参数是可迭代对象删除:pop()随机删除remove()指定 查看详情

《创新者》读书笔记——第五周读书笔记

 创新者一书,实际上是这连个世界以来信息技术的编年史,注重介绍了历史潮流中的创新者,但这不意味着作者宣扬个别天才带领了技术的进步,相反,作者强调了创新者所处环境对其的影响,在创新中的作用,展现了那些... 查看详情

第五次作业

 1.项目目的设计一个能为长沙学院在校大学生的生活提供多重便利的web网站2.项目总设计需求我们设计的这个web网站主要实现以下几个功能a.可以根据评分、距离最近、价格最实惠等标准来查找学校周边的美食、KTV、电影院、... 查看详情

第五周读书笔记

《高效程序的奥秘》读后感一这周开始了《高效程序的奥秘》,为什么选择这本书作为这次读书笔记的内容,是因为在上一次的个人作业中,我自己编写程序的低效,给我留下了深刻的印象,一个170MB的文件夹下文件词数的统计... 查看详情

读书笔记(第五周)之魔方的创新

读书笔记(第五周)读《构建之法》之魔方的创新在不苛求比喻精准的前提下,“魔方的创新”这篇小故事写得确实有意思,也很能反映创新过程中一系列的问题。首先,通过几个大致的故事节点来总结一下情节的发展,再来逐... 查看详情

第五周读书笔记

《c++应用程序性能优化》读书笔记(part3)应用程序的启动性能是应用程序给最终用户的第一印象,是衡量一个程序易用性的重要指标。书的第三部分介绍了启动性能优化的一些方法,第七章介绍了应用程序的物理布局,第八章... 查看详情

perl简洁编程,《perl语言入门(第五版)》读书笔记

...前放在hi.baidu上的笔记!perl简洁编程,《Perl语言入门(第五版)》读书笔记20110316!书很早就买了,简单翻翻就扔下了!最近买了ipad,良好的阅读体验,用来看书,感觉书又能看进去了!不能白看一遍,整理一下阅读笔记!Perl... 查看详情

读书笔记之《headfirstservletandjsp》第五章属性和监听者

本章大纲1.servletConfig和servletContext的区别 1.servletConfig和servletContext的区别从部署位置来看,servletConfig是在servlet中,而servletContext是在web-app下从代码来说,getServletContext().getInitParameter("foo");getServletConfig( 查看详情

第五周读书笔记

NO.1:一、   感觉第一个哥们描述的情况我还蛮符合的:大学基础差、沉迷游戏,记录以自勉。二、   讲真的,现在让我写个哈希表我还得照着课件抄,惭愧惭愧。三、   做软件真的不能急功近利... 查看详情

第五周读书笔记《人月神话》

   “人月”是什么?软件开发项目常以人月来衡量工作量,这种度量暗示着人手和时间是可以互换的。这种“人多力量大”的想法是一种一厢情愿的虚妄神话,作者布鲁克斯详细地阐释了团队与管理,强调了沟通及人... 查看详情

读书笔记第五周————创新的迷思

  这周我读了《构建之法》第16章,这章是关于创新的,可以说是刷新了我对创新的认知。  首先,这本书指出了几个大众想当然的谬误:  第一,创新一定是灵感大发,突然想到的。实际上,创新来源于厚... 查看详情

第五六周读书笔记

一.几种低压接地系统:1.TN系统:TN系统即电源中性点直接接地、设备外露可导电部分与电源中性点直接电气连接的系统。TN系统主要是靠单相碰壳故障变成单相短路故障(短路电流是TT系统的5.3倍),并通过短路保护切断电源来... 查看详情

《构建之法》第五章读书笔记

第5章团队和流程 一、非团队和团队团队的共同特点:1、团队有一致的集体目标,团队要一起完成这目标。一个团队的成员不一定要同时工作,例如接力跑。2、团队成员有各自的分工,互相依赖合作,共同完成任务。二、软件... 查看详情

《java编程思想》读书笔记第五章

成员初始化  Java尽力保证:所有变量在使用前都能得到恰当的初始化。  对于方法的局部变量,Java会以编译时报错的形式贯彻这种保证,比如:1voidf()2{3inti;//这里编译时就会报错,未初始化4}  但是如果是类的数据成员... 查看详情

《python深度学习》第五章-6(可视化类激活图)读书笔记(代码片段)

《Python深度学习》第五章-6(可视化类激活图)读书笔记卷积神经网络学到的表示非常适合可视化,很大程度上是因为它们是视觉概念的表示\\colorred视觉概念的表示视觉概念的表示。接下来介绍3种可视化方法。事中\\... 查看详情