对于程序员最重要的小事——整洁代码

翟文彪 发表于 2022/01/12 21:23:37 2022/01/12
【摘要】 为什么要写整洁代码现在阅读这篇博客的你不论是刚入行的新人还是开发了很多年的老鸟一定碰到过"祖传代码"(也有人称之为屎山,话糙理不糙),并为之头疼。对代码的每次修改都影响其他两三处的代码,每次添加或修改代码,都得对那一堆乱麻了然于心,否则随着这团乱麻越来越大,再也无法清理,最后束手无策。宁愿自己重新写这个功能,也不愿碰它。被祖传代码拖了后腿,开发者又背负 deadline压力,只好继续堆叠混...

为什么要写整洁代码

现在阅读这篇博客的你不论是刚入行的新人还是开发了很多年的老鸟一定碰到过"祖传代码"(也有人称之为屎山,话糙理不糙),并为之头疼。对代码的每次修改都影响其他两三处的代码,每次添加或修改代码,都得对那一堆乱麻了然于心,否则随着这团乱麻越来越大,再也无法清理,最后束手无策。宁愿自己重新写这个功能,也不愿碰它。被祖传代码拖了后腿,开发者又背负 deadline压力,只好继续堆叠混乱。而事实上,制造混乱无助于赶上期限。随着混乱的増加,团队生产力持续下降,以至趋向于零。保持、提高效率的唯一办法,就是始终尽可能的保持代码整洁。

命名

名副其实

  1. 选个好名字需要花时间,但省下来的时间比花掉的多
  2. 如果名称需要注释来补充,那就不算是名副其实

做有意义的区分

  1. 如果名称相异,意义也应该不同
    例:add和insert
    两个均为添加的意思,我们在使用的时候就需要尽量保持使用一致,不能这出使用add下个方法就用insert来表示添加。
  2. 废话都是冗余
    例:Variable一次永远不应该出现在变量名中,Table一次永远不应该出现在表名中

类名、方法名

  1. 类名和对象名应该是名词或名词短语
    例:Customer、WikiPage
  2. 方法名应当是动词或动词短语
    例:postRequest、deletePage

函数

短小

  1. 函数的第一规则是要短小,第二规则是还要更短小
  2. 每行不超过150个字符,函数总长度20行封顶最佳
  3. 应该到达的程度:每个函数都一目了然,每个函数都只说一件事,每个函数都依次把你带到下一个函数。

只做一件事

函数应该做一件事,做好这件事,只做一件事

注释

注释类型

  1. 行注释
    如下图,每行代码都用注释描述清楚做了什么
    image.png
  2. 块注释
    如下图,一个方法上面或某个逻辑操作上添加注释描述
    image.png

好注释

  1. 法律信息
  2. 提供信息的注释
  3. 对意图的解释
  4. 阐释
  5. 解释
  6. TODO注释

坏注释

  1. 喃喃自语、多余的注释、废话注释
  2. 误导性注释
  3. 日志式注释
  4. 注释掉的代码

格式

目的

代码格式关乎沟通,今天编写的功能很有可能在下一版本中被修改,但代码风格和可读性会影响到可维护性和可扩展性。

垂直格式

  1. 在导入声明、每个函数之间都用空白行隔开
  2. 变量声明,变量声明应尽可能靠近其使用位置
  3. 实体声明,实体应该在类的顶部声明
  4. 相关函数,某个函数调用了另外一个,就应该把他们放到一起,而且调用者尽可能放在被调用者上面。

横向格式

使用空格把关系紧密的事物联系到一起,把相关性较弱的分隔开(格式化代码,idea快捷键:ctrl+alt+L)

团队规则

每个程序员都有自己喜欢的格式规则,但如果在一个团队中工作,就是团队说了算。一组开发者应当认同一种格式风格,每个程序员都应该采用那种风格。

总结

image.png
今天的分享内容大部分都来自与《代码整洁之道》这本书,如果想了解更多的整洁代码的方法和技巧,可以深入研究一下这本书,你将会受益匪浅。

以上就是今天分享的内容了,如果觉得有收获可以关注点赞一波。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。