作者:读芯术来源:读芯术
犯错乃人之常情。
然而,开发人员所犯的许多错误是可以避免的。如果能避免本文提到的这些常见错误,就能写出更好、更简洁的代码。 这不仅于自身有利,对那些需要查看代码的其他开发人员也有利。
所以避开常见错误不仅仅是为自己——也是帮了团队一个大忙。
综上所述,小芯这次为大家整理了一系列应避免的常见错误:
1. 变量的非描述性命名
好的变量名称非常重要,再怎么强调也不为过。很多时候,你不是唯一一个项目开发人员,其他开发人员也需要了解你编写的代码。
选择好的名字需要时间,但可以节省更多的时间。
2. 幻数和字符串
接着上文变量的非描述性命名,跳到下一项,该项关于不给变量赋值,也被称为幻数或魔法字符串。
维基百科定义: 幻数是唯一值,具有无法解释的意义且多次出现,可以而且应该被命名常量替换。
来看看下面的代码片段:
for ($i = 1$i <= 52$i++) {
...
}
该例中的数字52就是一
for ($i = 1$i <= 52$i++) {
...
}
该例中的数字52就是一个幻数。没有人明白为什么有52这个数字及其代表什么。为什么是52?为什么不能是64?这些是一年中的星期总数吗?
更明晰的方法是:
$cardDeckSize = 52for ($i = 1$i <= $cardDeckSize$i++) {
...
}
现在每个人都会明白这是在循环一副纸牌。该代码给其他开发人员提供了语境。除此之外,更改数值更容易,因为值只在变量中存储一次,不会重复。
幻数经常在程序的不同位置多次使用,因此容易出错。
对于字符串来说也是如此,可采用同种方法:
if (userPasswordIsValid($user,"6yP4cZ".$password)) {
...
}
6yP4cZ是什么?似乎非常随意。
$salt = "6yP4cZ"if(userPasswordIsValid($user, $salt.$password)) {
...
}
啊哈,现在就说得通了!
3. 代码格式混乱
混淆代码的格式通常是那些没有丰富编程经验的人才会犯的。如果问有着多年经验的开发人员,问他们是否认识一个测试人员或数据科学家混淆过代码格式,他们可能都会点头。这是由于缺乏经验——除非使用像Python这样的编程语言,可以避免很多此类失误。
解决格式混乱最常见的方法是使用linter(应用代码校验)。现代集成开发系统(IDEs)也都有可能解决这个问题。有时需要安装一个插件,有时也可以直接完成。
4. 在一个函数中进行太多内容
根据单一职责模式,一个函数只应负责做一件事,只有一件事。笔者看到过太多函数集结了获取、处理并呈现数据三个功能。把这个函数分开处理才是好的编程,一个函数获取数据,一个函数处理数据,另一个函数显示数据。
一个函数只关注一个内容之所以重要,是因为这能让其运行更稳健。比如说,从API(应用程序接口)中获取数据。如果API有变动——例如,出现了一个新版本——那么如果处理代码同属一个函数,那么处理代码过程中断的风险就会更大,这很可能会导致数据显示也被中断。
5. 硬编码
硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中的软件开发行为,而不是从外部获取数据或在运行时生成数据。
硬编码的值不允许更改它们是固定值。硬编码被看作是一种反模式,或者至少是意味着一种坏代码。
硬编码最多的东西,不管是什么(有时甚至有效)原因,都是密码和文件位置。
人们看到的很多硬编码密码场景是用于外部服务或API的身份验证。这些证书往往被硬编码,但并不是最佳做法。
如果发现自己硬编码了很多东西,真的应该仔细审视自己写的代码,因为大多数时候这都不是解决问题的最好方法。
6. 注释掉代码
人们看到过包含多个函数的代码块被注释掉。没人知道为什么它还在那里,而且没人知道这段代码是否还有意义。但是,没人会删除这段代码,而这是开发人员真正应该做的事情。之所以没人删除这段代码,是因为每个人都认为其他人可能会用到。
只需删除那段注释掉的代码即可。即使代码不在最新版本中,如果有人想使用,该代码仍然可以在版本控制中使用。
不过这只是笔者的个人看法。
祝大家避免雷区,代码愉悦~
作者:读芯术 链接:常见的编码错误,再不避免就完了! - 51CTO.COM
来源:读芯术
如有侵权联系删除
最新Java教程全套
第1阶段 :Java基础
添加方法见下面:登录开票系统后依次点击“系统设置-基础编码设置-自定义货物与劳务编码”进入商品编码界面,左侧选择一个商品编码类别,右侧点击“新增商品”按钮。
软件编码是将上一阶段的详细设计得到的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。需注意根据项目的应用领域选择适当的编程语言、编程的软硬件环境以及编码的程序设计风格等事项。
敲代码用的软件有:Android studio,WebStorm,Intellij IDEA,source inshght,Vscode。
1、Android studio
对UI界面设计和编写代码有更好地支持,可以方便地调整设备上的多种分辨率。同样支持ProGuard工具和应用签名。不过,目前版本的Android Studio不能在同一窗口中管理多个项目。
2、WebStorm
jetbrains公司旗下一款JavaScript开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。不过,我的粉丝说这个有点卡,但是功能还是齐全的。
3、Intellij IDEA
Intellij IDEA是java编程语言开发的集成环境,在业界内也被公认是比较好的一个java开发工具。
4、source inshght
一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++,C#和Java等程序的分析。Source Insight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。Source Insight提供了最快速的对源代码的导航和任何程序编辑器的源信息。
5、Vscode
Vscode全称Visual Studio Code,是一款针对于编写现代web和云应用的跨平台源代码编辑器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)