当前位置:首页 > 每日看点

PHP是世界上最好的语言、java为什么比不过python?

卡卷网1年前 (2025-05-23)每日看点307

转一篇禅道项目管理软件创始人的文章(禅道就是PHP写的):

我们都应该学习PHP

估计有很多朋友是因为PHP这三个字母进来阅读的。现在开发者社区里面都在贬低PHP,唱衰PHP,已然成了一个梗。但我觉得PHP非常值得大家重新认识,PHP开发者社区也非常值得大家学习。不见得是来学习PHP这门编程语言,可以学习PHP这门语言的设计思想和PHP开发者社区的运作模式。

PHP这三个字母官方的含义是这样的——PHP: Hypertext Preprocessor。但我想对PHP这三个字母做一个新的解读:Pragmatic、Humanized、Permanent。这三个单词也是我们所熟知的注重实效、人性化设计和长期主义。在我看来,PHP这门编程语言和它背后的开发者社区非常深刻地体现了这三种思想,而这正是我们现在提倡的回归的经营本质。

这么说有点太抽象,还是来举具体的例子吧。我说一个所有做管理软件的团队都会遇到的问题,如何应对客户的定制化需求?

可能的解决方案之一是开分支。开一个分支,在分支上进行定制开发,然后交付给客户。Git开分支很快,瞬间就完成了,挺简单的。但如果有十个客户、几十个客户、几百个客户呢?分支的维护就是巨大的成本。比如产生了Bug,需要在几十乃至上百个分支里面进行代码的合并更新,这个维护工作就要了命了。

另外一种可能的解决方案是在代码里面预留各种各样的配置开关。针对不同的客户采用不同的配置或者开关。但这种方式会造成大量的代码冗余,程序结构复杂冗长,逻辑结构不清晰。长期积累下来之后,代码就难以更新维护,成为屎山一样的代码。而且也没有办法完全解决客户个性化的问题,搞不好还是需要开分支来解决。

到后来低代码开发平台就开始流行。其实这也不是什么新鲜事。我记得在2013年左右的时候去一个客户那儿做培训,他们团队内部有一个高手,做了一套快速开发平台,给客户做交付全是在这个平台上进行各种配置。表面上来看是快了,但实际上复杂度只会转移,不会消失。快速开发平台带来的问题是抽象不够、表现能力不强。受限于快速开发平台本身的能力,难以解决更深层次的业务逻辑问题。所以这时候就需要快速开发平台提供更强大的能力,比如逻辑判断、循环,甚至需要直接开放编程接口,允许用户自己写代码来实现。到最后快速开发平台本身就变成了一个开发语言。

来说说我们禅道项目管理软件的解决方案吧。我们的解决方案就是给客户提供扩展。而我们的这种能力是基于PHP的运行机制实现的。众所周知,PHP是脚本语言,是动态加载动态执行的。而且它也有很完善的面向对象编程的机制,所以在PHP世界里面,可以做各种好玩的事情。禅道项目管理软件的代码分为了大家所熟知的MVC三层,即Model、View、Controller。同时我们又细分了Configuration、Language、CSS和JavaScript这些概念。在框架层我们还有基础的Framework和核心的Library。所有的这些不同层次的代码都是可以扩展的。禅道的所有请求都会经由一个单一入口来加载,框架在加载代码的时候会优先判断扩展目录里面有没有符合扩展规则的代码需要加载。如果有的话,就先加载扩展的代码。而扩展的代码在继承基础代码的基础上又可以做进一步的修改。通过这种方式我们就实现了非常完整的扩展机制,可以根据客户的需要做各种的改动。我们给客户交付的都是扩展代码,从来不开分支。

禅道软件的这种扩展机制,其实是很简单的一种架构,没有什么太复杂高深的技术。无外乎就是定义各种的扩展规则,然后实现动态加载的逻辑就可以了。但恰恰是这种简单的架构是最有效的。可以有效解决个性化定制和主干代码更新的问题。而这种能力是在PHP语言的动态机制基础上构建的。这是PHP注重实效的非常好的一个体现。

PHP社区也非常注重开发者友好。我就不多讲,简单说几个点。比如PHP的手册,非常成体系,非常翔实,是我见过所有编程语言里官方文档维护得最好的。PHP在语言设计的时候也尽量给到开发者各种的自由,没有太多强制的地方。同一个问题在PHP世界里面有各种各样的实现方式。
PHP开发者社区也非常地稳健,不急不躁,稳步前进。PHP社区在更新迭代的时候采取了渐进式的方式,向下的兼容性做得很好。这样可以保证老版本PHP开发的程序也可以享受新版本PHP带来的性能提升的收益。两年前PHP社区还成立了基金会,累计募集了超过110万美金的资金,截止今天账面上结余73万美金。在过去的一年里,PHP基金会雇用了6位全职或者兼职的PHP开发人员。在新的一年里还会计划雇用4名开发人员。消息发出后,PHP基金会共得到了207份申请。PHP基金会从中选出了12名合格候选人的候选名单,又从中选出了4名杰出的开发者。自从成立了基金会之后,PHP的发版速度也在加快,一切都在朝着更好的方向发展。

今天是借PHP这门编程语言展开讨论。但其实在产品研发和企业经营过程中也是一样的道理。同样也需要注重实效、人性化设计和长期主义。随着新经济周期的到来,我相信会有越来越多的团队开始注重三者。比如我最近就看到了好多从微服务架构重新用单体应用模式重构的案例。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/05/13353.html

分享给朋友:

相关文章

现在手里有一万闲钱,买什么币好?

今天是2024年7月29日,看看我的持仓吧。 只有几百刀的那些微持仓就不说了,以下持仓都在几千刀~几万刀不等。 不构成任何投资建议,成本是多次买入的大致均摊成本 $TIA 成本0 $DYM 成本0 $SAGA 成本0 $STRK 成本0 $…

k70和红米note14pro+咋选啊?

k70和红米note14pro+咋选啊?

首选红米K70,可满足题主的功能需求。 红米 Note 14 pro+的使用者定位并不是学生,红米K70的使用者定位才是学生。 一、k70和红米note14pro+各自的参数 红米K70推出的定位初衷,是主打性能为主。最佳使用对象是喜欢…

你是如何在不依靠工资收入的情况下赚到一万元的?

你是如何在不依靠工资收入的情况下赚到一万元的?

分享几个路子稳,门槛低,变现快,适合年轻人的靠谱的副业。绝对不是送外卖、滴滴、搬砖等等的苦力活,这几个副业都是能是性价比极高,还能让你快速成长的工作。 想通过副业实现暴富、立马月入过万的同学,建议速速划走。 今天撇哥就给大家分享 100+个…

如何进行 Elasticsearch 调优实践?

如何进行 Elasticsearch 调优实践?

面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下 5~10s ,坑爹了。第一次搜索的…

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法. 栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型…

如何看待 Luv Letter 表示影视飓风专业性实在是让人失望?

一点儿新进展,另外以下有部分需要关注 对于统一变量的问题。这个我在对比上面有写小字解释,我在一开始使用ffmpeg来控制变量。但是发现了不少问题,比如因为遗留bug,会强制将非整数帧的素材转码为VFR导致无法正确帧间对比,因此不考虑,同时尽…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。