iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >如何写出可读性高的代码
  • 433
分享到

如何写出可读性高的代码

2024-04-02 19:04:59 433人浏览 独家记忆
摘要

本篇内容介绍了“如何写出可读性高的代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!清楚你的优先级代码的写

本篇内容介绍了“如何写出可读性高的代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

清楚你的优先级

代码的写法有很多种:有的运行起来很快,有的只会占用少量内存,有的更容易测试,而有的代码则有很高的可读性。

若要编写思路清晰的代码,第一步就是要将可读性放在第一位。

这也意味着势必要降低其他因素的优先级。如果把所有因素都作为最高优先级,就意味着没有优先级。

培养清晰的意识

想要写出好代码,首先要知道什么才是好代码,想要写出思路清晰的代码,也要了解什么才是思路清晰。多阅读一些质量上乘的代码可以让我们对好代码有个大概的认知。

了解什么才是优秀代码并不能杜绝我们继续写出糟糕的代码,但至少能让我们知道代码的哪里不对劲。

修订

编写代码时,我们最初所想的思路未必清晰。在大多数情况下,只有在第一次完成代码后,我们才能找到更适合的思路。反复阅读已完成的代码才会带来更改的空间。

从解释开始

如果我们还搞不清代码结构,那么可以试着想象一下怎样向他人解释清楚或者把逻辑思路写下来,比如“如果删除账户,那么我们需要跳过 xxx。如果 xxx  的进程还没有结束,那么……”。然后把这套逻辑翻译成代码就很顺了。

写程序时,带入人类沟通方式而不是计算机中的抽象概念要更容易。

注释

代码中的注释可以解释某段代码的用处,或者是程序结构为什么要这么写。

单单是阅读程序并不会告诉我们作者所想就是正确的逻辑。里面可能会有我们不了解的商业规则:美国境外的用户有时会把街道名写到地址栏第一行的最末尾。里面也可能有一些技术小技巧:以某种奇怪的方式构造查询,从而让  Postgres 正确地优化它。诸如此类的代码细节,都是只有了解逻辑背后的背景情况下才能彻底明白为什么要这么写的。

代码不会说话。如果我们决定跳过某些步骤,但又懒得留下注释解释为什么,过两天再回来看这段代码恐怕就真没人知道你当时在想什么了。

部分代码可能读两遍就能想明白个中缘由,但为了保险起见,还是不要给自己的大脑添加不必要的负担。

不要搞混层次

不要搞混函数中的抽象层次。

这段“欢迎”代码层次混乱:

def welcome(self):   results = db.query(     'SELECT EXISTS 1 FROM emails WHERE kind = ? AND user = ?',     'welcome_email', self.user.id,   )   if results[0]:     return   self.send_welcome_email()

这段则是相对整齐的:

def welcome(self):   if not self.has_sent_welcome_email():     self.send_welcome_email()

函数中混乱的抽象层次会让读者思考代码用途和实现方式时被迫进行思维跳跃。当前抽象层次的代码告诉我们代码在做什么,而下一层次的代码则是关于代码要如何实现的。

在例子里的“welcome”函数中,我们首先在数据库中查询是否有过往邮件记录,如果没有则发送一封欢迎邮件。请注意,第二个版本中的“welcome”函数将查询部分放到了另一个函数中,“welcome”中仅仅关注“做什么”,这就是将函数中的抽象层次保持在了同一层,逻辑也更加清晰。不同函数分散在不同抽象层次,将较低层次的实现细节委托给较低抽象层次的函数。

分解函数

有时,分解大体积函数到子函数会更便于阅读。

对于分步骤执行的函数,将函数中的每个步骤都分解成子函数效果会更好。而对于其他如决策类的函数,不同的决策会引向不同的函数:有的部分负责制定决策,有的则是负责执行决策。分解函数的方法有很多种维度,只有通过不断的练习才能一眼看穿哪种才是正确的。

小体积函数有以下几点好处:

  • 每一部分的逻辑都有自己函数名。知道每一块逻辑负责什么更方便我们找到这些函数应当被放在哪

  • 作用域中变量更少

  • 在运行堆栈轨迹和调试时能更清晰地看出函数的作用

  • 小型函数可以被单独测试

其实,没有任何函数计算机也能运行得好好的,函数的存在只是为了服务于程序员,所以还请多多利用它们。

不要分解函数

不要重复你自己(don't repeat yourself, DRY)的意思经常被过度解读。

如今,抽取魔法数常量,以及针对某类特定决策的逻辑副本,已经算是公认的标准答案。此类重复的代码的确不好。而 DRY  的过度解读是指面对区区两行的重复代码,便如临大敌恨不得除之而后快。完全避免任何的重复代码意味着我们最后将面对一堆毫无意义、令人迷惑的代码,其存在只为了防止程序中的两三行重复代码。再加上由于在逻辑上毫不相干的两段代码被迫捆绑在一起,代码也更加难以修改。

判断一段代码的重复是否可容忍很简单:修改 A 段代码,保留 B 段不变,如果程序报错,那么就把 A 和 B  整理到同一段代码;如果无事发生,那么就放着别管。DRY  并不代表我们需要手动压缩代码库,而是为了避免两段代码要依赖于手动的同步。请记住,重复代码和抽象创造并不是同一件事。

避免使用可配置函数

宁可要十个零参数的小函数,也不要一个带十个参数的函数。

诸位对类似的事一定不陌生:初始干净的函数,只在三个不同的地方被调用。而当我们想要在第四处调用时,我们需要做一点小的调整,添加一个参数。但这样第一个  caller 就多了一个新功能,也需要多添加两个可配置的参数。等到第五个用例,我们还要再为它添加独特的参数,以此类推。但反过来我们就又会发现第二个 caller  跑起来太慢了,所以只好再添加另一个参数来跳过部分繁琐的程序。

不知不觉中,我们那个干净整洁的、只负责一件事的函数现在有了五个配置参数,现在能做的事情甚至可以达到 2 的五次方种!

这种情况下,将这一整个复杂的函数拆分成子函数,每个函数只负责各自的事就会好上很多。

但这样以来,又不可避免会出现重复。当这些重复的部分需要保持同步时,我们可以利用 DRY  的思路,将相同的部分抽取到子函数中。这时,做决策和考虑步骤就会容易很多。

请记住,区区几行重复代码是没问题的!像是在不同 list 上跑 for 循环的代码,这类就是可以接受的重复。

这种方法的好处之一是当其中一个用例被删除时,你可以轻松删除掉对应的函数,而不是在复杂函数的逻辑里掘地三尺试图找到对应的选项。只关注某个特定函数的读者也会更容易理解它们的用处。

(注意,当你能负责所有的 caller 时,这种方法才是正确的。如果你的函数只是公共 api  的一部分,那么请不要考虑使用这种方法。因为你并不清楚所有的用例都是什么,也不知道未来会有什么样的用例)

不要过早地进行优化

竞速赛车跑得比普通轿车要快,这点毋庸置疑。但这也是赛车在牺牲了柔软座椅、低噪音,以及车载空调的条件下。如果我们的程序不需要做竞速赛车,那就不要过早地拆掉空调。逐渐熟悉程序的构造,先从编写易于人理解的代码开始,不要一上来就试图挑战计算机的运行速度。

同理,也不应过早开始泛化。没人会在不需要处理大量物品的时候就买入一辆自卸货车,在没有过多需求的时候,我们也不用提前编写多余功能的代码。

“如何写出可读性高的代码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何写出可读性高的代码

本文链接: https://www.lsjlt.com/news/83206.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何写出可读性高的代码
    本篇内容介绍了“如何写出可读性高的代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!清楚你的优先级代码的写...
    99+
    2024-04-02
  • 如何在编写算法时提高代码的可读性?
    在编写算法时,代码的可读性是非常重要的。一方面,良好的可读性可以让代码更易于理解和维护;另一方面,可读性还可以提高代码的可靠性和效率。那么,如何在编写算法时提高代码的可读性呢? 使用有意义的变量名 在编写代码时,尽可能使用有意义的变量...
    99+
    2023-06-04
    日志 shell 编程算法
  • 如何使用 Python 容器提高代码的可读性?
    Python 是一种优秀的编程语言,它拥有丰富的数据类型和容器类型,例如列表、字典、元组和集合等。使用这些容器类型可以大大提高代码的可读性和可维护性,使得代码更易于理解和修改。本文将介绍如何使用 Python 容器提高代码的可读性,并且通过...
    99+
    2023-07-02
    容器 http shell
  • 如何通过php函数提高代码的可读性和可维护性?
    在软件开发中,可读性和可维护性是非常重要的因素,特别是在大型项目中。PHP作为一种广泛使用的编程语言,提供了丰富的函数和特性,可以帮助我们提高代码的可读性和可维护性。本文将介绍一些通过PHP函数实现这一目标的方法,并提供具体的代码示例。使用...
    99+
    2023-10-21
    每个函数只做一件事情。 解释代码的目的
  • 如何写出可维护的css代码
    这篇文章主要介绍了如何写出可维护的css代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、在样式表开头添加一个注释块,用以描述这个样式表的创建日期、创建者、标记等备注信息...
    99+
    2023-06-08
  • jQuery如何维持代码的可读性
    这篇文章给大家分享的是有关jQuery如何维持代码的可读性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。维持代码的可读性伴随着精简代码和使用链式的同时,可能带来代码的难以阅读。添...
    99+
    2024-04-02
  • Vue 开发工具:如何提高代码可维护性和可读性?
    ...
    99+
    2024-04-02
  • Go语言中的框架如何提高代码的可读性?
    Go语言是一门不断发展的编程语言,它的高效性和简洁性使得它越来越受到程序员的青睐。但是,尽管Go语言的代码可读性很高,但是在复杂的项目中,代码的可读性仍然是一个非常重要的问题。在这篇文章中,我们将讨论如何通过使用框架来提高Go语言代码的可读...
    99+
    2023-07-19
    关键字 框架 数组
  • 如何写出高性能及线程安全的Python代码
    如何写出高性能及线程安全的Python代码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。6岁时,我有一个音乐盒。我上紧发条,音乐盒顶上的芭蕾舞女演员就会旋转起来...
    99+
    2023-06-17
  • 如何写出高质量JS代码
    这篇文章主要介绍如何写出高质量JS代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、如何书写可维护性的代码当出现bug的时候如果你能立马修复它是最好的,此时解决问题的四路在你脑中...
    99+
    2024-04-02
  • 如何编写高性能的Java代码
    这篇文章主要介绍了如何编写高性能的Java代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、并发Unable to create new native thread ……...
    99+
    2023-06-02
  • PHP8中如何使用Named Arguments来提高代码可读性?
    PHP8中如何使用Named Arguments来提高代码可读性?随着PHP8的发布,一个非常令人兴奋的新功能是Named Arguments(命名参数)。Named Arguments允许我们在函数调用时,通过给参数指定名称来传递值。这个...
    99+
    2023-10-22
    - PHP - Named Arguments - 代码可读性
  • Go、Django和函数编程:如何提高代码可读性和可维护性?
    在编写代码时,我们通常会考虑如何提高代码的可读性和可维护性。这对于长期维护和开发一个项目来说非常重要。在本文中,我们将探讨一些技术,如Go、Django和函数编程,如何帮助我们提高代码的可读性和可维护性。 Go:简洁而高效的代码 Go是一...
    99+
    2023-10-08
    django 函数 编程算法
  • Java 接口和数组响应:如何提高代码的可读性?
    Java 作为一种广泛应用的编程语言,其面向对象的特性使得其拥有着强大的可扩展性和可维护性。在 Java 中,接口和数组响应是两个非常重要的概念,它们可以帮助我们提高代码的可读性。本文将介绍接口和数组响应的概念以及如何在 Java 中应用...
    99+
    2023-06-14
    接口 数组 响应
  • 教你如何写出可维护的JS代码
    目录什么是可维护代码代码约定1.可读性2.变量和函数的命名3.变量类型透明松散耦合1.解耦html/JavaScript2.解耦css/JavaScript3.解耦应用逻辑/事件处理...
    99+
    2024-04-02
  • 使用PHP trait DTO提高代码可读性与可维护性
    在开发过程中,我们经常会遇到需要处理数据传输对象(DTO)的情况。DTO是一个用于封装数据的简单类,通常用于在不同的层之间传递数据。传统上,开发人员会在每个DTO类中重复编写setter和getter方法以及其他常用方法。这样做不仅增加了代...
    99+
    2023-10-21
    PHP dto trait 可维护性 可读性
  • 如何利用PHP7的类型声明编写可读性更强的代码?
    如何利用PHP7的类型声明编写可读性更强的代码?随着PHP7的发布,类型声明成为了PHP的一个重要特性。通过类型声明,我们可以在函数和方法中明确指定输入参数和返回值的数据类型。这可以有效地提高代码的可读性和健壮性。在本文中,我们将介绍如何使...
    99+
    2023-10-26
    代码 PHP 可读性 类型声明
  • C#开发建议:提高代码可读性与可维护性
    C#开发建议:提高代码可读性与可维护性在软件开发过程中,代码的可读性和可维护性是至关重要的因素。良好的代码可读性能够帮助团队成员更好地理解代码,提高开发效率;而可维护性则能够确保代码的易修改性和健壮性。本文将针对C#开发,提出一些建议,以帮...
    99+
    2023-11-22
    重构 代码规范 注释
  • PHP 函数如何提升代码的可读性和可维护性?
    php 函数通过将代码块分组,增强了代码的可读性和可维护性。其优点包括:可复用性:减少重复代码,节省时间。模块化:将代码组织成逻辑块,方便维护和更新。可读性:函数名称描述功能,使代码易于...
    99+
    2024-04-18
    php 代码可读性
  • PHP 函数对提高代码可读性和可维护性的影响
    使用 php 函数可以提升代码可读性和可维护性。函数优势包括:可重用性:避免重复代码。模块化:将代码细分为易于管理的块。可维护性:轻松修改特定功能。代码可读性:命名函数块,提高代码描述性...
    99+
    2024-04-13
    php 代码可读性
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作