【Code】《代码整洁之道》笔记-Chapter12-迭进

重磅!Repo Wiki! RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。 阅读详情

第12章 迭进

12.1 通过迭进设计达到整洁目的

假使有4条简单的规则,跟着做就能帮助你创建优良的设计,会如何?假使遵循这些规则,你就能洞见代码的结构和设计,更能轻易地应用SRP和DIP之类的原则,便会如何?假使这4条规则有利于良好的设计“浮现”出来,又会如何?

我们中的许多人认为,Kent Beck关于简单设计的4条规则,对于创建具有良好设计的软件有着莫大的帮助。

据Kent所述,只要遵循以下规则,设计就能变得“简单”:

  • 运行所有测试;

  • 不可重复;

  • 表达了程序员的意图;

  • 尽可能减少类和方法的数量。

以上规则按其重要程度排列。

12.2 简单设计规则1:运行所有测试

设计必须制造出如预期一般工作的系统,这是首要因素。系统也许有一套绝佳设计,但如果缺乏验证系统是否真按预期那样工作的简单方法,那就无异于纸上谈兵。

全面测试并持续通过所有测试的系统,就是可测试的系统。这看似浅显,却很重要。不可测试的系统同样不可验证。不可验证的系统,绝不应部署。

幸运的是,只要系统可测试,就会导向保持类短小且目的单一的设计方案。遵循SRP的类,测试起来较为简单。测试编写得越多,就越能持续走向编写较易测试的代码。所以,确保系统完全可测试能帮助我们创建更好的设计。

紧耦合的代码难以编写测试。同样,编写测试越多,就越会遵循DIP之类的规则,从而越会使用依赖注入、接口和抽象等工具尽可能减少耦合,如此一来,设计就会有长足进步。

遵循有关编写测试并持续运行测试的简单、明确的规则,系统就会更贴近面向对象低耦合度、高内聚度的目标。编写测试将会引致更好的设计。

12.3 简单设计规则2~4:重构

有了测试,就能保持代码和类的整洁,方法就是递增式地重构代码。添加了几行代码后,就要暂停,琢磨一下变化了的设计。设计退步了吗?如果是,就要清理它,并且运行测试,保证没有破坏任何东西。测试消除了对清理代码就会破坏代码的恐惧。

在重构过程中,可以应用有关优秀软件设计的一切知识,提升内聚性,降低耦合度,切分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称,如此等等。这也是应用简单设计后3条规则的地方:消除重复,保证表达力,尽可能减少类和方法的数量。

12.4 不可重复

重复是拥有良好设计的系统的大敌。它代表着额外的工作、额外的风险和额外且不必要的复杂度。重复有多种表现。极其雷同的代码行当然是重复。类似的代码往往可以调整得更相似,这样就能更容易地进行重构。重复也有实现上的重复等其他一些形态,例如,在某个群集类中可能会有以下两个方法:

int size()  {}
boolean isEmpty()  {}

这两个方法可以分别实现。isEmpty方法跟踪一个布尔值,而size方法则跟踪一个计数器。或者,也可以通过在isEmpty方法中使用size方法来消除重复:

boolean isEmpty() {
  return 0 == size();
}

要想创建整洁的系统,需要有消除重复的意愿,即便对于短短几行也是如此。例如,以下代码:

 public void scaleToOneDimension(
     float desiredDimension, float imageDimension) {
   if (Math.abs(desiredDimension - imageDimension) < errorThreshold)
      return;
   float scalingFactor = desiredDimension / imageDimension;
   scalingFactor = (float)(Math.floor(scalingFactor * 100) * 0.01f);

   RenderedOp newImage = ImageUtilities.getScaledImage(
      image, scalingFactor, scalingFactor);
   image.dispose();
   System.gc();
   image = newImage;
 }
 public synchronized void rotate(int degrees) {
   RenderedOp newImage = ImageUtilities.getRotatedImage(
     image, degrees);
   image.dispose();
   System.gc();
   image = newImage;
}

要保持系统整洁,应该消除scaleToOneDimension方法和rotate方法里面的少量重复:

public void scaleToOneDimension(
    float desiredDimension, float imageDimension) {
  if (Math.abs(desiredDimension - imageDimension) < errorThreshold)
     return;
   float scalingFactor = desiredDimension / imageDimension;
   scalingFactor = (float)(Math.floor(scalingFactor * 100) * 0.01f);
   replaceImage(ImageUtilities.getScaledImage(
 image, scalingFactor, scalingFactor)); 
}

public synchronized void rotate(int degrees) {
  replaceImage(ImageUtilities.getRotatedImage(image, degrees)); 
}

private void replaceImage(RenderedOp newImage) {
 image.dispose();
 System.gc();
 image = newImage;
}

做了一点点共性抽取后,我们意识到已经违反了SRP原则。所以,可以把一个新方法分解到另外的类中,从而提升其可见性。团队中的其他成员也许会发现进一步抽象新方法的机会,并且在其他场景中复用之。“小规模复用”可大量降低系统复杂性。要想实现大规模复用,必须理解如何实现小规模复用。

模板方法模式(Template Method)是一种移除高层级重复的通用技巧。例如:

public class VacationPolicy {
  public void accrueUSDivisionVacation() {
    // code to calculate vacation based on hours worked to date
    // ...
    // code to ensure vacation meets US minimums
    // ...
    // code to apply vaction to payroll record
    // ...
  }

   public void accrueEUDivisionVacation() {
     // code to calculate vacation based on hours worked to date
     // ...
     // code to ensure vacation meets EU minimums
     // ...
     // code to apply vaction to payroll record
     // ...
   }
 }

除了计算法定最少数量假期的部分,accrueUSDivisionVacation和accrue-EuropeanDivisionVacation中有大量代码雷同。那部分的算法,依据员工类型而变。

可以通过应用模板方法模式来消除明显的重复。

abstract public class VacationPolicy {
   public void accrueVacation() {
     calculateBaseVacationHours(); 
 alterForLegalMinimums(); 
 applyToPayroll(); 
   }

   private void calculateBaseVacationHours() { /* ... */ };
   abstract protected void alterForLegalMinimums();
   private void applyToPayroll() { /* ... */ };
}

public class USVacationPolicy extends VacationPolicy {
  @Override protected void alterForLegalMinimums() {
    // US specific logic
  }
}

public class EUVacationPolicy extends VacationPolicy {
  @Override protected void alterForLegalMinimums() {
    // EU specific logic
  }
}

子类填充了accrueVacation算法中的“空洞”,提供不重复的信息。

12.5 表达力

我们中的大多数人都经历过费解代码的纠缠。我们中的许多人自己就编写过费解的代码。写出自己能理解的代码很容易,因为在写这些代码时,我们正深入于要解决的问题中。代码的其他维护者不会那么深入,也就不易理解代码。

软件项目的主要成本在于长期的维护。为了在修改时尽量降低出现缺陷的可能性,很有必要理解系统是做什么的。当系统变得越来越复杂,开发者就需要越来越多的时间来理解它,而且也极有可能误解。所以,代码应当清晰地表达其作者的意图。作者把代码写得越清晰,其他人花在理解代码上的时间也就越少,从而减少缺陷,缩减维护成本。

可以通过选用好名称来表达。我们想要听到好类名和好函数名,而且在查看其权责时不会大吃一惊。

也可以通过保持函数和类尺寸短小来表达。短小的类和函数通常易于命名,易于编写,易于理解。

还可以通过采用标准命名法来表达。例如,设计模式很大程度上关乎沟通和表达。通过在实现这些模式的类的名称中采用标准模式名,如COMMAND或VISITOR,就能充分地向其他开发者描述你的设计。

编写良好的单元测试也具有表达性。测试的主要目的之一就是通过实例起到文档的作用。读到测试的人应该能很快理解某个类是做什么的。

不过,做到有表达力的最重要方式却是尝试。有太多时候,我们一旦写出能工作的代码,就转移到下一个问题上,而没有下足功夫调整代码,让后来者易于阅读。记住,下一位读代码的人最有可能是你自己。

所以,多少尊重一下你的手艺吧。花一点点时间在每个函数和类上。选用较好的名称,将大函数切分为小函数,时时照拂自己创建的东西。用心是最珍贵的资源。

12.6 尽可能少的类和方法

即便是消除重复、代码表达力和SRP等最基础的概念,也会被过度使用。为了保持类和函数短小,我们可能会造出太多的细小类和方法。所以这条规则也主张函数和类的数量要少。

类和方法的数量太多,有时是由毫无意义的教条主义导致的。例如,某个编码标准就坚称应当为每个类创建接口。也有开发者认为,字段和行为必须切分到数据类和行为类中。应该抵制这类教条,采用更实用的手段。

我们的目标是在保持函数和类短小的同时,保持整个系统短小精悍。不过要记住,这在关于简单设计的4条规则里面是优先级最低的一条。所以,尽管使类和函数的数量尽量少是很重要的,但更重要的却是测试、消除重复和表达力。

12.7 小结

有没有能替代经验的一套简单实践手段呢?当然不会有。另外,本章中写到的实践来自本书作者数十年经验的精练总结。遵循简单设计的实践手段,开发者不必经年学习就能掌握好的原则和模式。

【GPFS专题5】---IBM Spectrum Scale (GPFS) 日常运维命令大全 掌握这些命令是有效管理 GPFS 集群的基础。实际生产环境中,建议结合自动化脚本和监控系统(如 IBM Storage Insights)实现高效运维。定期备份配置、监控性能指标,并进行灾备演练,是保障数据安全和系统稳定的关键。 阅读详情

相关推荐

Android音频子系统分析-car_audio_configuration.xml

先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。

不定时记录分享一些有用没用的东西 989

《代码整洁之道》阅读笔记(四)——迭进

本次分享主要是第十一章,迭进,通过跌进设计达到整洁的目的。根据书中的描述,只要遵循一下规则,设计就能变得“简单”:1.运行所有测试;2.不可重复;3.表达了程序员的意图;4.尽可能减少类和方法的数量;以上规则按其重要程度排列。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一家之言,然诚有可资借鉴的价值。从《代码整洁之道》中可以学到:好代码和糟糕的代码之间的区别:如何编写好代码,如何将糟糕的代码转化为好代码:如何创建好名称、好函数、好对象和好类;

qq_41839584的博客 183

手把手教你用Matlab解析Zygo .dat文件:从二进制数据到面形图(附完整流程)

本文详细介绍了如何使用Matlab解析Zygo干涉仪生成的.dat文件,从二进制数据读取到面形图可视化的完整流程。通过实例代码演示了文件结构解析、数据矩阵读取、高阶Zernike拟合等关键技术,帮助工程师和研究人员高效处理光学检测数据,提升分析精度和工作效率。

weixin_30731305的博客 451

《代码整洁之道 》第十二章 迭进

作者把代码写得越清晰, 其他人花在理解代码上的时间也就越少,从而减少缺陷,缩减维护成本。极其雷同的代码行当然是重复。提升内聚性,降低耦合度,切 分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称,如此等等。这也 是应用简单设计后三条规则的地方:消除重复,保证表达力,尽可能减少类和方法的数量。有了测试,就能保持代码和类的整洁,方法就是递增式地重构代码。我们的目标是在保持函数和类短小的同时,保持整个系统短小精悍。所以,尽管使类和函数的数量尽量少是 很重要的,但更重要的却是测试、消除重复和表达力。

weixin_39924752的博客 267

AHB总线协议

1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内

ivy_reny的专栏 8万+

AJ-Report开源数据大屏存在远程命令执行漏洞

该平台可以通过post方式在validationRules参数对应值中进行命令执行,可以获得服务器权限,登陆管理后台接管大屏。如果被攻击者利用,危害后果十分严重。

swordheart的博客 388

代码整洁之道 迭进

1、简单设计的四条规则: 运行所有测试; 不可重复; 表达了程序员的意图; 尽可能减少类和方法的数量; 2、全面测试并持续通过所有测试的系统,就是可测试的系统。不可测试的系统同样不可验证。不可验证的系统,绝不应部署。 3、重构。递增式地重构代码。增加代码之后要琢磨一下变化了的设计,如果设计变坏了就要清理它。测试消除了对清理代码就会破坏代码的恐惧。 4、不可重复。要想创建整洁的系统,需要有消除重复的意愿,即便对于短短几行也是如此。 5、表达力。作者把代码写得越清晰,其他人花在理解代码上的时间也就

goldenwinner2008的博客 207

京瓷扫描驱动安装_京瓷喷头拆解和供墨原理剖析

在工业喷头打印领域,京瓷喷头作为主流喷头广泛应用于喷墨行业,目前京瓷喷头市面上销售主要有两个系列:KJ4A和KJ4B。其中KJ4A系列设计是用于油性墨水,例如UV墨水,主要用在广告领域;而KJ4B设计用于水性墨水,例如活性、分散墨水等,主要用在数码印花领域。最近我们团队对京瓷喷头进行了拆解分析,本期和大家分享一下我们对京瓷喷头拆解和喷头供墨原理的研究。京瓷喷头介绍1. KJ4A系列(油性)如下图所...

weixin_39883906的博客 1677

《代码整洁之道》--第12章 迭进

1. 简单设计原则:  a) 运行所有测试  b) 不可重复  c) 表达了程序员的意图  d) 尽可能减少类和方法的数量2. 运行所有的测试3. 简单设计原则2-4:  a) 提升内聚性,降低耦合性,切分关注面,模块化系统性能关注面,缩小函数和类的尺寸,选用更好的名称。。。。4. 不可重复  a) 做一点点共性抽取,可能会违反SRP原则,可以吧一个新的方法分解到另一个类中。5. 表达力...

weixin_30713953的博客 318

【OpenCV】图像的像素直方图 图像特征点 cv::FAST cv::ORB ORB_SLAM2::ORB

文章目录图像直方图代码实现cv::FAST和cv::ORB 检测图像特征点cv::FAST和cv::ORB 检测图像特征点代码实现ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比ORB_SLAM2::ORB和自己实现ORB图像特征点检测效果对比代码实现 图像直方图代码实现 图像是由不同数值(颜色)的像素构成的,像素值在图像中的分布情况是图像的重要属性,可以用直方图修改图像的外观,标识图像的内容,检测图像中特定的物体或纹理。 单通道灰度图像中每个像素都有一个 0(黑色)-255(白色)的整

小秋 AI SLAM 入门实战教程 2511

定位精度再突破!Inner-MPDIoU让YOLOv11边界框回归更精准

Inner-MPDIoU 凭借辅助边框与最小点距离的双机制创新,彻底解决了传统 IoU 损失在边界框回归上的精度瓶颈。本教程从原理到代码实现,再到工业场景适配,完整呈现了其在 YOLOv11 中的集成路径。只需简单修改两处核心脚本,你的目标检测模型就能在边界框定位精度上实现跨越式提升——无论是学术研究中的指标突破,还是工业场景下的精细检测需求,Inner-MPDIoU 都能成为你攻克边界框回归难题的利器。现在就动手尝试,让你的检测模型在定位精度上再上一个台阶吧。

FJN110的博客 161

《代码整洁之道》阅读笔记——第12章:迭进

第12章:迭进 12.1 通过迭进设计达到整洁目的 开发时要遵循简单设计的5条规则 12.2 规则1:运行所有测试 全面测试并持续通过所有测试的系统就是可测试的系统。 12.3 规则2:重构 提升内聚性,降低耦合度,切分关注面,模块化系统性关注面,缩小函数和类的尺寸,选用更好的名称等。 如何理解重构?不改变软件可观察行为的前提下,改善其内部结构,以提高理解性和降低修改成本。作为开发者, 应当把重构作为开发的一部分,一边开发一边重构。在快速堆叠代码,实现基本需求功能的基础上,写好测试用例,保证功能不变,

EthanChenJia的博客 310

基于XDMA 的PCIE读写DDR

基于XDMA 的PCIE读写DDR 概述:   想实现基于FPGA的PCIe通信,查阅互联网各种转载…基本都是对PCIe的描述,所以想写一下基于XDMA的PCIe通信的实现(PCIe结构仅做简单的描述(笔记),了解详细结构移至互联网)。 实现功能:PC通过PCIE读写DDR,同时用户通过逻辑代码可以读取被写入DDR内的数据(我是通过VIO实现DDR任意地址,任意数据大小的读取。)。 实践实践!!! 说明: 参考文档: PCI Express Base Specification Revision 3.0 P

Crazzy_M的博客 1万+

【Code】《代码整洁之道》笔记-Chapter9-单元测试

过去十年以来,编程专业领域进步很大。1997年时,没人听说过测试驱动开发。对于我们之中的大多数人来说,单元测试是那种用来确保程序“可运行”的用过即扔的短代码。我们辛勤地编写类和方法,再弄出一些特殊代码来测试它们。通常这些代码会是一种简单的驱动式程序,让我们能够手工与自己编写的程序交互。我记得在20世纪90年代曾为一套嵌入式实时系统编写过C++程序。想法很简单;到达指定毫秒数时,在一个新线程中执行Command的execute方法。问题在于如何测试它。我随便写了个简单的驱动式程序,聆听来自键盘的动作。

江湖人称菠萝包 1415

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Code】《代码整洁之道》笔记-Chapter16-重构SerialDate

如果你找到JCommon类库,深入该类库,其中有个名为的程序包。在该程序包中,有个名为SerialDate的类,我们即将剖析这个类。SerialDate的作者是David Gilbert。David显然是一位经验丰富、能力很强的程序员。如我们将看到的,他在代码中展示了极高的专业性和原则性。无论怎么说,SerialDate都是“好代码”,而我将把它撕成碎片。这并非恶意的行为,我也不认为自己比David强许多,有权对他的代码说三道四。其实,如果你看过我的代码,我敢说你也会发现好些该埋怨的东西。

江湖人称菠萝包 1518

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Code】《代码整洁之道》笔记-Chapter11-系统

复杂要人命。它消磨开发者的生命,让产品难以规划、构建和测试。

江湖人称菠萝包 1207

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Code】《代码整洁之道》笔记-Chapter14-逐步改进

本章研究一个逐步改进的案例。你将看到一个开始还不错,但规模扩大后即出问题的模块。你还将看到这个模块是如何被重构得整洁起来的。我们中的大多数人都会遇到解析命令行参数的情况。如果没有就手的工具,就得遍历传入main函数的字符串数组。有一些不同来源的好工具,但没有一个是最符合要求的。所以,我当然要自己写一个,我把它叫作Args。Args非常易于使用。你只要简单地用输入参数和格式化字符串构造Args类,再向Args实体询问参数值即可。看看代码清单14-1中给出的简单例子。代码清单14-1 Args的简单用法。

江湖人称菠萝包 1223

【Code】《代码整洁之道》笔记-Chapter8-边界

我们很少能控制系统中的全部软件。有时我们购买第三方程序包或使用开放源代码,有时我们依靠公司中其他团队打造组件或子系统。不管是哪种情况,我们都得将外来代码干净利落地整合进自己的代码中。本章将介绍一些保持软件边界整洁的实践手段和技巧。

江湖人称菠萝包 1211

【Code】《代码整洁之道》笔记-Chapter10-类

到目前为止,本书一直在讨论如何编写良好的代码行和代码块。我们深入研究了函数的恰当构成,以及函数之间如何互相关联。尽管讨论了这么多关于代码语句及由代码语句形成的函数的表达力,但是,除非我们将注意力放到代码组织的更高层面,否则始终不能得到整洁的代码。

江湖人称菠萝包 1261

【Code】《代码整洁之道》笔记-Chapter7-错误处理

对异常分类有很多方式。可以依其来源分类:是来自组件还是其他地方?也可以依其类型分类:是设备错误、网络错误还是编程错误?不过,当我们在应用程序中定义异常类时,最重要的考虑应该是它们如何被捕获。我们来看一个不太好的异常分类的例子。下面的语句是对某个第三方代码库的调用。try {语句包含了一大堆重复代码,这并不出奇。在大多数异常处理中,不管真实原因如何,我们总是做相对标准的处理。我们得记录错误,确保能继续工作。

江湖人称菠萝包 1312

【Code】《代码整洁之道》笔记-Chapter4-注释

什么也比不上放置良好的注释来得有用。什么也不会比乱七八糟的注释更有本事搞乱一个模块。什么也不会比陈旧、提供错误信息的注释更有破坏性。注释并不像辛德勒的名单。它们并不“纯然地好”。实际上,注释最多也就是一种必需的恶。若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不那么需要注释——也许根本不需要。注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败。注意,我用了“ 失败”一词,我是说真的,注释总是一种失败。我们总无法找到不用注释就能表达自我的方法,所以总要有注释,这并不值得庆贺。

江湖人称菠萝包 1055

【Code】《代码整洁之道》笔记-Chapter6-对象和数据结构

我们将变量设置为私有(private)有一个理由:不想让其他人依赖这些变量。我们还想在心血来潮时能自由修改其类型或实现。那么,为什么还是有那么多程序员不假思索就给对象添加赋值器(setter)和取值器(getter),将私有变量公之于众,如同它们是公共变量一般呢?

江湖人称菠萝包 1617

【Code】《代码整洁之道》笔记-Chapter17-味道与启发

Martin Fowler在其大作《重构:改善既有代码的设计》(Refactoring: Improving the Design of Existing Code)中指出了许多不同的“代码的坏味道”。下面的清单包括很多Martin指出的“坏味道”,还添加了更多我自己提出的“坏味道”,也包括我借以历练本业的其他珍宝与启发。我借由遍览和重构几个不同的程序总结出这个清单。每次修改,我都问自己为什么要这样改,把修改的原因写下来,结果就得到相当长的清单,该清单列出了在读代码时让我闻起来不舒服的味道。

江湖人称菠萝包 1366

【Code】《代码整洁之道》笔记-Chapter5-格式

当有人查看底层代码实现时,我们希望他们为代码的整洁、一致及所感知到的对细节的关注而震惊。我们希望他们高高扬起眉毛,一路看下去。我们希望他们感受到专业人士们的劳作。但若他们看到的只是一堆像是由酒醉的水手写出的鬼画符,那他们多半会得出结论,认为项目其他任何部分也同样对细节漠不关心。你应该保持良好的代码格式。你应该选用一套管理代码格式的简单规则,然后贯彻这些规则。如果你在团队中工作,则团队应该一致同意采用一套简单的格式规则,所有成员都要遵从这套规则。使用能帮你应用这套格式规则的自动化工具会很有帮助。

江湖人称菠萝包 1041

【Code】《代码整洁之道》笔记-Chapter1-整洁代码

略。

江湖人称菠萝包 487

【Code】《代码整洁之道》笔记-Chapter2-有意义的命名

起好名字最难的地方在于需要良好的描述技巧和共有文化背景。与其说这是一种技术、商业或管理问题,还不如说是一种教学问题。其结果是,这个领域内的许多人都没能学会做得很好。我们有时会担心其他开发者反对重命名。讨论一下就会知道,如果名称改得更好,那大家真的会感激你。多数时候我们并不记忆类名和方法名,而使用现代工具应对这些细节,好让自己集中精力把代码写得像词句篇章,至少像是表和数据结构(词句并非总是呈现数据的最佳手段)。改名可能会让某些人吃惊,就像你做到其他代码改善工作一样。别让这种事阻碍你前进的步伐。

江湖人称菠萝包 1128
上一篇: 【Code】《代码整洁之道》笔记-Chapter11-系统
下一篇: 【Code】《代码整洁之道》笔记-Chapter13-并发编程
江湖人称菠萝包
博客等级 码龄10年 762粉丝 314原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值