我們都應該學習PHP
原創-
2023-12-18 10:26:23
-
1264
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这门编程语言展开讨论。但其实在産品研发和企业经营过程中也是一样的道理。同样也需要注重實效、人性化設計和長期主義。随着新经济周期的到来,我相信会有越来越多的团队开始注重三者。比如我最近就看到了好多从微服務架构重新用单体应用模式重构的案例。
-
禅道産品
禅道開源版 禅道企業版 禅道旗艦版 禅道IPD版 -
核心功能
産品管理 項目管理 質量管理 效能管理 -
使用文檔
基本版手冊 企業版手冊 旗艦版手冊 IPD版手冊 開發中心手冊 -
幫助中心
积分問答 常見問題 論壇交流 使用視頻 Gitee GitHub -
關于我們
關于我們 禅道軟件 最新動態 禅道活動 -
禅道社區
禅道博客 積分排行 積分商城 禅道書院 -
聯系方式
聯系人:劉璐 電話:18562550650 微信:18562550650 Q Q:2845263372北京、上海、深圳分部
友情鏈接:
ZTF自動化測試框架
ZenData測試數據生成器
喧喧IM
敏捷開發
敏捷咨詢
測試窩
悅庫網盤
Ledge知識平台
渠成軟件
ZDOO全協同企業管理軟件
融管理社區
ZenDAS數據分析工具
ZenShot跨平台截圖工具
飛信釘即時通訊解決方案
項目管理
IPD學習網
PMP百科網
艾體驗
創無記2049