php后端开发技能树,值得一看!高等PHP工程师必备的编码技能及头脑_后端开发...

本文探讨了重构在软件开发中的重要性,特别是在PHP项目中。作者强调了在重构之前进行单元测试的必要性,提倡从代码的底层逻辑开始重构,并给出了具体的实例。此外,他还提出了一些最佳实践,如避免使用魔法数字和else语句,使用有意义的命名,以及充分利用编程语言的功能。重构的目标是创建更简洁、模块化和易于理解的代码,以提高代码质量和团队合作效率。
摘要由CSDN通过智能技术生成

引荐:《PHP视频教程》

好的开发者一般以代码质量来定义。在软件行业,写好的代码意味着在在测试,更新,扩大或许修复破绽中省钱。本文,我将向你展现一些现实生活中技能和主意的例子,来协助你清算你的逻辑代码,重构它,让它变得更硬朗和模块化。这些技能将不仅仅协助你重构你的旧代码,而且给你一些怎样从如今入手下手写出简约代码的好发起。

什么是重构,为何我们须要它?

重构是指协助我们写简约代码的要领和步骤。这对其他大概浏览,扩大和不须要怎样编辑来复用我们代码的其他开发者来讲是很主要的。

下面的内容将向你展现一些重构逻辑代码,让它变得更好的例子。

不要在没有单元测试的情况下重构生产环境的代码

我的第一条发起是从不在没有完整举行单元测试的情况下入手下手重构逻辑代码。我的理由是:你将会以很难有修复的破坏的功用扫尾,由于你也很难指出是那里破坏了。因而,假如你要重构它,从测试入手下手。保证你预备重构的部份被测试掩盖到。PHPUnit 代码掩盖剖析.

从你代码最底层入手下手重构

看一下下面的图片。这是一个我从 Github 找到的实在的旅店治理体系项目。这是一个开源的项目,可想闭源项目将是蹩脚的。

d667cc19fb147bad9940633238a31abb.png

示例:从底层入手下手重构

你看这个代码,这里用赤色标出了三个层级。最底层应当是在第一个 if 前提下被 if/else 围困的说明。一般,最底层是集合在单一逻辑处置惩罚,比较轻易重构。

让你的要领更短,剖析它们到更小的要领或许配置文件/DB 表

或许在这里,我们可以向下面一样提炼它到一个私有要领:

ff4d1d22dedf878e6477eef383124a55.png

使你的要领更短

下一个深切点将是上传参数和加载视图。如今,再来看看在重构其他部份以后的 add() 要领。它变得越发简约,易读,易于测试。

5eceefb5c2d3b77a71cf2ec7696b6576.png

示例:起首重构最底层

if 说明对峙运用大括号

大多数编程言语都支撑单行 if 说明,由于如许比较简单,所以一些开发就这么运用,然则如许不便于浏览,而且轻易形成问题,由于一个空行就可以中断前提形成崩溃。看下下面两个示例的差别:

1dadcfddd5078c32ceb2efc49310216a.png

示例: 运用大括号

别运用把戏数字或许把戏字符串:

下个示例中,你注重到假如房间凌驾 250 ,会返回一个错误信息。这里,250 就被以为是一个把戏数字。假如你不是写这个的开发者,很难指出这个数字示意什么。

bb44fcf71d7ef2f55f9e7c0d45299cfd.png

示例:把戏数字

为了重构这个要领,我们可以指出 250 示意最大的房间数。为了替换硬编码,我们可以提取它到一个变量 $maxAvailableRooms 。如今对其他开发者来讲,它变得更容易被明白。

ac1a2d7965d2d1adb2beb7b08de16958.png

示例:修复把戏数字

不要运用 else 说明,假如你不是真的须要:

在雷同的 availablerooms() 函数中,你注重到谁人 if 说明, 个中我们可以很轻易挣脱 else 部份,而且逻辑保持一致。

3b8dae8b8dbe0a33097956659ea2a343.png

示例:疏忽 else 说明

运用可以示意你的要领,变量和测试的定名

在后面的示例中,你会发明旅店治理体系有两个要领分别是“ index() ”和“ room_m() ”。 对我来讲,我搞不清它们的目标是什么。我以为它应当很轻易被明白,假如它们的定名都可以形貌本身。

b3ac438f1a1191f8eee435ed7081a687.png

示例:不好的要领定名

充分运用你的编程言语的功用

许多开发者不会运用到他们运用的编程言语的悉数功用。许多功用可以勤俭你们的的时候,而且可以让你们的代码更硬朗。看下下面的示例,注重怎样在更少代码情况下更轻易到达雷同的效果的,经由过程运用范例提醒。

8411e99d674ca2501b78f6f163995a49.png

1971ce9c57509ef29412ccb3dab241b4.png

末了,我想供应一些关于更好编码的疾速提醒:

运用新的数组情势 [ ] 替换旧的 array()。

除非不搜检数据范例很主要,不然运用 === 操作符替换 ==。

给大众要领供应简短的形貌性称号老是一个好主意。私有要领可以运用更长的称号,由于它们的适用范围比较有限。

仅对完成接口的要领运用通用称号比方 add(),并对单个类要领运用形貌性称号比方 addUser() 或 addDocument()。

从类中删除未运用的要领。

对返回值为 boolean 等的函数运用 is/has 前缀:isAdmin($user),hasPermission($user)。

一直在类要领和属性中运用接见修饰符。

注重接口污染:仅运用用户可以公然运用的要领。

在大众要领位于顶部的位置构造类要领。

一直在类中运用单一职责的观点。

原文地点:https://medium.com/@maladdinsayed/advanced-techniques-and-ideas-for-better-coding-skills-d632e9f9675

译文地点:https://learnku.com/php/t/37900

以上就是值得一看!高等PHP工程师必备的编码技能及头脑的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值