返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >跟老大讨论PHP的示例分析
  • 137
分享到

跟老大讨论PHP的示例分析

2023-06-17 10:06:15 137人浏览 独家记忆
摘要

本篇文章为大家展示了跟老大讨论PHP的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 思维导图今天跟老大聊聊我们一些代码结构的问题,有些可能会对你是有帮助的。对话1>单个文件

本篇文章为大家展示了跟老大讨论PHP的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

 思维导图

跟老大讨论PHP的示例分析

今天跟老大聊聊我们一些代码结构的问题,有些可能会对你是有帮助的。

对话

1>单个文件巨大(超过5000行)

我:文件大会不会影响性能啊?php语言在处理源文件的时候(这个主要是php的词法分析和语法分析),会将源文件切分为一个一个的标记(token)。如果文件很大的话,把我们当前不需要的方法都会做标记的,这样不是明显影响性能吗?

老大:这个在性能方面的影响是比较小的。我们在考虑性能的时候,要考虑全局观,比如展示页面的时候,打开页面很慢,那我们首先考虑的就不是文件大小的问题,而是每个模块的加载速度。比如,通过你的断点设置,你发现某个产品列表的读取是比较慢的,那就要考虑,是不是组装数据慢了,还是从接口(数据库或者中间层)读数据慢了?如果是组装数据慢了,那就要重构这个算法,或者跟产品人员商量能否修改方案。如果是接口读取数据慢了,那是不是需要加机器或者加索引来解决问题。——所以,考虑性能问题,不能抓住小问题,要考虑的是最影响性能的地方进行修改。

我:那如果切分大文件类到不同的类有什么不好吗?

老大:如果在一个方法体中,你通过很多的require_once添加很多的类文件,那么不也是影响性能吗?——require_once本身也耗费性能!

跟老大讨论PHP的示例分析

给我画了一张图(类似于上面的图):

我:那我可以用include,逻辑加载文件,按条件加载文件。这样就能减少加载文件的数目!

老大:那么你怎么按照条件加载?

我:比如,我可以按照分类去加载文件,电影的时候,我就把电影相关的程序文件加载进来,电视的时候就把电视相关的程序文件加载进来。

老大:那将来电视要用到电影里的内容的时候,你怎么办?或者很多分类用到你电影分类里的内容的时候你怎么办?

我:那我就放置一堆的"||"代码(如if('电影' === $cateGory || '电视' === $category || '音乐' === $category){})。 后来我琢磨了一下,确实是,这样做的话,一个方法里会有很多这种if语句,那我要对应某一个分类内容的时候,我就要看一堆的if了。还真不如写在一块呢或者重构代码了!

2>autoload()方法。

类似下面的代码。

<?php   Test::getName();       function __autoload($className){       echo $className,"\n";exit();   }

运行结果:

跟老大讨论PHP的示例分析

我们都知道__autoload()方法性能并不是很好,一般不鼓励去使用这个方法。所以,我在调用类的时候,我就加了这么一句:

跟老大讨论PHP的示例分析

对话:

我:我觉得__autoload方法性能不是很好,所以我在调用别的模块的时候,我就用了include方法。

老大:你这样做,一是整个代码看起来没那么规范,二是,如果将来要修改框架了,我们就要查看所有的这样的代码文件,因为比如,你的入口文件移动到别的文件夹下面,那么你的Test.class.php文件在什么位置,你知道吗?

如果我们调用__autoload()方法,我们只需要修改这个接口就可以了,因为所有的类调用都经过了这个方法,这样比较好管理。

3> 一个方法尽量保持在一个屏幕内,一行不超过80个字符。

跟老大讨论PHP的示例分析

我:我觉得我们的类里面的方法太长了,很多都超过几个屏幕,才能把当前的方法看完。我个人比较推崇"尽量把方法放在一个屏幕内"和"让一个方法做一件事"。有的时候看到一个很长的方法的时候头大了!

老大:

一个方法就是做一件事啊,比如test()方法,就做test()。以前php没有面向对象的时候,我们经常不是把代码都写在一个文件里吗?

我们不应该“为了拆方法,而把方法硬性拆分。而应该是因为业务需要而对方法拆分!”。而且函数调用我们知道,本身也是耗费性能和内存的。如果你这个方法体内的有些部分,其他方法也要调用,那么这时候你可以把这部分代码做成一个方法。如果你的方法里有很多调用其他类里的方法,不也看着很麻烦吗?还不如写到一个方法里呢!这样还比较直观些。

4> 找回以前删除的代码。

我:如果某个功能产品要求撤下来,但是过了很长一段时间,产品又要求再上这个功能。那么我原来的代码是删除呢?还是只做注释呢!

老大:删除掉!

我:那我怎么恢复呢?要把原来代码做备份吗?

老大:你可以使用版本管理软件做恢复。如svn。

例子演示:

(1)最初代码

跟老大讨论PHP的示例分析

svn提交代码:

跟老大讨论PHP的示例分析

(2)产品要求下线代码

跟老大讨论PHP的示例分析

svn提交代码:

跟老大讨论PHP的示例分析

(3)隔了一段时间,产品又要求重新上线该模块。

svn操作:先查询日志,然后针对日志进行合并

跟老大讨论PHP的示例分析

跟老大讨论PHP的示例分析

总结

上面的问题,我估计你也遇到过,所以大家共勉下吧!

题外话:曾经我在离开一家工作一年的公司的时候!项目经理就跟我说你如果频繁跳槽,会对你的将来的发展是不利的,但是没有告诉我怎么不利?现在我有点明白了,因为我到过的公司很多技术过硬的人,都是在这个公司带过3年以上的人。我发现如果你在一家公司待很长时间,对你的技术提升是很有帮助的。

1》 不停的重构代码,提升你的代码质量。

我们开始进入公司的时候,一般都是公司急需赶个项目人手缺乏。等项目完成,一般都是1年左右。如果你在公司待足够长的时间,这个项目多多少少会跟你扯上边的,这时候,你会不停的翻看自己的代码,你也会不断的调整代码, 不断的重构你的代码&mdash;&mdash;跟写文章一眼,你不停的看自己写过的文章,你会不停的做修改,越修改你的文章会越让你喜欢。

2》业务熟悉,能够更快更好的写出代码!我个人比较喜欢“行云流水”似的感觉。

你如果在一个公司待了很长一段时间,那么你对这个领域是非常熟悉的。新需求上来,你会很快的知道怎么做代码架构,比如上面提到的,你就知道方法中,哪些代码部分可以抽出来,独立做成一个方法;你也会知道,将来什么地方会频繁修改的。写代码,如行云流水般!

上述内容就是跟老大讨论PHP的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网PHP编程频道。

--结束END--

本文标题: 跟老大讨论PHP的示例分析

本文链接: https://lsjlt.com/news/288304.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 跟老大讨论PHP的示例分析
    本篇文章为大家展示了跟老大讨论PHP的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 思维导图今天跟老大聊聊我们一些代码结构的问题,有些可能会对你是有帮助的。对话1>单个文件...
    99+
    2023-06-17
  • java内存模型讨论及案例分析
    常用内存选项 -Xmx: 最大堆大小 -Xms:最小堆大小 -Xss :线程堆栈大小,默认1M 生产环境最好保持 Xms = Xmx java内存研究 内存布局 可见: 堆大小 = 新生代 + 老年代,新生代=E+From Survivo...
    99+
    2023-08-30
    java 开发语言
  • sql server跟踪数据库的示例分析
    今天就跟大家聊聊有关sql server跟踪数据库的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 select * FROM ...
    99+
    2024-04-02
  • PHP中大小写敏感的示例分析
    这篇文章主要介绍了PHP中大小写敏感的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP 大小写敏感在 PHP 中,所有用户定义的...
    99+
    2024-04-02
  • oracle对session进行跟踪的的示例分析
    这篇文章主要为大家展示了“oracle对session进行跟踪的的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“oracle对session进行跟踪的的...
    99+
    2024-04-02
  • 数据库中ACID理论和CAP理论的示例分析
    这篇文章主要为大家展示了“数据库中ACID理论和CAP理论的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中ACID理论和CAP理论的示例分析”这...
    99+
    2024-04-02
  • Android Studio 3.0 gradle提示版本太老的示例分析
    这篇文章主要介绍了Android Studio 3.0 gradle提示版本太老的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。很多朋友在用Android Studi...
    99+
    2023-05-30
    android studio
  • web理论和HTML标签的示例分析
    这篇文章给大家分享的是有关web理论和HTML标签的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   1,什么是web?   web是运行在internet上最流行...
    99+
    2024-04-02
  • js之鼠标跟随jquery版的示例分析
    这篇文章给大家分享的是有关js之鼠标跟随jquery版的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码<!DOCTYPE html> <h...
    99+
    2024-04-02
  • 前端理论之rscss和rsjs的示例分析
    这篇文章主要为大家展示了“前端理论之rscss和rsjs的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“前端理论之rscss和rsjs的示例分析”这篇文...
    99+
    2024-04-02
  • ubuntu PHP XDebug的示例分析
    这篇文章主要介绍ubuntu PHP XDebug的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、https://github.com/xdebug/xdebug&nbs...
    99+
    2024-04-02
  • LNMP中PHP的示例分析
    小编给大家分享一下LNMP中PHP的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!wget  htt...
    99+
    2024-04-02
  • 关于php的示例分析
    这篇文章主要介绍关于php的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是phpPHP 是 PHP Hypertext Preprocessor(超文本与处理器)的首字母缩写。这种方法叫做递归缩写。ph...
    99+
    2023-06-15
  • php常量的示例分析
    小编给大家分享一下php常量的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.概念常量是用于临时存储值的,只有我们执行程序的时候才会存在。2.定义和使用define('常量名称',常量值)或者是d...
    99+
    2023-06-14
  • php中的str_replace()的示例分析
    这篇文章将为大家详细讲解有关php中的str_replace()的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。二...
    99+
    2023-06-14
  • Perf支持Zstd压缩跟踪记录的示例分析
    这篇文章给大家介绍Perf支持Zstd压缩跟踪记录的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux内核的perf子系统的后期更新引入了对跟踪压缩记录的支持,这可以使文件大小减少三到五倍。Linux内核...
    99+
    2023-06-05
  • CentOS系统中跟踪高IO等待的示例分析
    这篇文章主要为大家展示了“CentOS系统中跟踪高IO等待的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS系统中跟踪高IO等待的示例分析”这篇文章吧。高IO等待问题的第一个征...
    99+
    2023-06-10
  • Spring-cloud之sleuth服务链路跟踪的示例分析
    这篇文章主要介绍了Spring-cloud之sleuth服务链路跟踪的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、简介Add sleuth to the cla...
    99+
    2023-05-30
  • MySQL大表优化的示例分析
    小编给大家分享一下MySQL大表优化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!背景阿里云RDS FOR MySQL(MySQL5.7版本)数据库业务表每月新增数据量超过千万,...
    99+
    2024-04-02
  • mySQL表单大小的示例分析
    这篇文章主要介绍了mySQL表单大小的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 这是说的是表单的大小而不是说表格中某项数据存...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作