page contents

代码不规范,同事两行泪,撸码七宗罪!

你认为还有什么错误需要加在这个列表里面,在评论中写出来,让我知道。

attachments-2020-07-oZlwOcJs5f0570a9d866f.png

编程江湖中一直盛传着一个段子,那就是要问程序员最讨厌哪 4 件事?那必须是:写注释、写文档、别人不写注释、别人不写文档。

以下为译文:

还有什么事情比自己动手去创造更有趣?看着你发明的东西慢慢地进入生活?我们人类,是万物之主,是造物主。

但是在数字化时代,发明创造的方式发生了变化。现在,我们都创造数字化产品。我们建网站、写软件来满足我们的需求。虽然我们创造不再依赖于我们的创造力,但是我们仍然可以与艺术家其名。

编程的世界非常地宽广,涉及重多领域,我们有很多选择。你可以选择使用函数式编程,还是使用面向对象编程?你可以选择做服务端还是客户端?那么,你心中已经有抉择了吗?下面,有 100 种编程语言,可以用来实现你的需求。

语言、框架、库都在逐渐增多。你可以通过多种方式完成相同的代码功能。虽然这些语言可能差别很大,但是大多数语言都遵循相同的思想。所以,他们也会出现相同的问题。

以下是编程七宗罪,你可以想办法避免他们发生。虽然我不是基督教徒,但是我也喜欢定义七宗罪。


1、协作时不使用版本控制

上帝保佑,我们有版本控制工具。如我所说,如果我们没有像 Git 这种版本管理工具,代码的世界将变得异常艰难。版本控制让我们在协作的时候,修改或移动变得非常简单。

想像一下,我们坐在电脑前,手动检查并合并文件,为不同的版本保存不同的文件夹。这样做是非常低效的,并且很不可靠。幸运的是,我们有 Git 和其它版本控制工具,来帮我们完成这个事情。

我参与过没有版本控制的项目,那简直就是一场恶梦。


2、不使用合适的变量命名

我不知道为什么,身边总有一些人,使用很短/随机的名称来给变量命名。当你的项目只有 10-20 行代码,或者只是代码片段时,你可以使用这种方式进行命名,但是在大项目中,不要这么做。不合适的命名,对可读性和效率有致命的影响。

一个命名的简单规则:你变量的名称可以自解释。当你看到它们的时候,就知道他们的用途。但是不要使用太长的名字来命名!保持命名简短,并具有可读性。

让我们来找一找,你的代码中用 a , b, c 命名的代码。


3、使用过多的依赖,不经思考直接升级

GitHub 上面有多少个开源项目? 已经多到我们数不清了。这些开源库使开发者的工作变得更加容易,节约我们的时间。

但是使用过多的依赖库会对整个项目带来风险。依赖库越多,就意味着编译时间和运行时间的加长。我们应该在我们需要的地方添加对应的依赖库,而不要为了使用它而使用它。

所以,在升级之前,我们需要经常去检查依赖库/插件的支持情况。我曾经有一次,升级了 React,而没有去检查它对其它库的影响。到如今,我依然认为这是我生命中最严重的错误之一。


4、不自解释的代码

值得一提的是,没有人想阅读整个方法/文件来理解它是干什么用的。使用最少的代码来实现功能,但是不要让别人或者是以后的自己,讨厌你自己写的东西。

我们应该一直尝试去写自解释的代码。我们应该让我们的代码,在第一次被看到的时候,就知道它是干什么用的。要完成这样的代码,我们需要进行正确的代码重构,统一的语法,适当的变量名称。必要的时候,还要给代码添加注释。

当然,也不要过多地书写注释,你不需要通过注释解释每一行代码。最好用 1-2 行注释,写清楚重要部分的概述或说明。


5、格式不一致

这个和第四点非常相近,格式不一致也会对可读性和生产效率带来巨大的影响。在项目中,选择一个特定的命名规范并一直坚持下去,不要在中途改变它们。我个人更喜欢用大写字母来命名文件,驼峰命名法来命名方法、变量等。但这些也会根据不同的语言而作出改变。

没有比开发者格式化代码更糟糕的事情。

此外,在代码中,我们还需要使用相同的缩进格式。根据你的代码样式和选择的语言,使用 2/4/8 个空格来做缩进。但无论你使用什么样的格式,请坚持在整个项目中一直使用。


6、不处理错误

畏惧它。逃避它。Bug 终会降临! —— 灭霸(译者注:指 Bug 如影随形,不休不止,像诅咒一样。)

事情是这样的,无论你是多么优秀的程序员,你的代码都有可能会出现问题,除非你写的是像如下的这种代码:

console.log("Yey")
printf("Wow")

这些错误有可能是因为 API 错误引起的,也有可能是超时,类型错误,空值,或者只有上帝知道的原因。通常,这些会让你的代码出现问题。

在不同的语言中,处理错误的方式有很大的差异。但是一般情况下,在访问数据之前都需要判断数据否为空。在我的经验中,空指针比其它错误都多。

所以,在执行数据处理的相关需求时,建议将代码放到 try-catch 中,并处理对应的异常,最后,不要忘记告诉用户哪里出现了问题。如果在用户按下按钮和按键的时候不给用户反馈,用户将不知道发生了什么。给用户错误提示,并告诉它下一步怎么做。时刻记住灭霸的话。


7、使用不当的数据类型/数据结构

在不同的语言中,数据类型要求不一样,强类型语言非常严格,而弱类型可以随意使用。强类型语言在编译时就会告诉你错误,而其它语言需要在运行时,才能知道错误。

举个例子,我们将数值存储在整型/符点型/双精度符点型的变量中,并且与存储在字符串中的变量进行比较时,有的语言会进行自动类型转换,然后进行比较,而有的语言并不会。

结语

编程七宗罪,让人不爽。我们需要避免出现。

这个仅仅是在编程中出现的常见错误。你很难看到,一个程序员,在他的程序中出现这些问题。但这也正如圣经中的七宗罪一样,不仅是这些问题。它们是原罪,可以组合成不同的错误。

你认为还有什么错误需要加在这个列表里面,在评论中写出来,让我知道。

Happy Coding!


想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-06-UGo8orhL62a433909572d.jpeg

  • 发表于 2020-07-08 15:07
  • 阅读 ( 647 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章