golang之web
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。大多數程式設計語言之上的 Web 開發架構都是遵照 MVC 的處理流程去開發 Web 應用程式:Model 部分封裝資料,Controller 部分處理商務邏輯,View 部分植入變數填充模板頁面。而大部分 Web 架構關於 MVC 的三部分都是在 Server-side 處理,比如對 View 部分的處理都是在 Server-side 通過程式動態對模版變數求值後再拼接組裝成 HTML 頁面輸出給瀏覽器去呈現。而 Go 開發 Web 應用程式,並不依賴任何 Web 開發架構,用內建的標準庫就可以輕而易舉地實現:比如使用 net/http 標準庫就可以數行代碼構建一個完整的 Web 骨架應用;再比如,通過關鍵字 struct 封裝一個資料結構就可以表達原本 MVC 架構中需要用厚重的 ORM (Object-Relational Mapping) 才能表達的那部分。大道至簡,這可以說是 Go 的哲學。在 View 這一層,Go 也有相應標準庫提供支援,但更推薦的做法,是當下比較流行的 MVVM (Model-View-ViewModel):Server-side 只輸出 JSON,瀏覽器 DOM 作為 View 層,前端 JavaScript 充當 Contoller 部分;這樣,不僅減少了 Server-side 的資源消耗還有中間傳輸的網路流量,而且前端可以更靈活和更豐富,後端也可以更輕盈和更高效,也更有利於項目的分工和協作。 而 Go 對 JSON 的產生和輸出,有資料測試表明異常高效(在 i7-2600K 處理器上針對所有程式設計語言包含開發架構總計約100個測試對比中,Go 的效能指標穩居第一,詳見:http://t.cn/RvZHyKI)。以我個人喜好之見,後端用 Go 前端用 AngularJS 可以說是現今流行 MVVM 方式的 Web 開發之絕唱組合。所以,如有疑問 Go 適不適合用來做 Web 開發,我想答案很肯定的:不但可以而且更簡單同時做得更出色甚至還可以做的更多。