当前位置:首页 > 每日看点 > 正文内容

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

卡卷网9个月前 (05-23)每日看点208

转一篇禅道项目管理软件创始人的文章(禅道就是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

分享给朋友:

相关文章

短剧推广怎么做,24年还能赚钱吗?

短剧推广怎么做,24年还能赚钱吗?

首先声明:短剧授权是免费的!短剧授权是免费的!短剧授权是免费的!其次我们再聊聊,短剧推广到底赚不赚钱?多的就不说了,随便上个图片,给大家过过瘾!然后,我们进入主题:0粉丝账号,新手,应该如何申请短剧推广!一、短剧推广变现方式首先,我们先要分...

网易云音乐上看到过最触动的热评是什么?

网易云音乐上看到过最触动的热评是什么?

1.“昨天晚上洗澡的时候,我忘记拿毛巾了,喊了声妈妈帮我拿下毛巾,正当我伸出左手准备接毛巾的时候,我愣了一下,又换了右手。”希望你永远不会听懂这句话,永远都不要懂。——网易云热评《关键词》2.小时候跟着父亲去城里卖西瓜,害怕同学会看到我,就...

如何看待台积电,三星相继停供大陆7nm及更先进芯片?

在这个事出来之前,我就看到过一个说法,两家Foundry可以在中东建厂,让中东的Fab去干“脏活”。本质上是国内企业搞几个中东的代理人,装作是中东的初创Fabless企业去下单,人家Foundry大概率睁一只眼闭一只眼,只管数钱。然而,紧接...

为什么神经网络可以解偏微分方程,是什么原理?

为什么神经网络可以解偏微分方程,是什么原理?

题主一直比较关心神经网络在其他科学领域的应用,比如数学、物理学还有生物学,比如AlphaFold。本次带来的这篇文章傅里叶神经网络算子解偏微分方程就是一个很有意思的方向,其实我自己去年在给美国一个客户做兼职预测数字货币期权价格的时候就用到过...

是不是从Java培训班出来的人都被淘汰了?

真实个人经历。我就是从培训班出来的,但没有学完就跑出来了。当我明白什么人不管什么基础都能进培训班进行培训,学到什么程度都能保证他们包就业,我就知道不正常。我自己是大三下的时候去的,考研考到一半感觉无望,想抓紧时间学习技术,利用应届生身份准备...

为什么小公司留不住人?

为什么小公司留不住人?

我估计,整个知乎,可能没有比我公司再小得了,。。正对面就是我唯一的一个员工的工位。为啥留不住人。因为那些留不住人的老板,太拿自己当回事。大公司靠制度。小公司靠人情。我这儿的业务,因为全都是线上,所以员工来不来坐班都不重要。天太热可以不来,下...

发表评论

访客

看不清,换一张

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