成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP能創造成功:舊代碼不一定是遺留代碼

開發 后端
過去的一年里,Vimeo開發人員用多種編程語言編寫了后端代碼——PHP、Go、Ruby、Python、NodeJS、Java、C語言、C++和Rust。

 本文轉載自公眾號“讀芯術”(ID:AI_Discovery)

過去的一年里,Vimeo開發人員用多種編程語言編寫了后端代碼——PHP、Go、Ruby、Python、NodeJS、Java、C語言、C++和Rust。

[[377033]]

2004年,Vimeo開始使用PHP。對于像Vimeo這樣的初創公司來說,PHP無疑是一種理想編程語言。PHP的解釋器使企業家可以快速開發原型,它附帶一個大型標準庫,可以省去一些常見任務步驟,如發送電子郵件、訪問數據庫等。

大多數初創公司都中道崩殂,但一些基于PHP的創業公司在十年后依然屹立不倒,有些甚至增長飛速、躍居前列。其中有的公司(最著名的當屬Facebook)認為PHP是阻礙公司發展的瓶頸,開始從PHP遷移出去。這種小規模遷移的主要原因有兩個:一是PHP的性能不佳,二是維護大型PHP代碼庫困難較大。

2014年開始,PHP的性能發展漸漸跟不上所需,數組內存的消耗超出必要。由于缺少可以大規模檢測錯誤的靜態分析工具,維護大型PHP代碼庫變得愈發困難。

自2004年以來的十年中,Vimeo的規模已經擴大了很多倍,PHP代碼庫也隨之擴充,但是還沒有大到妨礙自身發展的程度。但當Facebook公開放棄PHP時,一些開發人員就認為PHP即將成為互聯網時代的FORTRAN。新一波后端工程師計劃如何將50萬行PHP分解成一系列設計更好、速度更快、可測試性更高的Go服務。

一時間,此事似乎迫在眉睫,但實際上我們從未放棄PHP。原因顯而易見——重寫整個代碼庫會占用大量資源并且容易出錯;但也有一個不太明顯的原因,那就是PHP變得更好了。

 

在過去的六年里,PHP執行時間減少了一半以上,社群發展迅速,現在有一種流行的驅動程序可以利用靜態分析獲得的見解來改進PHP代碼庫(舊的和新的)。

PHP的改進花了一段時間才在Vimeo應用。首先,我們必須棄用舊版本PHP5.4,該版本在過期多年后仍在生產。遷移到PHP 7可以使后端響應速度更快,除此以外,PHP 7改進后的語法使開發人員編寫代碼更簡潔,并對返回和參數類型提供全面的語言級支持。

PHP一直在創新——不久前發布的8版本在語言級別方面做了諸多改進,使開發人員可以更簡潔地表達業務邏輯。我們期待明年年初的升級。

PHP入門非常容易,但是“好上手”并不能保證無反噬。多年來,無數開發者嘗試過速成PHP,不小心就搬起石頭砸了腳,然后就放棄了。我也偶爾被PHP折磨的痛不欲生,但我沒有放棄,而是決定構建一個可以提高準頭的工具。就這樣,Psalm(PHP的靜態分析類型檢查器)誕生了。

Psalm的核心功能與TypeScript檢查器大致相似,借鑒了Facebook Hack語言(源自PHP的)的一些想法。當PHP代碼在生產中導致類型錯誤以及語言邏輯不通時,PHP會發送通知。Psalm增加了一些額外功能,如未使用的類和方法檢測,同時可以自動修復檢測到的許多問題。

過去幾年,我們將Psalm用作CI管道的一部分,這對我們在Vimeo編寫PHP的方式產生了變革性的影響:Psalm使我們有信心進行大規模更改,而不用擔心會破壞所有內容。這些更改(將現代PHP編碼標準引入了我們的代碼庫)有助于消除舊代碼的痕跡:當可以安全地更改代碼時,它就不再是真正的遺留代碼了。

我創建Psalm是為了解決我自己的問題,但現在Psalm已經開源,它也幫助解決了許多其他人的問題。Psalm最近還幫助我們識別了代碼庫中大量的安全漏洞,以免被惡意利用。

順便說一下,如果你害怕對一個大型遺留PHP項目進行較大更改,那么我強烈建議使用靜態分析類型檢查工具。Psalm(及其他類似工具)可以解決代碼庫中的現有問題,幫你慢慢提高代碼質量。

在20世紀中期,還沒有完善的PHP ORMs,所以我們建立了自己的PHP ORM。PHP提供了大量構建基塊,用于創建簡單的ActiveRecord風格的ORM,包括MySQL支持、查詢參數綁定以及神奇的獲取器和設置器,而這也有助于我們聚集一批優秀工程師來完成這項任務。

我們的ORM最后一次重大升級是在十年前。進行了一些小的改進——Bug修復、類型升級以及一些新特性——但基本結構沒有改變。多年來,我們也嘗試過使用不同類型的ORM,但這些嘗試提議都不是為了響應新的業務需求,而是出于對ActiveRecord模式的不滿。

 

最終,這些提議都沒有得到落實。事實證明,如果舊代碼能夠有以下優點,那它們比新代碼更好:

  • 工作高效
  • 靜態分析簡潔
  • 測試運行良好
  • 是常用代碼

謝天謝地,我們現有的ORM滿足上述四個要求。

保留可靠的舊代碼也讓我們有機會將精力集中在為業務帶來實質利益的事情上。而且我負責任地說,Vimeo近來一直不斷發展,有大量像Vimeo Record這樣很棒的新產品。

十年前,許多開發人員編寫了一部分PHP后就轉向了其他更受歡迎的語言。他們經常熱切地告訴別人不要再編寫PHP。我想告訴大家,PHP可以成功。Vimeo在PHP上的持續成功證明了它是2020年公司快速發展的一大利器。

PHP的崛起至少讓一個反對者改變了看法。我的一位同事,之前一直批評PHP,有一天他把我拉到一邊,非常真誠地感謝我告訴了他“用PHP工作并不一定很糟糕”。

 

責任編輯:華軒 來源: 讀芯術
相關推薦

2009-11-25 09:20:31

Windows 7網絡掉線

2021-06-18 10:29:17

物聯網安全互聯網IoT

2019-08-19 07:54:20

2021-07-19 10:15:53

Java絕對值代碼

2020-08-30 14:31:40

Python編程語言開發

2016-10-17 18:00:46

WIFIWIFI信號

2024-07-22 08:15:30

2025-03-12 06:55:00

2013-05-14 10:41:16

Palo AltoNGFWUTM

2021-02-26 09:04:22

數組ArrayListHashMap

2010-11-17 11:11:44

跳槽

2021-01-29 09:17:00

深度學習AI人工智能

2022-03-21 09:47:02

深度學習模型人工智能

2022-08-15 13:59:10

XaaS云計算

2022-12-26 09:16:45

Guava架構模型

2016-11-28 11:19:48

術語神秘

2018-01-18 05:20:59

2015-06-29 11:38:47

物聯網

2022-04-26 06:53:37

HBaseMD5RowKey

2018-03-09 10:34:48

顯卡參數超頻
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天干b| 欧美亚洲国语精品一区二区 | 99精品欧美一区二区蜜桃免费 | 欧美在线国产精品 | 亚洲导航深夜福利涩涩屋 | 精品国产一区二区三区性色av | www.99re| 中文精品视频 | 日韩综合一区 | 亚洲综合二区 | 99精品视频免费观看 | 欧美综合一区二区三区 | www.色午夜.com | 国产午夜视频 | 精品国偷自产在线 | 欧美激情视频一区二区三区在线播放 | 欧洲亚洲一区 | 久久久久久久国产精品 | 久久99精品视频 | www.888www看片 | 国产高清一二三区 | 精品自拍视频 | 亚洲情侣视频 | 久久久久免费精品国产小说色大师 | 午夜影院 | 成人不卡 | 亚洲传媒在线 | 国产传媒在线观看 | 久久人体视频 | 91最新视频| 久久精品欧美一区二区三区麻豆 | 91影院在线观看 | 欧美片网站免费 | 久久久久久蜜桃一区二区 | 国产精品99一区二区 | 久久久久国产精品一区 | 91在线观看免费 | 日本三级日产三级国产三级 | 午夜男人天堂 | 亚洲一区二区三区在线播放 | 国产99免费视频 |