《cleancode》读书笔记——第二周

mrc233 mrc233     2022-10-26     332

关键词:

本周我阅读了《Clean Code》。

“神在细节中!”,建筑家范德罗如是说。他当然专注于基于宏伟构架之上的永恒建筑形式,他也同样为自己设计的建筑挑选门把手。同样软件开发也是这样,小处见大。在宏伟的建筑作品中,我们也要关注细节的回响。重点便是整理,从而达成Clean。一个很好的例子是对于变量命名,认真对待每个变量名。书中作者说,我们就像一群代码猴子,无视混乱无序,失去代码的真谛。整洁的代码正是迈向编程之美的基础,重要性毋庸置疑。

作者断言,我们永远需要代码。我们可以创造各种工具,但是永远无法抛弃必要的精确性,代码呈现了需求的细节。糟糕的代码可能毁了一个公司,一个工程,整洁的代码不仅有关效率,还有有关生存。勒布朗法则说:稍后等于永不。我们不能寄希望于稍后清理,抱着混乱代码好于没有代码的态度开发。完成课程任务时,我们往往以得到一段可以运行的代码为目标,不注意各种细节,一旦出现问题,需要重构代码,可能连把自己的代码读一遍都痛苦万分。整洁的代码将有利于后期开发,方便他人或者自己随后的阅读。

那么什么是整洁的代码呢?书中询问了一些知名的程序员,获得了众多答案。

  1. 优雅高效,整洁的代码只做一件事
  2. 简单直接,如同优美的散文
  3. 便于他人增改
  4. 对代码全心投入
  5. 没有重复代码

当然这是他们的观点,每个人都可能得到他们自己的答案,并没有真正的权威答案。就我个人看来,整洁的代码应当高效清晰,便于阅读修改,逻辑结构鲜明,更抽象一点,有简洁的美感。是的,要有美感,这种美感来自于程序员编写代码是的清晰逻辑架构,函数的高效使用,以及细节的投入。

软件中随处可见命名,这一细节虽小,对于代码的可读性有很大的影响。书中给出了一些简单的规则,首先应当让命名名副其实,避免误导,作有意义的区分,比如把抽象的单字母变量换成英语单词,这显然会极大增强代码可读性和可描述性。是想C语言和其他高级语言,想必汇编或者机器语言,让人感到简单方便的重要方面就是各种操作被冠以英语单词的‘名字’,同样读得出来,有意义的命名会极大改善你的代码。同时也要注意回避 ‘扮可爱’(试图有趣的命名),双关,添加没用的语境等。

函数是语言的动词,类是名词。函数是代码必不可少的重要部分,要写好函数首先要明白函数是对具体操作的抽象,每个函数里面嵌套一个函数就是一个抽象层级。混杂不同的抽象层级会导致混乱,失去简介。具体的,函数应该做一件事,做好这件事,只做这件事。这样你会收获一个高效简洁的函数,一般而言,这会是一个短小的函数,符合函数编写的第一原则。

初学C语言,重要的一课是如何添加注释,如何规范清晰地添加注释。好的注释可以提供函数使用的信息,对编写意图进行阐释,或者警示其他程序员要注意的细节。但是,注释不是糟糕代码的遮羞布,混乱的逻辑不会因为被描述就变得清晰,好的注释建立在好的代码基础上。过多的注释有时会引起相反的效果,信息过多就是废话,也难以抓住重点。

第二周读书笔记

本周我读的书是FrederickP.Brooks所著的《人月神话》这一十分著名的书籍。这是一本非常典型的外国科技作品:富含了幽默感和形象生动的比喻:“焦油坑”、“人月神话”、“外科手术队伍”,看到这些词,你会很快在脑海中建... 查看详情

读书笔记第二周《程序员的自我修养》

读书笔记第二周《程序的自我修养》??刚看到书名的时候以为这是一本讲述程序员为人处世,享受生活的文章,当我抱着当小说看消遣的心情从群里下载下来的时候,却发现这实际上是一本干货满满的书。当我看到副标题——链接... 查看详情

第二周psp

...ST(结束时间)I(打断时间)△(净工作时间)(分钟)读书构建之法18:0019:25085读书构建之法9:3011:2010100项目实践编程13:0016:3015195读书构建之法18:0019:20080视频学习C语言基础20:3022:3010110读书构建之法8:3011:200170项目实践编程14:00... 查看详情

《月亮与六便士》读书笔记

   开学第二周看完的书,我争取每个星期看本书吧。   这本书我不是很能看得懂,它是以法国印象家画家高更为原型来叙述的。主人公思特里克兰德原来是一位伦敦证券经纪人,过着安稳的日子,然而有一... 查看详情

geekband第二周学习笔记

CopyCtor(拷贝构造),copyassignmentoperator(拷贝赋值)CopyCtor(拷贝构造):默认的拷贝构造函数会将其引用类型的引用拷贝到新实例,若用指针指向两实例的同一引用类型则两指针的值是相同的即指向同一内存地址.1String::String(constString&str)... 查看详情

第二周3次课笔记

二周第三次课(1月31日)2.14文件和目录权限chmod2.15更改所有者和所属组chown2.16umask2.17隐藏权限lsattr_chattr2.14文件目录权限第一列第1位是文件类型,文件类型后面的9位分3个部分,前3位是所有者权限,中间3位是所属组权限,最后3... 查看详情

新手自学:pytion基础(第二周笔记)

一,模块初识库.标准库,不需要安装使用pytion最基础的内容 .第三方库必须下载安装.自己写模块或者文件名字不能和需要导入的库名相同importsys #sys模块 sys.path  print(sys.path)#打印环境变量提示sys.xxxprint(sys.argv)#打... 查看详情

《机电传动控制》第二周笔记

知识要点:1.3时间域描述1.3.1微分方程  对于各有一个输入端和输出端的线性传递环节来说,如果是一个时间和数值连续的输入量u(t),那么,输出量v(t)就有下列一般形式的微分方程       在大多... 查看详情

机电传动控制第二周笔记

一、控制系统设计指南 1、控制系统可以分为控制器和被控机器,具体结构和关系如下图所示。2、拉普拉斯变换在控制理论中被普遍使用,可以实现时间域和频率域之间的转换,其定义为:3、传递函数。频率域传递函数把两... 查看详情

《集体智慧编程》读书笔记第二章

作为个人记录之用,主要是将代码及其注释贴出来。frommathimportsqrtcritics={‘LisaRose‘:{‘LadyintheWater‘:2.5,‘SnakesonaPlane‘:3.5,‘JustMyLuck‘:3.0,‘SupermanReturns‘:3.5,‘You,MeandDupree‘:2.5,‘TheNightListener‘:3.0},‘GeneSeymou 查看详情

蒋海平机电传动控制第二周学习笔记

《自动化技术中的进给电气传动》时间域描述:微分方程我们由此也可看出时间域描述系统特性的复杂程度,下节则顺利过渡到频率域。对于一种不可调的电气传动系统,写出微分方程如下  引入电力过程与机械过程的时... 查看详情

2019-2020-120191230《信息安全专业导论》第二周学习总结

...多,只要书读的够多,所有问题几乎都能找到答案,但是读书不能只注重读书的数量,还要有选择的读书,放弃那些虚构的作品。知识是无国界的,不能因为语言不通就不去读原版书,版本不同的书给人的感受是不同的。互联网... 查看详情

《jquery实战(第二版)》读书笔记

第一部分jQuery核心1、jQuery基础第一章总结了jquery的大致功能,基本原理,使用方式。point:(1)、引入:<scripttype="text/javascript"src="http://libs.baidu.com/jquery/1.9.1/jquery.js">(2)、强大的选择器:varcheckedValue=$(‘[name="someRadioGroup 查看详情

第二次读书笔记

疑点:1.为什么感应反向电压:em =cm*wm    P35   由U=KΦn得到2.传动系统电气时间常数TelA  P373.如下图所示,为什么要用最大值定标,什么是传动系统的短路转矩4.不可调传动系统知识点:一、时间... 查看详情

javascriptdom编程艺术(第二版)读书笔记——

...一直没动过手,直到看到一个博客说到,从简到繁地记记读书笔记或知识总结是促进技术进步的一个很好的方法,觉得非常在理,学习后的整理更能记得牢固,于是最近下定决心,开始我的博客园“生活”。  说了从简到繁,... 查看详情

谁说菜鸟不会数据分析--读书笔记之第二章

这张主要说的是Excel的基本操作,以及问卷的录入。Excel的操作很基本,新记住了几个快捷键。其他最大的收获,就在问卷的录入了。 查看详情

effectivejava英文第二版读书笔记item11:overrideclonejudiciously

x.clone()!=xwillbetruex.clone().getClass()==x.getClass()willbetruex.clone().equals(x)alwaystrue.意味着深复制,新建对象,数据与结构与原对象一致,Copyinganobjectwilltypicallyentailcreatinganewinstanceoftisclass,butitmayrequire 查看详情

[读书笔记]effectivejava第二章

考虑用静态工厂方法代替构造器静态工厂方法第一大优势是可以用特有的名称。常见的类创建实例需要用构造函数,而当需要两个构造函数时,我们需要在参数列表做区分才能写出两个构造方法。使用静态工厂模式,可以规避方... 查看详情