189 8069 5689

web开发中常见的编码错误有哪些

这篇文章主要介绍“web开发中常见的编码错误有哪些”,在日常操作中,相信很多人在web开发中常见的编码错误有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web开发中常见的编码错误有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司是专业的昌乐网站建设公司,昌乐接单;提供成都网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行昌乐网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1. 变量的非描述性命名

好的变量名称非常重要,再怎么强调也不为过。很多时候,你不是唯一一个项目开发人员,其他开发人员也需要了解你编写的代码。

选择好的名字需要时间,但可以节省更多的时间。

2. 幻数和字符串

接着上文变量的非描述性命名,跳到下一项,该项关于不给变量赋值,也被称为幻数或魔法字符串。

维基百科定义:

幻数是唯一值,具有无法解释的意义且多次出现,可以而且应该被命名常量替换。

来看看下面的代码片段:

for ($i = 1; $i <= 52; $i++) {  ...  }

该例中的数字52就是一个幻数。没有人明白为什么有52这个数字及其代表什么。为什么是52?为什么不能是64?这些是一年中的星期总数吗?

更明晰的方法是:

$cardDeckSize = 52;for ($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. 注释掉代码

人们看到过包含多个函数的代码块被注释掉。没人知道为什么它还在那里,而且没人知道这段代码是否还有意义。但是,没人会删除这段代码,而这是开发人员真正应该做的事情。之所以没人删除这段代码,是因为每个人都认为其他人可能会用到。

只需删除那段注释掉的代码即可。即使代码不在新的版本中,如果有人想使用,该代码仍然可以在版本控制中使用。

到此,关于“web开发中常见的编码错误有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


当前名称:web开发中常见的编码错误有哪些
文章网址:http://cdxtjz.com/article/iechjc.html

其他资讯