编写整洁代码的十大心得,你get了吗?

CSDN资讯 CSDN资讯     2023-01-20     229

关键词:

编写了这么多代码,这十个写出整洁代码的心得,你或许需要。

原文链接:https://aster.cloud/2022/12/15/10-tips-for-writing-clean-code/?continueFlag=09893b9b2b388dcce38f0d0199cd963d

声明:本文为 CSDN 翻译,未经允许,禁止转载。

译者 | 弯月   责编 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

整洁的代码是一种编写代码的风格,主要以阅读代码的人为中心,以这种方式编写的代码不仅易于阅读,维护起来也很方便。掌握如何编写整洁代码是软件开发人员的一项基本技能。通常,编程的基本任务是应用程序能按预期运行,但我们编写的代码不仅仅是面向计算机。

编写整洁的代码,是要认识到你的受众不仅仅是计算机,还有真实的人类——牢记这一原则,我们来回顾一下保持代码整洁的重要性,并深入探讨一些技巧和心得,以帮助我们在实践中编写出真正整洁的代码。

什么是整洁的代码?

整洁代码指的是清晰、方便理解和维护的代码。在编写整洁的代码时,你需要牢记今后还有其他人会阅读并维护这段代码,而你需要帮助他人理解代码的用途,这样他们才能进行修改。

遵循代码整洁之道,可以帮助我们编写高度模块化的源代码,并降低阅读和测试的难度。将编程与盖房子做类比,那么整洁代码就是房子的地基。遵循代码整洁之道是一项基本技能,在需要重构代码或测试代码时,我们就能享受整洁的代码带来的优势。

代码整洁之道三原则

为了编写整洁的代码,我们需要遵循以下三大核心原则:

1. 选择正确的工具;

2. 优化信噪比;

3. 尽最大努力编写出不言自明的代码。

十大心得

1. 遵守命名约定

使用命名约定是一个很好的开端,命名约定不仅可以让代码清晰有条理,而且还能让人立即明白代码的作用。

遵守命名约定意味着,按照特定的规则给变量命名。遵守命名约定很麻烦,而且很多人无法就哪个规则最佳达成一致。所以,我们需要尽量保持简单,例如在变量名前加上数据类型,如下所示:

int iMyInteger = 10;
float fMyFloat = 10.5f;

2. 说明变量范围

遵循命名约定的下一步是说明变量的范围。同样,具体的方式没有统一标准,每个人都有自己的方式,但只要在所有代码中保持一致,就可以清楚地看出什么地方可以使用哪些变量。

常用的一种约定如下:

// 私有变量和保护变量以下划线开头
int _iWindowSize = 900;
// 公共变量正常命名
int iWindowSize = 900;
/ 常量全部大写,并以下划线连接
int I_WINDOW_SIZE = 900;

3. 说明变量用途

这一点非常简单,但也最常见,且最容易被忘记。对于查看代码的其他开发人员来说,最令人沮丧的事情就是看到一个具有误导性名称的变量,或者更糟糕的是,有些变量只用一个字母命名。

下面是一个例子:

int checkNum()

if(n < max)

return -1;
else
return 1;

4. 空白的使用

通常使用空白都有积极的作用,并且一般没有任何坏处。有时,比如 JavaScript 这样的语言,源代码本身的文件大小很重要,所以你希望文件尽可能小,但空白可能会增加几千字节。如果条件允许,请在开发过程中保留所有空白,以确保代码方便阅读。然后,使用一个小工具来遍历代码,删除所有空白之后再上传。

5. 注释可以救命,至少可以减轻痛苦

在代码中添加注释,功德堪比救世主,我们可以通过注释快速了解某个复杂的函数在做什么,或理解某些操作的顺序。此外,除了解释代码本身的用途之外,注释还可以帮助其他人了解代码试图解决的问题,这可以帮助他们提出更好的解决方案。

但请记住,注释过多有时会导致代码混乱,从而产生不良影响。

6. 利用自动化节省时间和空间

编写涉及复杂技术的代码并不意味着可读性必然会降低。将复杂的代码分开写成多行,不仅难以阅读,而且还会增加出错的概率。不过编程的伟大之处在于,你可以利用整洁、可重用和巧妙的方式表达复杂的命令。

下面是一个糟糕的、不断重复的代码示例:

虽然代码本身看起来没什么问题,而且可以正常工作,但我们并不清楚它究竟在干什么。你可以添加一些简单的注释。

box1.x = 10;
box1.y = 20;
box2.x = 30;
box2.y = 20;
box3.x = 50;
box3.y = 20;
box4.x = 70;
box4.y = 20;

下面是修改后的整洁的代码:

boxArray = [box1, box2, box3, box4];
for(int i = 0; i < sizeOf(boxArray); i++)

boxArray[i].x = 10 + i * 20;
boxArray[i].y = 20;

7. 强大的字母 i

当代码包含多个首尾相接的循环时,你需要使用不同的迭代变量。至于应该使用什么一直富有争议,而且答案很主观,当循环一个接一个地出现时,我们应该在循环外声明迭代变量,并重用它。这样,不仅代码方便阅读,而且你很清楚字母“i”就是迭代变量,而且它很高效。

下面,我们来看一个例子:

//declare variable initially
int i ;
for(i = 0; i<10; i++)

//loop stuff

for(i = 0; i<200; i++)

//more loop stuff

8. 将所有相似的变量组织到一起

当项目不断膨胀时,类中的变量也会越来越多。首先,你应该将所有变量的声明都放到顶部,或者至少应该放在一起,这样就可以让浏览代码更容易。

其次,将所有变量的声明放在一起,然后再按照一种更容易理解的方式排列它们通常会很有帮助。例如,按照某种方式分组。有时,同一个对象可能会有多种类型,我们应该将它们放在一起,然后将无法分类的变量放在一起。

9. 函数应尽量简单

冗长的函数定义很容易导致代码混乱。我们应该了解一下函数的实际功能。如果某个函数完成的功能超出了函数名包含的意思,就应该将多余的这部分功能拆分出来,编写一个新的函数。

10. 保持优雅

与函数问题类似,如果大量函数都集中在同一个地方,最好创建一个单独的类来代替这些函数的功能。

代码的整洁度是影响代码编写、阅读和维护难度的关键因素。以上我们讨论的心得不是具体规则,你应该将在这些基础之上,找到自己的风格和方式。

重要的是,保持代码整洁、清晰且一致。任何使用代码的人都会感谢你付出的努力,甚至可以从你的代码中学习到新知识。

《2022-2023 中国开发者大调查》重磅启动,欢迎扫描下方二维码,参与问卷调研,更有 iPad 等精美大礼等你拿!

☞Adobe “杀死了” Flash,我尝试在游戏上“复活了”它!
☞研发了晶体管、培养了“八叛逆”、被称为废物天才,硅谷之父传奇的一生
☞网易称暴雪离婚不离身;苹果发布 M2 Pro 和 M2 Max 芯片;滴滴出行 App 已重新上架安卓应用商店 | 极客头条

面试官常问的十大算法排序,你学会了吗?(代码片段)

...就算解决问题的思路,就是一个通用的思想的问题。代码本身不重要,算法思想才是重中之重我们在面试的时候总会被问到一下算法,虽然算法是一些基础知识,但是难起来也会让人非常头疼。排序算法应该算是... 查看详情

markdown无瑕的程式码─整洁的软体设计与架构篇心得(代码片段)

查看详情

it轮子系列——excel上传与解析,一套代码解决所有excel业务上传,你get到了吗

...码进行字段的检验,如必填项,数据格式。为了避免重复编写逻辑检验代码,于是有了这篇文章。第一步、读取Excel表格数据1publicActionResultUploadExcel()2{3ResultInfo<List<User>& 查看详情

读《代码整洁之道》有感

...Martin所著的《代码整洁之道》一书,希望能从中收获高效编写代码的诀窍,因为我自认为我的代码有时候比较糟糕,不太容易维护。一方面,是我没有养成良好的编程习惯;另一方面,我不太清楚什么才是真正整洁的代码。下面... 查看详情

面试官常问的十大算法排序,你学会了吗?(代码片段)

...就算解决问题的思路,就是一个通用的思想的问题。代码本身不重要,算法思想才是重中之重我们在面试的时候总会被问到一下算法,虽然算法是一些基础知识,但是难起来也会让人非常头疼。排序算法应该算是... 查看详情

国内外十大实用的app,你用过了吗?

01.魔力盒魔力盒是一款休闲娱乐应用,旨在帮助你度过公交地铁中,没信号时百无聊赖的时光。它会在wifi环境下自动为你缓存三部优秀短片,不消耗任何移动网络流量;看完自动删除,不浪费储存空间。最新最时尚的精彩视频... 查看详情

大数据问题排查系列-hdfsfilesystemapi的正确打开方式,你get了吗?(代码片段)

大数据问题排查系列-HDFSFileSystemAPI的正确打开方式,你GET了吗?前言大家好,我是明哥!本片博文是“大数据问题排查系列”之一,我们首先会聊聊一个问题的现象原因和解决方法,然后给出HDFSFileSystemAPI... 查看详情

架构整洁之道,看这一篇就够了!(代码片段)

...中就不会迷路,架构思想就是这样的知识。本文是《架构整洁之道》的读书心得,作者将书中内容拆解后再组织,不仅加入了个人的独到见解,而且用一张详细的知识脉络图帮助大家了解整本书的精华。如果你读过这本书,可以... 查看详情

线程的三种创建方式你get了吗?(代码片段)

备战2022春招或暑期实习,祝大家每天进步亿点点!Java并发编程Day4本篇总结的是如何在Java中避免创建不必要的对象,后续会每日更新~关于《我们一起学Redis》、《我们一起学HarmonyOS》等知识点可以查看我的往期博客... 查看详情

代码整洁之道——3对象和数据结构

一、使用getters和setters使用getters和setters获取对象数据比简单查找对象属性要好。因为:1、当你想要做的不仅仅是获取对象属性,你不必查找和修改你代码中的每处访问。2、使用set可以使验证变简单。3、封装内部结构。4、使用g... 查看详情

关于sql优化的21个小方法,你get了吗?(代码片段)

目录一、查询SQL尽量不要使用select*,而是具体字段二、避免在where子句中使用or来连接条件三、尽量使用数值替代字符串类型四、使用varchar代替char五、技术延伸,char与varchar2的区别?六、where中使用默认值代替null七... 查看详情

mysql数据类型之整数型的一些细节你get到了吗?(代码片段)

Mysql数据类型之整数型篇数据类型概述Mysql里的数据类型主要有数值型(整形、浮点型)、时间类型、字符串类型、JSON类型、坐标类型、混合类型(整数或字符串)。数值型范围表格数据类型存储位数数据范围tinyint1有符号:-128–127 无... 查看详情

求职充电|这些实战干货你get了吗?

...到了每年的求职热潮。但是,在面试之前,这些技能你get了吗?数据库案例经验、Python编程上手、网络设计方案、运维技巧攻略......现在,你只能站在前人的肩膀上,丰富自己的工作阅历。请接住,这个求职充电大礼包!!! 查看详情

做接口测试前必备的网络基础知识,你get了吗?(代码片段)

在面试时,不管是面试功能测试、自动化测试、测试开发乃至性能测试,都会问到计算机网络基础相关知识。今天主要介绍一些高频的网络基础面试题目,网络情缘一线牵,珍惜这段缘,如果觉得有帮助,... 查看详情

ASP C# 如何编写整洁的 GUI 代码

】ASPC#如何编写整洁的GUI代码【英文标题】:ASPC#HowtoprogramneatGUIcode【发布时间】:2009-04-0609:49:58【问题描述】:大约几个月以来,我正在编写ASPC#。我总是在事件中编写很多代码,在加载事件中我检查查询字符串是否有有效数据... 查看详情

代码整洁之道-函数

...调用(具有说明性的函数名称会增加代码的可读性)3)编写函数是为了把一个大的概念(函数名)拆分成另一个抽象层级上的一系列步骤4)判断函数是否只做了一件事?>看其能 查看详情

代码整洁之道-函数

...调用(具有说明性的函数名称会增加代码的可读性)3)编写函数是为了把一个大的概念(函数名)拆分成另一个抽象层级上的一系列步骤4)判断函数是否只做了一件事?>看其能 查看详情

<jdbc>获取数据库连接的五种方式:你真的get到了吗?

...指正!🌹目录一、概述🔥体系结构🔥JDBC编写顺序二、获取数据库连接🔥要点一& 查看详情