写点什么

五大要点,让你掌握代码整洁之道!

  • 2023-02-09
    广东
  • 本文字数:1696 字

    阅读完需:约 6 分钟

整洁的代码是指清晰、方便理解和维护的代码。《代码整洁之道(Clean Code)》的作者罗伯特·C·马丁在书中表示:1、代码逻辑应当直接了当,让缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;2、性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱出来。

整洁的代码是一种编写代码的风格,主要以阅读代码的人为中心,以这种方式编写的代码不仅易于阅读,维护起来也很方便。掌握如何编写整洁代码是软件开发人员的一项基本技能。

《代码整洁之道》中为大家介绍了编写整洁代码的 5 大要点:

一、尊重抽象

书中写到:“如果要确保函数仅做一件事,则需要确保每个函数的语句都位于同一抽象层次。”

马丁认为,分离抽象层次是重构最重要的功能之一,也是最难实现的功能之一。

二、编写整洁的代码,需要投入大量精力

编写代码是一份严肃自律的工作,仅仅依靠理论就编写出整洁的代码是不现实的。编写整洁的代码需要在将“脏代码”变整洁的过程中,发展出个人原则感,书中将其称为“代码感”。它要求“严格使用艰难获得整洁代码的大量小技巧。”

因此,想要让代码实现整洁,程序员需要迭代个人开发以及代码的开发,而这需要花费大量的精力。

正如马丁所说的,“整洁代码并非遵循一组规则编写的。不可能因为学习一套金规玉律就成为软件大师。专业精神和手工艺来自于推动规则形成的价值。”

三、尽量精简代码

书中写道:“函数的首要规则是体积小。第二规则是使其尽可能地变小。”也就是说,函数不仅要自身简短——最好不超过 10 行,最多不超过 20 行;而且要尽可能少地采用参数——最好不要用。

功能单一高效的函数,可以增加代码的易读性。

如果一个大文件包含大量冗长而复杂的代码,则可以将该文件分为多个模块,将模块分为多个函数,再将函数分为多个子函数,直至能都清晰看到代码逻辑和任务。

四、编程是工艺

在编程过程中,程序员需要先确定框架,再反复添加细节,也就是在各个抽象层次上修改、完善和扩展,直至软件达到令人满意的效果。而软件功能永远有修改的空间。

“软件是一门工艺”,这是贯穿全书的中心思想。那么。如何让编程从简单的写代码变成“工艺”呢?

软件开发一般会经历以下阶段:

1、 编写测试代码以验证所需但未实现的功能。

2、编写有效代码(可能不整洁),并通过测试。

3、逐步重构代码(保证每次通过测试),使代码在每次开发迭代中都更加清晰。

这意味着,软件开发是一个不断精进的过程,整洁代码是在开发和实践中实现的,而非简单地一口气创建出来。

正如书中所写的:“不要想着一次性编程后系统就能正确、漂亮地运行。今日的任务仅仅是让程序运行起来,而重构和扩展系统是明天的任务。这是迭代和增量敏捷的本质。”

五、让代码清晰易读

“注释很少却清晰、表达力强的代码优于注释多的混乱、复杂的代码。”因为代码本身的清晰易读,是实现代码整洁的基础。

以上五点就是《代码整洁之道》中,关于如何实现代码整洁的智慧汇聚。自从 2008 年出版以来,本书大受欢迎,大量程序员从中学习到编写整洁代码的方式。但如今十几年过去,随着科学技术的发展,程序员们除了提升自身功力,也可以通过技术工具实现代码的整洁易读。

以 SoFlu 软件机器人为例,它能够在开发者在可视化界面通过拖拽组件输入流程图后,自动生成代码,也就是“业务即图,图即代码”。代码的整洁易读体现在,其代码都是按照平台统一规则生成的——其提供的所有封装组件均需经含超 3000 条检验规则的代码质量检测工具检查——且平台内置了一系列基于 AI 的开发、测试、产品质量分析和安全审核的功能,可在整个应用程序开发生命周期提供“专家级”帮助,不会因为个人编写风格而发生变化,从而减少因为代码输入错误而造成的程序漏洞,并进一步提升开发效率和质量。

对于 SoFlu 软件机器人的创新,中国工程院院士倪光南表示,“SoFlu 软件机器人的价值在于通过标准化、自动化的流程,降低了从开发、测试到运维的门槛,将敏捷管理制度落地,帮助企业做到降本增效,达到提升软件业创新速度的目标。”

而且作为中国原创的软件开发工具,SoFlu 软件机器人对中国企业和开发者的适配性很高,感兴趣的可以点击链接申请 30 天免费试用。试用链接:http://feisuanyz.mikecrm.com/9dW4GeZ

用户头像

飞算云智官方账号 2021-08-10 加入

想了解更多产品内容,欢迎关注微信公众号:飞算SoFlu软件机器人 免费试用申请:http://feisuanyz.mikecrm.com/9dW4GeZ

评论

发布
暂无评论
五大要点,让你掌握代码整洁之道!_SoFlu软件机器人_InfoQ写作社区