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

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

卡卷网3个月前 (05-23)每日看点103

转一篇禅道项目管理软件创始人的文章(禅道就是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年9月6日最新更新:本文列举的所有看电视直播、或流媒体影视资源点播的软件,我这两天又重新梳理成最新版本,最大程度保证可用性。获取方式见文末图片,或见评论。后续我也将持续更新,文章是旧的软件也会是新的,保证都是最新可用版本。作为一个急...

Photoshop 有哪些使用技巧?

Photoshop 有哪些使用技巧?

不看后悔系列!本篇分享25个PS实用的技巧!不能保证每个都能让你惊艳,但是却是我用心写出来的,希望对你有帮助。另外我的知乎也写了接近200篇PS的技巧,超级合集分享!分享25个关于PS的技巧一、快速制作文字倒影1、新建文档,1500×100...

小米14和华为mate60怎么选?

手持荣耀20,用了五年多了,使用仍然较为流畅,但是电池不太行了,于是2024年8月在家乡的小米之家购买了小米14(12+256),用了快两个月吧,说说使用体验。 外观层面,由于我使用的荣耀20放在现在妥妥地属于小屏,习惯了小屏...

为什么大家都说手机性能永远超不过PC?

最新的天玑9400牛逼吧,堪称PC级CPU,测试成绩16W功耗能跑9500分,1.8W能跑3000分,GPU也差不多是这个情况。手机电池一般是4000-5000毫安时,电压3.7V。也就是说,手机正常满载5W功耗下,这个电池能支持运行4个小...

无人机真的是中国领先吗?

无人机真的是中国领先吗?

巧了这是。捡到了一台大疆。应该是别人飞丢的。在草丛中泡过水,轴承锈死,电池鼓涨已,经没有维修价值了。但作为玩电子的,免不了要把它解剖,研究一番。那么,我们看看它的国产化率能有多少吧。图片说话:解释一下吧。图一,高通 美国图二,MPS: 美国...

数字人民币为什么又不火了?

我完全不懂行。我一开始以为,数字人民币,是对我银行里的每一分钱,都赋予一个独一无二的数字编码。我要用一块钱买矿泉水,它就从我的存款中随机选取一百个一分钱,组合成一块钱,支付给商家。我花一百块钱吃饭,它就随机选取一万个一分钱,组合成一百块钱,...

发表评论

访客

看不清,换一张

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