正在寻找软件开发人员工作?首先必须学习如何编写清晰的代码

我们生活在一个依赖软件的世界里,从电视到iPad,从洗衣机到微波炉,从手机到物联网设备。要运行软件并执行某些功能,需要数百万行代码。编码是一个迭代过程,程序员需要对代码进行持续的修改,添加新功能等。随着代码复杂性的增加,清晰的编码技术变得越来越重要。在本文中,我们将介绍这一点!在这篇文章中,我参考了罗伯·塞西尔·马丁(Rober Cecil Martin),也称Uncle Bob’s “Clean Code”。我强烈建议任何寻找软件工程师职业的人读这本书。

清晰的代码适用于所有编程语言。在本文中,我们利用 Golang 以演示其功能。如果您更喜欢Java,请参阅书中的示例。

让我们开始吧!

备注

备注的基本功能是为了解释无法自身解释的代码。评论对于调试和分析代码、解决问题以及创建文档可能非常有用。当新团队替换前一个团队并开始处理当前代码时,它们是非常有用的。

要记住的一个很好的指导方针是,只有当评论有用时,它才应该存在。

在撰写备注时,您还应该谨慎行事。不适当陈述的一些例子包括:

无意义的评论

作者信息、创建和更新日期应由版本控制系统处理,而不是代码本身。如果不这样做,将导致应用程序中出现更多无意义的代码行,这很可能导致以下问题。

过时的评论

您当前下的评论会在某个时候过时,所以一定要避免误导性的评论。

措辞不当和多余的评论

当代码不言自明时,注释是不必要的。这样做只会添加不必要的代码行,并强制要求开发人员阅读他们不需要阅读的内容。

在写这些评论之前,先问自己,“这些评论是必要的吗?”如果是,请务必尽可能清楚地写出来。请记住,备注应该对您有所帮助,而不是让您更感到困惑。

注释代码

有时,我们会添加一个完整的代码块作为注释,以便以后使用它。

但是,这些注释的代码几乎从未被使用过。因此,建议避免发表这样的声明。

换个方式想:如果那段代码如此重要,它就不应该是注释,不是吗?

名称

要生成干净且易于理解的代码,应定义变量、函数、类、接口等的合理名称。函数、类或变量的名称还应解释其在代码中的存在和价值。简单地说,优秀的名称是我们为提高代码质量而进行的投资。

有意义的名称

有意义的名称使代码更易于访问、更易于理解且美观。

项目模式

在选择名称时遵循项目惯例是一种明智的做法。如果您在创造一个与用户对象交流的方法,例如,使用“获取成员名”而不是“获取用户名”,这只会使读者感到困惑。因此,在命名代码中的组件时,请格外小心。

不明确的名称

名称应正确传达变量是什么或函数执行什么。宁愿开发长名称,而不是短且不清楚的名称。

效果名称

名称应正确解释元素的行为和用途。

函数

函数在编程领域至关重要。因此,像Elixir,Scala,Kotlin,Swift,Haskell, Golang, 等函数式语言已经接受了这些功能。

几乎每个程序员都熟悉函数的基础知识。但是,这里有一些提示可以帮助您构建更清晰,更高效的函数:

简短

您有没有遇到过一个有几十万行的函数?

函数应该足够简短,以便读者可以一目了然地理解其目的。但是,它应该有多简短?我们不会在这里强制指定多少行,但是如果您的函数有超过 20 行代码,请考虑将其重写为更小的代码。

避免逻辑中的 if、else 和while是缩短代码的一种实用方法。

记下函数的顺序。代码的使用者在解构函数责任时,必须像日记或小说一样快速地阅读它。因此,请尝试从上到下保持代码的可读性。

单一职责

单一职责原则是函数 (SRP) 中的一个重要思想。OOP 中的第一个 SOLID 原则就是这个概念。它表示每个职能都应该有一个必须明确界定和执行的具体职责。

参数

具有多个参数的函数很难被理解。

这些功能使代码审查过程变得耗时且杂乱无章。

为避免这种情况,请确保使用少量参数来明确指示函数的目标。

请记住应用相同的逻辑来返回参数。

清晰的代码有许多优点。对于初学者来说,它有助于有效的代码审查。因此,您的同事将以最少的工作量理解代码、数据流和底层逻辑。此外,新员工可轻松学习旧代码,从而帮助入职过程更加顺利。开发人员可能需要几个月的时间来添加新功能或修复纠缠不清的代码中的问题。但是,清晰的编码使工作变得更加容易。因此,学习如何编程清晰的代码可以为您在远程软件开发人员的求职中节省大量时间,金钱和资源!

祝您编码愉快!

您想在舒适的家中申请美国的远程软件工作吗?如果是这种情况,领类可快速地为您提供帮助。更多信息可以在我们的领类页面上找到!

加入世界顶尖前 1% 的自由领人才网络

领类将顶尖前1%的自由领程序员和设计师与世界各地领先品牌以及初创企业联系起来。我们专注于需要高技术人才和问题解决者的复杂且具有挑战性的一级项目。
经验丰富的项目经理正在审查从领类上聘请的自由软件工程师在软件开发项目上的进展 blog.join_marketplace.your_way经验丰富的自由 UI/UX 分析师在舒适的家中远程工作,并领类上完成 UI/UX 和产品设计项目 blog.join_marketplace.freelance_jobs