推荐:《PHP视频教程》
好的开发者通常以代码质量来定义。在软件行业,写好的代码意味着在在测试,更新,扩展或者修复漏洞中省钱。本文,我将向你展示一些现实生活中技巧和想法的例子,来帮助你清理你的逻辑代码,重构它,让它变得更健壮和模块化。这些技巧将不仅仅帮助你重构你的旧代码,而且给你一些如何从现在开始写出简洁代码的好建议。
什么是重构,为什么我们需要它?
重构是指帮助我们写简洁代码的方法和步骤。这对其他可能阅读,扩展和不需要怎么编辑来复用我们代码的其他开发者来说是很重要的。
下面的内容将向你展示一些重构逻辑代码,让它变得更好的例子。
不要在没有单元测试的情况下重构生产环境的代码
我的第一条建议是从不在没有完全进行单元测试的情况下开始重构逻辑代码。我的理由是:你将会以很难有修复的损坏的功能收尾,因为你也很难指出是哪里损坏了。因此,如果你要重构它,从测试开始。保证你准备重构的部分被测试覆盖到。PHPUnit 代码覆盖分析.
从你代码最底层开始重构
看一下下面的图片。这是一个我从 Github 找到的真实的酒店管理系统项目。这是一个开源的项目,可想闭源项目将是糟糕的。
示例:从底层开始重构
你看这个代码,这里用红色标出了三个层级。最底层应该是在第一个 if 条件下被 if/else 包围的申明。通常,最底层是集中在单一逻辑处理,比较容易重构。
让你的方法更短,分解它们到更小的方法或者配置文件/DB 表
也许在这里,我们可以向
搞gaodaima代码下面一样提炼它到一个私有方法:
使你的方法更短
下一个深入点将是上传参数和加载视图。现在,再来看看在重构其他部分之后的 add()
方法。它变得更加简洁,易读,易于测试。
示例:首先重构最底层
if 申明坚持使用大括号
大多数编程语言都支持单行 if 申明,因为这样比较简单,所以一些开发就这么使用,但是这样不便于阅读,而且容易造成问题,因为一个空行就可以中断条件造成崩溃。看下下面两个示例的不同:
示例: 使用大括号
别使用魔术数字或者魔术字符串:
下个示例中,你注意到如果房间超过 250 ,会返回一个错误信息。这里,250 就被认为是一个魔术数字。如果你不是写这个的开发者,很难指出这个数字表示什么。
示例:魔术数字
为了重构这个方法,我们可以指出 250 表示最大的房间数。为了替换硬编码,我们可以提取它到一个变量 $maxAvailableRooms
。现在对其他开发者来说,它变得更易被理解。