高级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工程师必备的编码技巧及思维的具体内容,更多请关注百分百源码网其它相关文章!