18软工-第一周-读书笔记

本文是作者阅读《代码整洁之道》第一章至第四章的笔记,重点讨论了整洁代码的重要性、明确命名、函数守则和合理注释。书中强调了整洁代码对于软件开发的益处,如提高可读性和维护性,并提供了如何实现整洁代码的指导,如短小、专一的函数以及有意义的命名。作者反思了自己的编程习惯,并决定在今后实践中应用书中的原则。
摘要由CSDN通过智能技术生成

《代码整洁之道》ch1~ch4读书笔记

《clean code》正如其书名所言,是一本关于整洁代码规范的“教科书”。作者在书中通过实例阐述了整洁代码带来的种种利处以及混乱代码、冗余注释等带来的毁灭性后果,并且结合多段代码块、非常详尽地将“书写整洁代码的技巧与守则”教给读者。以下,是我本周细读其前四章的心得体会。

 

1.     Ch1:整洁代码三问:是什么,为什么,怎么做

为什么要写整洁代码?书中首先列举了几条案例,比如某公司的热门软件由于混乱代码导致无法维护、开发团队因为混乱代码而引发“竞赛”内耗资源等,强调了整洁代码的必要性。毫无疑问,能写出整洁代码是我们本能的追求,但往往不是第一追求——它时常让步给时间,毕竟ddl的力量胜于一切。不必说,在过去短短两年不到的编程学习中,我写出的代码绝大多数都是作者所指的混乱代码:表意不清、死气沉沉、难以维护,甚至我自己都不愿意再次点开那些因赶着上交作业而匆忙拼凑成的cpp文件。而作者力图告诉我们,整洁代码应当且必须作为程序员的第一追求,因为整洁就意味着时间和效率。对于学生而言,这一点可能并不明显或甚至截然相反,比如在oj等平台做算法练习题或参加编程比赛时,给变量取个表意清晰的长名字或拆分函数往往是浪费时间;但对于软件开发来说,整洁代码可谓是意义重大。维护、阅读成本等等诸多方面,都能见其益处。

什么是整洁代码?在我看来,就是不说废话、精炼明确。或者说,“每个例程都让人感到深合己意”。惭愧的是,按这一标准断言,我从未写出过超过5行的整洁代码。怎么写整洁代码?这正是本书接下来二十余章节中将详细介绍的。但有一点令我印象深刻:不要刻意要求自己直接写出整洁代码,写代码应该像写文章,先想到什么就写什么,大致完成后,再逐一拆分润色。直接敲出简洁代码,近乎是不可能的。深以为然。

 

2.     Ch2:明确命名

命名,在任何代码中都随处可见。变量、函数、参数、类、封包……在软件工程中,选择清晰明确的命名无疑是coder的天职。遗憾的是,正如上文所言,很多时候我们基于ddl临头、连夜赶工、需求变更等等因素,或单纯为了一时方便,在命名环节选择草草了事。flag,sign,res,tmp,i,j,k乃至x1,x2等等“言简意赅”的表述,往往使得整个程序难于阅读。我还记得在上一学期的数据结构大作业“银行模拟程序”中,我因为中途将time1与time0代表的部分记混,花了整整一晚上来debug。现在想来,当时若明智地选择arriveTime和waitTime作为命名,便省了诸多烦心事。

本章节中,详细介绍了“好命名”的必备要素:有意义:让人能“望文生义”,有区分度:与其他命名有“一眼就能看出”的差异,能读出来:方便交流和理解,可搜索:不要太过短小,没有误导性:避免给人“名词动用”等误导,适当添加语境。

简而言之,就是要遵循相应的命名原则,愿意花功夫来想一个明确而适当的好名字往往比事后抓耳挠腮debug要有效率得多。这也是代码可读性、可维护性的一大保障。

 

3.     Ch3:函数守则

这一章的目的同样很明确:如何写“整洁函数”。按我亲身经历而言,将功能分拆到各个函数中去是比较自然合理的,但我一般使用一个函数完成一系列工作,这也使得函数中代码量汇聚。本书中,则对我的这一习惯进行了批判,采用一套较严格的函数规范:短小、专一、少参数。

短小,不但代表代码行数少,还表明逻辑层次上小,即函数中应采用同一抽象层级。另一抽象层级的功能,应该由另一个函数实现。以这一规则组建的函数组,就好像从几颗螺丝钉一样的小零件拼成一个中零件,几个中零件拼成大零件,大零件再拼成小部件……以此类推,直到拼出变形金刚。这种层层推进的函数设计形式不但易于阅读、维护,还有一种逻辑上的艺术感,可谓整洁。

专一,即一个函数只做一件事。如果我们编写的函数想同时做多件事,那么最好将这多件事分摊给下一级的多个函数各自实现,而不是一窝蜂地在一个函数里扎堆。可以想见,少了各种体量庞大的循环、条件分支中的调用等,函数的可读性将大大提升,这也是实现“短小”的必由之路。

少参数,则是出于函数效率的考量,既方便调用和测试,又不易产生误导或意料之外的问题。如果需要输入多个参数,例如空间坐标(int x,int y,int z),那么不妨将其封装成一个类,归并到Position Pos 中,再以Pos.x形式调用。

 

4.     Ch4:合理注释

写注释,一直是程序设计老师们反复强调的手段。记得在程序设计和数据结构课中,助教们给我们的要求是注释量应该占代码量的30%以上。而本书中坚决反对这一主张。正如Brian W.Kernighan 与 P.J.Plaugher所言,“别给糟糕的代码加注释——重新写吧”。结合前三章中提到的技巧和规范写出的代码,应当具有明确的意义,让人“不言自明”,无需通过繁复唠叨的注释来阐述其中隐含的奥妙。合理的注释,应当尽可能少,在关键之处如蜻蜓点水、画龙点睛,让人一眼扫过豁然开朗,而不是像臭婆娘的裹脚布一般,把代码块缠得乱七八糟。简单而言,它应该含有必须的信息、函数调用的参数说明、简单解释意图或警示,而不该作为糟糕代码的说明书。

注释往往是我这样的初学者理解算法的一大有利工具,但对于有经验的程序员来说,使用明晰的命名,结合良好的函数结构,写出的代码往往比注释的可读性强得多。况且,注释往往无法及时修改,陈旧版本的注释只会给人误导和迷惑。更别提直接注释掉某些语句了,这让后来使用这一代码的程序员畏手畏脚、不敢妄动,只会造成冗余代码的堆砌。不幸的是,妄加注释、直接注释掉有问题的语句正是我日前编程的常规操作。今后,当引以为戒。

 

 

      总而言之,本周我通过对本书前四章的阅读,学到了命名、函数、注释等方面的整洁编程规范和技巧。日后的编程中,我将努力实践书中的好方法,做一名能敲出整洁代码的coder。

 

 

 

 

参考文献:

[1] Robert C. Martin.代码整洁之道. 人民邮电出版社, 2010.1.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值