開發者爭論 Morph 類似 PHP 的現代 Web 開發方法

BigGo Editorial Team
開發者爭論 Morph 類似 PHP 的現代 Web 開發方法

Morph,一個新的可嵌入式全棧庫,用於構建無需構建步驟的超媒體驅動應用程式,在開發者中引發了關於以類似 PHP 方式結合伺服器和客戶端程式碼優缺點的熱烈討論。該庫基於 Hono 執行,支援 Deno、Node 和 Bun 執行時,旨在透過允許元件呼叫返回超文字的 API 來簡化 Web 開發。

支援的執行環境

  • Deno
  • Node.js
  • Bun

PHP 的比較

社群中許多開發者將 Morph 的方法與 PHP 傳統的混合 HTML 和程式碼的模式進行了類比。這種比較引發了關於現代開發實踐與舊正規化的重要討論。一位評論者尖銳地指出,現代 PHP 開發已經不再混合業務邏輯和模板:

「現代 PHP 並不是以業務邏輯與模板混合的方式編寫的。這是有充分理由的。」

這種觀點反映了 Web 開發中更廣泛的行業轉變,即關注點分離,其中表現邏輯與業務邏輯保持分離。爭論的焦點在於 Morph 的方法是否代表著迴歸到舊實踐,還是對某些用例的實用簡化。

架構考慮

幾位開發者對 Morph 架構如何處理擴充套件挑戰提出了擔憂。一位開發者指出,Morph 似乎忽略了 PHP 的主要賣點之一,即共享無狀態、單執行緒、即發即棄的方法,這種方法可以放在負載均衡器後面並啟動100臺伺服器。這突顯了任何 Web 框架的重要考慮因素:它在負載下和分散式環境中的表現如何。

討論還涉及到什麼構成了類 PHP 開發的本質。有些人認為,僅僅透過 JavaScript 標記模板字面量混合 HTML 和程式碼已經實現了 PHP 的功能,質疑 Morph 除了一些 CSS 和其他模板優勢外還能帶來什麼額外價值。

Morph 核心原則

  • 元件可以呼叫返回超文字的自身 API
  • 所有元件都在伺服器端渲染,具有伺服器端上下文訪問能力
  • 獨立的元件渲染和重新渲染
  • 具有巢狀能力的元件層次結構
  • 最小化或無客戶端 JavaScript
  • 不需要構建步驟
  • 無需預先設計 API 資料結構
  • 可嵌入任何 Deno/Node/Bun 專案

元件導向開發

Morph 的方法似乎更傾向於類似 Blazor 或 Angular 的元件導向開發,而非傳統 PHP。該庫強調伺服器渲染的元件,這些元件可以獨立重新渲染並相互巢狀,形成層次結構。這種模型旨在結合伺服器端渲染的優勢和單頁應用程式的動態特性,同時最小化客戶端 JavaScript。

對於從事 Telegram 機器人、桌面應用程式或內部工具等較小專案的開發者來說,Morph 提供了潛在的簡化開發體驗,不需要將前端和後端拆分為獨立的服務。該庫專注於無構建步驟和最小化客戶端 JavaScript,將其定位為複雜專案不需要的重量級框架的替代方案。

隨著 Web 開發的不斷發展,像 Morph 這樣的工具代表了在開發者體驗、效能和可維護性之間尋找適當平衡的有趣實驗。其方法能否獲得廣泛採用,將取決於它如何解決開發社群提出的問題,同時實現其簡化的承諾。

參考:Morph