首页 > 其他分享 >读《代码整洁之道》有感

读《代码整洁之道》有感

时间:2024-07-29 21:17:20浏览次数:12  
标签:重构 函数 有感 代码 之道 注释 编写 整洁

 

引言

《代码整洁之道》是软件开发界的一本经典著作,由罗伯特·C·马丁(Robert C. Martin)编写。作为一本深入浅出的指导书籍,它详细阐述了如何编写可读、可维护、易于理解的代码。这本书不仅适合初学者,也适合有经验的开发者,因为它提供了大量实践经验和具体案例,帮助读者提高编写整洁代码的能力。

整洁代码的定义

整洁的代码是指那些简洁明了、易于理解、易于维护的代码。马丁在书中提到,整洁的代码应该具备以下特征:

  1. 可读性:任何人阅读代码时都能够迅速理解其意图。
  2. 简洁性:代码不冗余,所有内容都是必要的,没有多余的部分。
  3. 一致性:代码风格统一,遵循一致的命名规则和编写规范。
  4. 可维护性:代码容易修改和扩展,即使是原作者以外的人也能轻松进行维护。

命名的重要性

命名在代码整洁中起着至关重要的作用。好的命名能够显著提高代码的可读性和可理解性。书中提到的命名原则包括:

  1. 名副其实:名称应该清晰地反映其含义。例如,用 elapsedTimeInDays 表示时间间隔,而不是简单地用 d
  2. 避免误导:不要使用与实际功能不符的名称。例如,不要用 accountList 表示一个不是列表的数据结构。
  3. 有意义的区分:避免仅通过数字或不相关的词语来区分名称。例如,用 sourcetarget 比用 data1data2 更有意义。
  4. 使用可读的名称:如 generationTimestampgenymdhms 更容易理解。
  5. 避免编码:不要在变量名中使用前缀或其他编码方式。
  6. 避免思维映射:在循环体中,使用 ijk 作为循环变量比使用其他字母更好。

函数设计

书中提到,函数应该尽量短小且只做一件事。每个函数应在一个抽象层级上,确保其内容易于理解。函数名应具有描述性,并避免使用过多参数。理想的函数参数个数为零,其次是一,再次是二,应尽量避免使用三参数函数。函数的设计原则包括:

  1. 单一职责:每个函数只做一件事,并且做得很好。
  2. 简短:函数应该足够短,最好能在一个屏幕内显示完毕。
  3. 减少嵌套:尽量减少嵌套层级,使代码更扁平、更易读。
  4. 函数名描述行为:函数名应明确描述其功能,例如 calculateSumcalc 更清晰。

注释的使用

注释是代码的一部分,但注释的存在并不能弥补糟糕的代码。好的注释应该补充代码的不足,提供必要的上下文和解释。马丁提到,注释的最佳实践包括:

  1. 解释意图:注释应解释代码的意图,而不是描述代码的行为。
  2. 提供背景信息:在代码中使用专业术语或业务逻辑时,注释应提供背景信息。
  3. 警示潜在问题:在代码中标记潜在的陷阱或需要注意的问题。
  4. 避免多余注释:注释不应重复代码本身已经表达的信息。

格式和布局

整洁的代码不仅仅在于逻辑和结构,还包括代码的格式和布局。书中强调了保持代码一致性和良好格式的重要性,包括:

  1. 一致的缩进:使用一致的缩进风格,使代码层次结构清晰。
  2. 适当的空行:通过空行分隔逻辑块,提高代码的可读性。
  3. 对齐:对齐相关代码元素,使代码更整洁。

测试驱动开发(TDD)

《代码整洁之道》中提到,测试驱动开发(TDD)是一种确保代码质量的重要方法。通过先编写测试,再编写实现代码,可以有效减少缺陷,提高代码的可靠性。TDD 的原则包括:

  1. 先写测试:在编写功能代码之前,先编写相应的测试用例。
  2. 小步快跑:每次只进行小幅度的代码修改,并立即运行测试。
  3. 重构:在确保测试通过的前提下,不断重构代码,使其更简洁、更高效。

重构

重构是改善代码结构的重要手段,马丁在书中强调了重构的必要性和方法。重构不仅可以提高代码的可读性和可维护性,还可以减少技术债务。重构的最佳实践包括:

  1. 小步重构:每次只进行小规模的修改,确保改动不会引入新的问题。
  2. 频繁提交:在每次重构后及时提交代码,以便跟踪和回退。
  3. 保持代码功能不变:重构应在不改变代码外部行为的前提下进行。

结语

《代码整洁之道》通过详细的实例和深入的讲解,帮助我们理解如何编写和维护整洁的代码。书中的原则不仅适用于代码,还可以应用到其他工作中,帮助我们追求简洁和高效。通过不断实践这些原则,我们可以让自己的代码更具可读性和可维护性,同时提升整个团队的工作效率。整洁的代码不仅是优秀程序员的标志,也是团队协作和项目成功的重要保障。希望每一位读者都能从中受益,编写出更整洁、更高效的代码。

标签:重构,函数,有感,代码,之道,注释,编写,整洁
From: https://www.cnblogs.com/Lzzycola/p/18331107

相关文章

  • 《大道至简》--周爱民 读后有感
    在阅读周爱民先生的《大道至简:软件工程实践者的思想》一书后,让我对很多事物的本质有了更深的理解我深受启发,仿佛在纷繁复杂的软件工程领域中找到了一盏明灯。《大道至简》这本书由周爱民先生所著,读完之后,如醍醐灌顶,这本书开篇便提出了“大道至简”的核心观点,犹如一把利剑,斩断了我......
  • 鸣潮PC端启动报错全面解析:卡顿、下载卡99%、黑屏、崩溃闪退的解决之道
    《鸣潮》作为一款备受期待的游戏,其独特的玩法和精美的画面吸引了大量玩家。然而,不少玩家在尝试体验这款游戏时,遇到了一系列令人头疼的技术问题,包括启动报错、游戏卡顿、下载进度卡在99%、黑屏、崩溃闪退等。这些问题不仅影响了游戏体验,也让玩家感到沮丧。本文将深入分析这些问......
  • 读《大道至简》有感
    脍炙人口的愚公移山竟蕴含着编程的精艺?李冰的积薪烧之揭示了“懒人造就方法”的真理?《大道至简》作为一本深入探讨软件工程及设计理念的重要著作,以典故入手,引出了编程的基本思想,进而延伸到软件工程的方方面面,用生动的语言强调了简洁性的重要性以及如何在复杂的软件系统中寻求简单......
  • 240727.学习日志——《程序员修炼之道——从小工到大家》学习总结
    课程介绍《程序员修炼之道——从小工到大家》(ThePragmaticProgrammer:FromJourneymantoMaster)————[美国原版]AndrewHunt,DavidThomas著我最早是在知乎看到这本书的,当时对互联网计算机技术那个痴迷啊,一下子借了好多关于计算机技术的书,也到处在网上对标相关的......
  • 开源AI智能名片小程序:深度剖析体验优化策略,激活小程序生命力的运营之道
    摘要:在移动互联网的浪潮中,微信小程序凭借其无需下载、即用即走的特性,迅速成为企业连接用户、拓展市场的重要桥梁。开源AI智能名片小程序,作为这一领域的创新尝试,旨在通过融合人工智能技术与传统商务名片的概念,为用户带来前所未有的交流体验。然而,面对激烈的市场竞争和快速变化的......
  • Win11电脑显示msvcp80.dll缺失该如何应对?Win11系统找不到msvcp80.dll的解决之道
    在Win11系统中,若遭遇msvcp80.dll不见的情况,无需惊慌。这一问题存在多种有效的解决之道。您可以通过系统的自动修复功能进行尝试,也能从可靠的网站下载该文件并正确安装。或者利用系统还原点,让系统恢复到正常状态。本篇将为大家带来Win11系统找不到msvcp80.dll的解决之道的内容,感......
  • [转]从SQLite到Redis:探索C++与多种数据库的交互之道
    转自:【C++风云录】从SQLite到Redis:探索C++与多种数据库的交互之道开启数据库之旅:通过C++与各种数据库交互,事半功倍1.SQLite1.1简介SQLite是一个嵌入式关系型数据库管理系统,提供了一个轻量级的C++接口。它是一个开源的软件库,无需配置服务器或安装管理工具,可以直接在程序中使......
  • 数据库迁移的神秘面纱:Liquibase异常全解析与解决之道
    哈喽,大家好,我是木头左!一、Liquibase简介与重要性Liquibase,这个名字听起来就像是液体的魔法。在软件开发的世界里,它确实是一种魔法,一种让数据库变更变得清晰、可控甚至可逆的魔法。但就像所有魔法一样,掌握它需要了解它的规则和秘密。今天,就来揭开Liquibase的神秘面纱,特别是那些......
  • 《文明6》找不到d3d12.dll怎样处理?文明6游戏启动d3d12.dll丢失解决之道
    在尽情畅玩SidMeier’sCivilizationVI(文明6)这款广受欢迎的策略游戏过程中,部分玩家或许会在启动游戏时碰到提示“d3d12.dll文件丢失”的状况,这给游戏的正常运行带来了严重阻碍。d3d12.dll作为Direct3D12API的核心动态链接库文件,在游戏内的图形渲染与输出方面起着关键作用。本......
  • 【动态规划】【官解+整洁度优化+状态压缩-空间优化算法】力扣198.打家劫舍
    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一夜......