好的开发人员通常由代码质量来定义。在软件行业,编写代码意味着节省测试、更新、扩展或修复漏洞的资金。在本文中,我将向您展示一些现实生活中的技巧和想法的例子,以帮助您清理您的逻辑代码,重构它,并使它更加健壮和模块化。这些技巧不仅能帮你重构旧代码,还能给你一些关于今后如何写出简洁代码的好建议。
什么是重构,为什么我们需要重构?重构是指帮助我们编写简洁代码的方法和步骤。这对其他不需要编辑就可以阅读、扩展和重用我们代码的开发人员来说很重要。以下内容将向您展示一些重构逻辑代码以使其更好的例子。不要在没有单元测试的情况下重构生产环境代码。
我的第一个建议是,在没有完成单元测试的情况下,永远不要开始重构逻辑代码。我的理由是:你最终会得到一个难以修复的受损功能,因为你很难指出它是在哪里受损的。所以,如果你想重构它,从测试开始。确保测试涵盖了您将要重构的部分。PHPUnit的代码覆盖率分析。
从代码底部重构。请看下图。这是我从Github找到的一个真正的酒店管理系统。管理系统项目。这是一个开源项目,但是关闭这个项目是不好的。例子:从底层重构。看这个代码,有三级用红色标注。底层应该是第一个if条件下的if/else包围的语句。通常底层侧重于单逻辑处理,更容易重构。让你的方法变得更短,并把它们分解成更小的方法或概要文件/数据库表。也许在这里,我们可以将其细化为一个私有方法,如下所示:缩短你的方法。下一个切入点将是上传参数和加载视图。现在,我们来看看重构其他部分后的add()方法。变得更加简洁,易读,易于测试。
例子:先重构底层。if语句坚持使用大括号。大多数编程语言都支持单行if声明,因为它比较简单,所以有些开发人员使用它,但是它不方便阅读,容易引起问题,因为空行会中断条件,导致崩溃。看看下面两个例子的区别:示例:使用大括号。不要使用幻数或幻弦:在下一个示例中,您注意到如果房间超过250,将返回一条错误消息。在这里,250被视为一个神奇的数字。如果你不是写这个的开发者,很难指出这个数字是什么意思。例子:幻数。要重构这个方法,我们可以指出250代表最大房间数。为了替换硬编码,我们可以将其提取到变量$maxAvailableRooms中。现在,它变得更容易被其他开发者理解。例子:固定幻数。如果你真的不需要,不要使用else语句:在同一个availablerooms()函数中,您会注意到if声明,在该声明中,我们可以轻松地去掉else部分并保持逻辑一致。示例:忽略else声明。使用能够代表您的方法、变量和测试的名称。在下面的例子中,你会发现酒店管理系统中有两种方法:“index()”和“room_m()”。对我来说,我不知道他们的目的是什么。我觉得如果他们的名字能描述自己的话应该很好理解。