`

如何提升代码可读性?

阅读更多
作为开发者,可能会经常听到“代码首先是写给人看的”、“写可读的代码相当重要”等等。

对于如何使代码的可读性更强,开发者往往都有自己的看法。那么你可曾仔细想过什么才能真正使代码可读性增强。

一些标准答案

无论你使用什么编程语言,你都可能会认同下面的建议可以增强代码的可读性:

好的变量、方法、类名
一个变量、类、方法只做一件事
一致的缩进,一致的格式
减少代码中的嵌套级别
当然,还有很多其他标准答案,比如 Clean Code(Robert Martin著)和Code Complete(Steve McConnell著)两本书中说的,你应该读一读。

或许你要说,这些东西我都知道。那么,下面就是一些你可能没有考虑的、关于代码可读性的更深层次的东西。

读者的经验

给我一段代码,我能在2秒内告诉你这段代码是否写得好,是否具有很强的可读性(至少我会告诉你我的意见)。

同时,如果我将我写得最好的、可读性很高的代码给一个编程新手,他们可能也不会发现这些代码与其他代码有什么不同。

虽然我的代码中有很好的、描述性的变量名,短的命名方法和少量的参数,并且它们只做一件事,各个功能结构清晰地组合在一起,但是这些新手并没有发现我的代码比其他没有考虑结构的代码好读到哪去。

事实上,我经常听到其他人抱怨我的代码中有太多的方法,难以理解,并且变量名称太长,容易混淆。

有经验的开发者与新手读代码的方式有根本的区别

一个有经验的开发者在阅读代码时不会注重编程语言本身的词汇,而会更专注于代码实际上表达的意思——代码的目的是什么,而不是它是如何做的。

而经验不足的开发者在读取代码时,会试图了解代码的实际结构,初学者则更侧重于实际的语言词汇,即代码中的编程语言试图传达的东西。

对他们来说,一个长变量名称不具备描述性,而且会令人迷惑,因为这些变量名会隐藏一些事实,比如NumberOfCoins字面上来看表示一个整型值,而实际上它不仅仅是一个整型值。他们宁愿看到名为X或编号的变量值。

而一个经验丰富的开发者,不会去关心整数、字符串和其他类型的变量,他们只想知道变量在系统、方法的逻辑上下文中表示什么,而不是变量的类型以及如何工作。

学习阅读

学习阅读代码就像是小孩子在学习阅读文章一样。他们在学习阅读时,不会去注意语法和文章传达的思想,而只会关注词语本身的结构。

又比如,一个经验丰富的音乐家可以很轻松地看懂乐谱,而初学者往往需要根据乐谱来找钢琴上对应的琴键或吉他上对应的品数。

可读性约束因素

你在表达你的想法和意见时,有可能会局限于你本身所掌握的词汇量和阅读量,同样,你代码的可读性也有可能局限于你所使用的编程语言以及编程语境。

来看个例子,下面的汇编代码会在DOS屏幕中输出“Hello World!”:

汇编代码
.model small 
.stack 100h 
  
.data 
msg     db      'Hello world!$' 
  
.code 
start: 
        mov     ah, 09h   ; Display the message 
        lea     dx, msg 
        int     21h 
        mov     ax, 4C00h  ; Terminate the executable 
        int     21h 
  
end start 

语言本身的复杂性,导致编写的代码难以阅读。无论你是个多么优秀的程序员,这种代码的可读性对你来说总会有上限的。

现在再来看看C#中的Hello World:

C#代码
public class Hello1 

   public static void Main() 
   { 
      System.Console.WriteLine("Hello, World!"); 
   } 


下面是Ruby的:

Ruby代码
puts "Hello, world" 

你知道Ruby为什么如此流行了吧!如果你了解Ruby语言中大量的词汇和语法结构,你会发现你可以很清楚地表达一个事物。

我想说的是,你拥有的词汇量越大,你表达的方式就会越简洁,可读性就越高,当然,这是对于那些同样拥有高词汇量的读者来说的。

我们可以得出什么?

从上面的内容中可以得出,我们的词汇量和经验会影响代码的可读性。我们还需要去考虑谁将阅读我们的代码,他们的词汇量和经验如何。

在C#中,通常会争论是否该使用条件运算符,比如我们应该写这样的代码:

C#代码
var nextAction = dogIsHungry ? Actions.Feed : Actions.Walk; 

还是这样的:

C#代码
var nextAction = Actions.None 
if(dogIsHungry) 

   nextAction = Actions.Feed 

else 

   nextAction = Actions.Walk; 


我以前会说第2种方式更好,但我发现我经常会写第1种。现在如果有人问我哪种好,我会告诉他“视情况而定”。我的意思是,你需要看读你代码的人是否了解条件运算符。

编程语言也如同普通语言学习,比如英语,有人认为英语中有大量的词汇和荒谬的语法,应该减少一些,这样学习起来会更容易。但是,如果这样,就难以简洁地传达信息了。

那么你认为,在开发中,应该有一种复杂的编程语言来增强开发者的表达能力,增强代码的简洁性和可读性(当然,这需要足够多的学习成本),还是应该保持简单的编程语言,来写复杂的、较长的代码呢?
分享到:
评论

相关推荐

    提升 Swift 代码可读性的策略与实践

    代码可读性的提升不仅有助于其他开发者更快地理解和使用代码,也使得未来的维护和扩展变得更加容易。记住,代码的可读性是代码质量的重要组成部分,值得每一个 Swift 开发者重视和投入。 通过遵循上述策略和实践,...

    ESLint:ESLint提升代码可读性实践.docx

    ESLint:ESLint提升代码可读性实践.docx

    java代码规范,可读性整理

    良好的代码可读性不仅能够帮助其他开发人员快速理解代码逻辑,还能降低维护成本,提高团队协作效率。以下是根据给定文件内容整理的Java代码规范以及提高代码可读性的知识点: 一、可读性的重要性 代码的可读性在...

    提升Python代码可读性的艺术:最佳实践与技巧

    在软件开发中,代码的可读性至关重要。它不仅影响代码的维护性,还关系到团队协作的效率。Python以其简洁明了的语法而闻名,但即便如此,编写易于...记住,代码可读性的提高不仅可以提升开发效率,还可以降低维护成本。

    统一文件编码和代码风格,提高代码可读性

    标题“统一文件编码和代码风格,提高代码可读性”直指两个核心概念:文件编码和代码风格。这两个方面是软件开发过程中的基础要素,对团队协作和长期项目维护有着深远的影响。 **文件编码**指的是在计算机中存储和...

    提升代码质量:编写可读性强的代码的艺术

    良好的代码可读性能够使其他开发者更快地理解代码的意图和逻辑,从而提高团队协作的效率。此外,良好的可读性也有助于未来的自己回顾和维护代码。因此,编写可读性强的代码是每个程序员应该追求的目标。 编写可读性...

    统一文件编码和代码风格,提高代码可读性(eclipse设置)

    在编程世界中,代码的可读性和一致性是至关重要的,它们直接影响到软件的维护和团队协作的效率。...在实际开发中,我们应该养成良好的编码习惯,充分利用Eclipse的这些功能,提升代码质量,打造更加优秀的软件项目。

    养成C++编程好习惯提高程序可读性_之注释篇

    本文主要探讨C++程序中的注释写作技巧,以提升代码的可读性和可维护性。 #### 注释的重要性 注释在程序中扮演着非常重要的角色,它们可以帮助程序员理解代码的逻辑、目的和行为。随着时间的推移,原始作者可能会...

    编写可读性代码的艺术.docx

    《编写可读性代码的艺术》是一本专注于提升代码质量,特别是强调代码可读性的书籍。在IT行业中,尤其是在软件开发领域,代码的可读性至关重要,因为它直接影响到代码的维护和扩展。良好的代码可读性不仅是对其他...

    提高代码可读性: 命名技术

    以下是一些关于提高代码可读性的命名策略和原则: 1. **明确性**:使用具有明确含义的词语或短语,例如 `elapsedTimeInDays` 而非简单的 `days`。即使名称较长,考虑到现代编辑器的自动补全功能,也不应过于担心。 ...

    如何在C++中实现代码可读性分析工具

    代码可读性的提升是一个持续的过程,需要团队不断地学习和适应。 定期组织代码审查会议,讨论分析工具发现的问题和改进方案。 根据项目经验,不断调整和优化代码分析工具的配置,以提高其有效性和准确性。 通过上述...

    CS-Notes_代码可读性1

    选择有意义的变量和函数名称是提升代码可读性的基础。使用具有表达力的单词可以更好地传达代码的功能,例如 `send` 可以替换为 `deliver`, `dispatch` 等。在循环中,避免使用简单的迭代器如 `i`, `j`, `k`,而应...

    提高代码可读性的10个注释技巧

    ### 提高代码可读性的10个注释技巧 #### 技巧1:逐层注释 逐层注释是指为代码的不同层级提供相应的注释。这种做法有助于增强代码的可读性和可维护性。例如: - **针对每个类**:应该包含类的功能概述、作者信息、...

    提升C语言代码可读性的实用指南与编码实践

    提高C语言代码的可读性是一个涉及多个方面的综合过程。通过遵循良好的命名约定、代码格式化、注释使用、函数设计和模块化等实践,可以显著提高代码的可维护性和可扩展性。随着项目规模的扩大和团队合作的深入,这些...

    学习windows程序设计到color2例子,发现作者写的代码可读性太差,就重新写了个

    在Windows程序设计中,良好的代码可读性是至关重要的,因为这直接影响到代码的维护性和团队协作效率。这里我们以“学习Windows程序设计到color2例子”为例,探讨如何提高代码可读性,并通过重新编写代码来改善原有...

    如何编写可读性好的代码

    通过遵循以上准则,开发者可以养成编写可读性好代码的习惯,使得代码更易于理解、调试和维护,从而提升整个项目的质量和效率。在实际开发中,不断练习和改进这些技巧,将会对个人和团队的工作产生积极影响。

    编写可读性代码的艺术.pdf

    ### 编写可读性代码的艺术 #### 一、引言与背景 在现代软件开发领域,编写高质量、高可读性的代码被视为一种至关...通过学习本书的内容,开发者可以更好地理解代码可读性的重要性,并学会如何有效地提高代码质量。

    编写可读代码的艺术-完整版(带书签)_可读代码_

    《编写可读代码的艺术》是一本专注于提升代码可读性的著作,它强调了代码的可读性对于软件开发的重要性。可读代码不仅有助于团队协作,还能降低维护成本,提高软件质量。以下是书中涵盖的一些关键知识点: 1. **...

    10种让代码更具可读性的方法

    【描述】:作为一个团队的领导者,确保代码可读性是至关重要的。这不仅有助于团队成员之间的协作,还能提高整体开发效率。 【标签】:“编码规范” 【正文】: 在软件开发中,代码可读性是衡量代码质量的重要指标...

Global site tag (gtag.js) - Google Analytics