最近读了《代码整洁之道》这本书,结合自己学习经验,对代码整洁的重要性有了一些新的理解与感悟。首先我想先谈谈什么是整洁的代码,从字面意思上理解,整洁的代码,对于程序员来说非常的一目了然,简单、整洁,结构清晰,逻辑清楚。那么整洁的代码到底对一个项目的影响有多大?对于这个问题没有明确的数据支撑我给出答案,我只知道糟糕的代码对于一个项目的影响是与这个项目的规模呈正比的,我觉得大概可以算作是呈指数级的增长。

糟糕的代码是如何影响一个项目的?想象一下一份只有10行的充斥了i、j、k等变量的代码,读完并不是一件难事,或许逻辑并不那么清晰,但是好歹还是能够理解作者的意图,但是如果变成1000行呢?或许这个数量增长到100行的时候就已经让人想要放弃,随意的命名让人一头雾水,错综复杂的逻辑混在一起。如果还要在这样的代码上继续叠加逻辑,这几乎已经是不可完成的任务了。

从我自己的经验来说,我几乎记不住代码的具体实现是怎样的,尽管这是自己所写出来的代码,在每一次进行一个新的功能的开发时,我都需要去熟悉一下旧代码的实现逻辑,然后才能在此之上进行新功能的叠加。一份整洁的代码可以让阅读它的程序员快速的了解其实现逻辑,而不需要去了解具体的实现细节。如果一份代码需要程序员了解了所有的实现细节才能知道这份代码的作用,这势必意味着程序员需要花费大量的时间在阅读一份与工作关系并不大的代码。这样的代码越多,程序员花费的时间也就越多,这就是为什么我在文章开头说糟糕的代码对于一个项目的影响是与这个项目的规模呈指数级的增长。

所以糟糕的代码意味着难以维护,也意味着代码会慢慢的腐烂。所以在完成代码后花一些时间去保持代码的整洁反而是一种提升效率的手段。

怎样的代码才叫整洁的代码呢?对于这个问题我的理解是这样的,代码其实是一种语言,传递的是逻辑,如果这份代码可以像我们说话一样快速的将逻辑传递给读者,那么这样一份代码就是一份整洁的代码。

如何保持代码整洁

在明白了代码整洁的意义之后,如何保持代码整洁就是当前最紧迫的问题。私以为可以从几个点来进行考虑:

意识

首先便是要有保持代码整洁的意识,我很喜欢《代码整洁之道》中反复提到的一条童子军军规:让营地比你来时更干净。我认为有保持代码整洁的意识并不是说从写代码的时候就一直是整洁的,如果能够这样当然很好,但是这很难做到。在一开始编写代码的时候我们可以按照自己的思维顺序,个人习惯,甚至是只是为了追求想要可以工作的代码来写出一些较为混乱的代码,但是在结束当前的工作之前,在让自己的大脑脱离开之前,一定要整理代码,一定!

明天的你与今天的你总会有所不同,在再次进入工作之后,你或许会忘记很多的细节,而混乱的代码只会让思维更加的混乱。所以趁着你的思维还没有与你代码中巧妙的实现断线之前,整理你的代码,使代码尽可能的保持整洁。这便是我理解的童子军军规,你可以把营地搞得一团糟,但在你离开之前,一定要整理的更加干净。

代码规范

从代码规范入手是最基础也是最容易实现的保持代码整洁的方式。从几个方面来体现代码形式的整洁:足够好的命名,简单专注的函数,有意义的注释以及规范的代码格式。

一个好的命名可以帮助读者快速的理解变量以及函数的意义,所要实现的事情是什么。很多时候程序员宁愿花费更多的时间在变量名后加一些注释,也不愿意取一个简单易懂的名字,这实际是一件本末倒置的做法。一个函数、变量、类或者接口应该只通过命名就可以把它所做的事情传达给读者。所以不要害怕花费时间在思考命名上。

函数应该做一件事。做好这件事。只做这一件事这句话摘选自函数这一章节。这句话很重要,我总会在函数中看到比函数名描述的更多的事情,有的时候我不得不花时间去阅读一些我不想了解的实现细节才能明白这个函数到底做了一件什么事。所以一个函数只做一件事,这是我认为很容易达到却又很容易被忽略的非常重要的事情。同时,函数还应该尽可能的短小,一个函数就算写的再清晰,如果一下子展示出100多行,那种庞大的行数也会让读者瞬间放弃。当然我相信,如果一个函数只专注于一件事,是不会产生过于庞大的代码量的。所以我认为,一个好的代码,应该像洋葱一样,可以一层一层的剥开,由粗略到细致。而不是像一个煮鸡蛋,完全一整个,让人无法一点一点的理解。

关于有意义的注释,我想我在前边两段的描述已经传达了一个信息,注释或许并不那么必要。如果编程语言足够有表现力,能够传递给读者所要表达的信息,注释其实就失去了意义。只在真正需要的地方写代码才是注释应该存在的意义。

好的代码格式,例如缩进的形式,可以有力的将层级结构传递给读者。我很讨厌没有缩进的代码,因为我根本记不住哪个}是哪个{的结束。有的时候,代码格式也是一种有力的信息。

posted on 2023-09-26 19:01  满山猩猩我脸最黑  阅读(7)  评论(0编辑  收藏  举报