Onion Creative

(上篇)為何 Laravel 是我們的首選開發框架?

發布日期

Our Journey Finding The Project Management Tool For Our Agency

在 Onion Creative,我們日常的項目多為初創產品開發,或是創意/數碼營銷活動。這類項目通常對創意與功能設計有更高要求,但預算卻比一般開發項目更為緊絀。因此,為客戶開發產品時,我們必須時刻把成本效益放在心上。

同步與非同步的本質分別

NodeJS 的一大優勢是非阻塞(non-blocking)執行:得益於 JavaScript 回調函式的非同步特性,後續操作不必等待前一個完成便可開始。然而,根據我們的經驗,處理這些非同步回調往往需要額外時間,才能確保代碼按正確順序執行。很多時候,我們要額外加入同步回調或 Promise 來控制流程。JavaScript 回調的非同步特性,反而可能成為阻礙,令開發時間更長。聽起來是不是有點諷刺?

Laravel 作為最出色的 MVC 框架之一,其同步、以控制器為核心的架構能讓開發者更快、更安全地啟動產品,代碼結構也更有清晰的關注點分離。同步執行的特性從根源上減少大量技術債務,讓成本與風險保持在低水平,團隊也能更專注於為用戶打造優秀的產品。

PHP 幾乎適用於所有平台

不得不說,Apache + PHP 幾乎已是每個 Linux 發行版的預設配置。反觀 NodeJS,則需要額外安裝 NPM、ExpressJS 等一整套組件。對於客戶指定使用 shared hosting 的較小型項目而言,這可能會構成問題。

Apache2 與 PHP:更成熟、更普及、經過充分驗證的內容交付環境

NodeJS 建基於著名的 V8 JavaScript 引擎,該引擎最初由 Chromium 項目於 2009 年為 Chrome 與 Chromium 瀏覽器開發,為 JavaScript 在 Mac、Linux、Windows 等主流可托管作業系統上提供高效的執行環境。然而,它相對而言仍算新技術,有人會認為它在大型應用的可擴展性方面尚未夠穩定。

Laravel 建基於 PHP 之上。PHP 自 1990 年代起主要用於提供網頁內容,時至今日仍支撐著全球超過 70% 的網站。這是社群多年努力的成果,也是一項技術奇蹟——歷經無數社群測試與批評,依然服務著全球 80% 的網站。

NodeJS 是單線程執行環境

不要誤會,NodeJS 擁有極強大的事件驅動事件循環模型,能夠支援遠超 Apache 與 PHP 的並發處理量;但風險在於,一旦線程崩潰,整個 NodeJS 技術堆疊也可能隨之崩潰。

PHP 採用多線程模型,每個請求都會啟動一條新線程。這種處理方式相對有限且「成本較高」,但它能確保任何一條線程崩潰都不會影響其他線程,從而帶來更穩定、容錯性更高的伺服器。我們將在下一篇文章中進一步闡述 Laravel/PHP 如何實際惠及我們的客戶。