高级 PHP 工程师必备的编码技巧及思维

高级 PHP 工程师必备的编码技巧及思维

大家好,又见面了,我是全栈君。

好的开发者通常以代码质量来定义。在软件行业,写好的代码意味着在在测试,更新,扩展或者修复漏洞中省钱。本文,我将向你展示一些现实生活中技巧和想法的例子,来帮助你清理你的逻辑代码,重构它,让它变得更健壮和模块化。这些技巧将不仅仅帮助你重构你的旧代码,而且给你一些如何从现在开始写出简洁代码的好建议。

 

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

重构是指帮助我们写简洁代码的方法和步骤。这对其他可能阅读,扩展和不需要怎么编辑来复用我们代码的其他开发者来说是很重要的。

 

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

 

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

我的第一条建议是从不在没有完全进行单元测试的情况下开始重构逻辑代码。我的理由是:你将会以很难有修复的损坏的功能收尾,因为你也很难指出是哪里损坏了。因此,如果你要重构它,从测试开始。保证你准备重构的部分被测试覆盖到。PHPUnit 代码覆盖分析.

 

从你代码最底层开始重构

看一下下面的图片。这是一个我从 Github 找到的真实的酒店管理系统项目。这是一个开源的项目,可想闭源项目将是糟糕的。

高级 PHP 工程师必备的编码技巧及思维

示例:从底层开始重构

你看这个代码,这里用红色标出了三个层级。最底层应该是在第一个 if 条件下被 if/else 包围的申明。通常,最底层是集中在单一逻辑处理,比较容易重构。

 

让你的方法更短,分解它们到更小的方法或者配置文件 / DB 表

也许在这里,我们可以向下面一样提炼它到一个私有方法:

高级 PHP 工程师必备的编码技巧及思维

使你的方法更短

 

下一个深入点将是上传参数和加载视图。现在,再来看看在重构其他部分之后的 add() 方法。它变得更加简洁,易读,易于测试。

高级 PHP 工程师必备的编码技巧及思维

示例:首先重构最底层

 

if 申明坚持使用大括号

大多数编程语言都支持单行 if 申明,因为这样比较简单,所以一些开发就这么使用,但是这样不便于阅读,而且容易造成问题,因为一个空行就可以中断条件造成崩溃。看下下面两个示例的不同:

高级 PHP 工程师必备的编码技巧及思维

示例:使用大括号

 

别使用魔术数字或者魔术字符串:

下个示例中,你注意到如果房间超过 250 ,会返回一个错误信息。这里,250 就被认为是一个魔术数字。如果你不是写这个的开发者,很难指出这个数字表示什么。

高级 PHP 工程师必备的编码技巧及思维

示例:魔术数字

 

为了重构这个方法,我们可以指出 250 表示最大的房间数。为了替换硬编码,我们可以提取它到一个变量 $maxAvailableRooms 。现在对其他开发者来说,它变得更易被理解。

高级 PHP 工程师必备的编码技巧及思维

示例:修复魔术数字

 

不要使用 else 申明,如果你不是真的需要:

在相同的 availablerooms () 函数中,你注意到那个 if 申明, 其中我们可以很容易摆脱 else 部分,而且逻辑保持一致。

高级 PHP 工程师必备的编码技巧及思维

示例:忽略 else 申明

 

使用能够表示你的方法,变量和测试的命名

在后面的示例中,你会发现酒店管理系统有两个方法分别是 “index () ” 和 “ room_m () ”。对我来说,我搞不清它们的目的是什么。我认为它应该很容易被理解,如果它们的命名都能够描述自己。

高级 PHP 工程师必备的编码技巧及思维

示例:不好的方法命名

 

充分利用你的编程语言的功能

许多开发者不会利用到他们使用的编程语言的全部功能。很多功能能够节约你们的的时间,而且能够让你们的代码更健壮。看下下面的示例,注意如何在更少代码情况下更容易达到相同的结果的,通过使用类型提示。

 

高级 PHP 工程师必备的编码技巧及思维

高级 PHP 工程师必备的编码技巧及思维

最后,我想提供一些关于更好编码的快速提示:

 

  • 使用新的数组形式 [] 替代旧的 array ()。

  • 除非不检查数据类型很重要,否则使用 === 操作符替代 ==。

  • 给公共方法提供简短的描述性名称总是一个好主意。私有方法可以使用更长的名称,因为它们的适用范围比较有限。

  • 仅对实现接口的方法使用通用名称例如 add (),并对单个类方法使用描述性名称例如 addUser () 或 addDocument ()。

  • 从类中删除未使用的方法。

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

  • 始终在类方法和属性中使用访问修饰符。

  • 注意接口污染:仅使用用户可以公开使用的方法。

  • 在公共方法位于顶部的位置组织类方法。

  • 始终在类中应用单一职责的概念。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111850.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 拉格朗日乘数法求得的是最值还是极值_微观经济拉格朗日方程求极值

    拉格朗日乘数法求得的是最值还是极值_微观经济拉格朗日方程求极值一、拉格朗日乘数法简介在日常的生产生活中,当我们要要安排生产生活计划的时候,常常会在现实物理资源约束的条件下,计算得到收益最大或者损失最小的计划;像这种对自变量有附加条件的极值称为条件极值;拉格朗日乘数法是一种直接计算解决条件极值的方法;拉格朗日乘数法的定义如下:设有f(x,y),φ(x,y)f(x,y),\varphi(x,y)f(x,y),φ(x,y)两个函数,并且两者都有一阶连续偏导数,则做拉格朗日函数为F(x,y,λ)=f(x,y)+λφ(x,y)F(x,y,\lambda)

    2025年5月23日
    0
  • 用树莓派做一个人脸识别开锁应用「建议收藏」

    用树莓派做一个人脸识别开锁应用「建议收藏」作者:eckygao,腾讯CSIG云产品部1.案例概述1.1背景实现一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。总的来说,需求描述简单,但由于约束比较多,在架构与选型上…

    2022年5月30日
    30
  • 短视频解析接口搭建_小程序 开发文档

    短视频解析接口搭建_小程序 开发文档接口开发文档去水印接口请求地址:https://api.srvv.cn/api/video/32AFD1F6A24A3A49921AB80AE1C58035ED01CC5DF282B23D79/2/?url={短视频链接,记住是纯链接}接口申请地址:api.srvv.cn请求方式:GET返回格式:JSON请求参数说明:字段必填类型说明url是String短视频分享的URL返回参数说明:…

    2022年10月3日
    0
  • mac phpstorm 激活码2021(最新序列号破解)

    mac phpstorm 激活码2021(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    420
  • idea2021全家桶激活破解方法

    idea2021全家桶激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    203
  • 手机和电脑将XPS转换成PDF的免费方法

    手机和电脑将XPS转换成PDF的免费方法如何将XPS转成PDF?最近有小伙伴收到很多后缀为XPS的文件,不知道如何打开,更不懂怎么样使用,如果能转成常用的PDF格式就好了。打开XPS文件最简单的方法当然还是安装对应的阅读器,比如XPSViewer;除此之外其实很多PDF阅读器也是可以直接打开XPS文档的,比如极速PDF阅读器。用以上任意一种方式打开XPS文件后,利用PDF生成的其中方式之一,将文件进行打印并选择PDF虚拟打印机就能直接将XPS文件以PDF格式进行保存了。这种方式一般适用于电脑端,毕竟手机无法进行这种虚拟打印机的操作。但如

    2022年5月4日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号