这篇文章主要介绍“高级PHP工程师必备的编码技巧有哪些”,在日常操作中,相信很多人在高级PHP工程师必备的编码技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”高级PHP工程师必备的编码技巧有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
什么是重构,为什么我们需要它?
重构是指帮助我们写简洁代码的方法和步骤。这对其他可能阅读,扩展和不需要怎么编辑来复用我们代码的其他开发者来说是很重要的。
下面的内容将向你展示一些重构逻辑代码,让它变得更好的例子。
不要在没有单元测试的情况下重构生产环境的代码
我的第一条建议是从不在没有完全进行单元测试的情况下开始重构逻辑代码。我的理由是:你将会以很难有修复的损坏的功能收尾,因为你也很难指出是哪里损坏了。因此,如果你要重构它,从测试开始。保证你准备重构的部分被测试覆盖到。PHPUnit 代码覆盖分析.
从你代码最底层开始重构
看一下下面的图片。这是一个我从 Github 找到的真实的酒店管理系统项目。这是一个开源的项目,可想闭源项目将是糟糕的。
示例:从底层开始重构
你看这个代码,这里用红色标出了三个层级。最底层应该是在第一个 if 条件下被 if/else 包围的申明。通常,最底层是集中在单一逻辑处理,比较容易重构。
让你的方法更短,分解它们到更小的方法或者配置文件 / DB 表
也许在这里,我们可以向下面一样提炼它到一个私有方法:
使你的方法更短
下一个深入点将是上传参数和加载视图。现在,再来看看在重构其他部分之后的 add() 方法。它变得更加简洁,易读,易于测试。
示例:首先重构最底层
if 申明坚持使用大括号
大多数编程语言都支持单行 if 申明,因为这样比较简单,所以一些开发就这么使用,但是这样不便于阅读,而且容易造成问题,因为一个空行就可以中断条件造成崩溃。看下下面两个示例的不同:
示例:使用大括号
别使用魔术数字或者魔术字符串:
下个示例中,你注意到如果房间超过 250 ,会返回一个错误信息。这里,250 就被认为是一个魔术数字。如果你不是写这个的开发者,很难指出这个数字表示什么。
示例:魔术数字
为了重构这个方法,我们可以指出 250 表示最大的房间数。为了替换硬编码,我们可以提取它到一个变量 $maxAvailableRooms 。现在对其他开发者来说,它变得更易被理解。
示例:修复魔术数字
不要使用 else 申明,如果你不是真的需要:
在相同的 availablerooms () 函数中,你注意到那个 if 申明, 其中我们可以很容易摆脱 else 部分,而且逻辑保持一致。
示例:忽略 else 申明
使用能够表示你的方法,变量和测试的命名
在后面的示例中,你会发现酒店管理系统有两个方法分别是 “index () ” 和 “ room_m () ”。对我来说,我搞不清它们的目的是什么。我认为它应该很容易被理解,如果它们的命名都能够描述自己。
示例:不好的方法命名
充分利用你的编程语言的功能
许多开发者不会利用到他们使用的编程语言的全部功能。很多功能能够节约你们的的时间,而且能够让你们的代码更健壮。看下下面的示例,注意如何在更少代码情况下更容易达到相同的结果的,通过使用类型提示。
最后,我想提供一些关于更好编码的快速提示:
使用新的数组形式 [] 替代旧的 array ()。
除非不检查数据类型很重要,否则使用 === 操作符替代 ==。
给公共方法提供简短的描述性名称总是一个好主意。私有方法可以使用更长的名称,因为它们的适用范围比较有限。
仅对实现接口的方法使用通用名称例如 add (),并对单个类方法使用描述性名称例如 addUser () 或 addDocument ()。
从类中删除未使用的方法。
对返回值为 boolean 等的函数使用 is/has 前缀:isAdmin ($user),hasPermission ($user)。
始终在类方法和属性中使用访问修饰符。
注意接口污染:仅使用用户可以公开使用的方法。
在公共方法位于顶部的位置组织类方法。
始终在类中应用单一职责的概念。
到此,关于“高级PHP工程师必备的编码技巧有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。