我希望通過這個系列文章,讓大家都現(xiàn)有的 Go Web 框架能有更深的認(rèn)識。

訪" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 從頭構(gòu)建 Go Web 框架(一):介紹

從頭構(gòu)建 Go Web 框架(一):介紹

時間:2023-05-29 07:45:01 | 來源:網(wǎng)站運營

時間:2023-05-29 07:45:01 來源:網(wǎng)站運營

從頭構(gòu)建 Go Web 框架(一):介紹:本文寫于 2014 年,對于 golang 十幾年的發(fā)展歷程而言,這已經(jīng)是古董級別的一篇文章了,但通用的思想概念依然沒有變。

我希望通過這個系列文章,讓大家都現(xiàn)有的 Go Web 框架能有更深的認(rèn)識。

訪問:原文地址,譯文如下:

Martini 發(fā)布之后,迅速成為了最受大家歡迎的 Go 語言 Web 框架,且現(xiàn)在依舊是如此。但必須指出的是,它不符合常規(guī)習(xí)慣,非常慢,概念也有不足。它教了我們一堆錯誤的做法。但因為它上手容易,許多開發(fā)人員仍在使用。

似乎是存在即合理!

我決定寫一系列文章,基于現(xiàn)有庫從頭編寫組件來構(gòu)建自己的 Web 框架。在開始前,我搜羅和閱讀了市面上絕大部分關(guān)于如何編寫 Go Web 應(yīng)用的資料。我希望,通過系列文章能教授 Go Web 開發(fā)人員一些最佳實踐,同時能提醒老 Go 開發(fā)人員什么才是 Web 開發(fā)的最佳實踐。

注:每個項目都是具有獨特性的,最佳實踐并非適用于所有場景。

概要

本系列不僅能讓你了解 Go 中 Web 開發(fā)的最佳實踐,還會讓你了解其他常見問題的解決方案及如何正確運用。

框架該具備什么能力

市面主要有兩種類型的 Web 框架。

一種是內(nèi)置所有功能,類似 Rails 的框架,能幫你快速構(gòu)建與引導(dǎo)項目。Go 中類似框架有:Beego 和 Revel。

另一種,類似于 Sinatra 的框架,提供路由和一些內(nèi)置功能,但不會提供 ORM 等功能。 多數(shù) Go 框架都采用了這種風(fēng)格,如 Martini、Goji、gocraft/web 等。

框架與庫

最近,發(fā)生了一場爭論,主題是,我們究竟是使用框架還是使用庫呢?

首先,我不反對框架,但 Go 有很棒的小包,能幫助我們非常容易地制作出自己的框架。特別是長期項目,自己動手是更明智的選擇。如果你想學(xué)習(xí)圍棋,最好了解一切是如何運作的。

爭論詳情查看以下文章:

框架功能

我們將專注于后一種類型,因為涵蓋 Beego 或 Revel 中的每個功能將意味著針對該主題編寫一整本書!

框架主要包含 3 個部分,分別是:

常見的中間件 Middleware:

Go Web 框架現(xiàn)狀

現(xiàn)在,許多 Go Web 框架的問題在于,它們的組件僅適用于自身,是不可替換的。

假設(shè)現(xiàn)在有這樣一些小包,只有路由器,或只有中間件系統(tǒng),或者只有中間件,且它們彼此兼容,我們就可以將它們組合使用。 但現(xiàn)實是,這類項目數(shù)量極少,除了 Gorilla 之外,基本沒什么知名度。當(dāng)然,即使是 Gorilla,在 Github 上的追隨者與其他大多數(shù)其他框架,依然少很多。

Go 的 Middleware 系統(tǒng)并沒有統(tǒng)一的約定慣例。與 Ruby (Rack)、Node.js (Connect.js)、Clojure (Ring) 和其他語言不同。 每個框架,如 Negroni、Goji、Gin、gocraft/web 等,都在重新定義自己的中間件工作方式,重用開源中間件變得不可能。

什么才是新開發(fā)人員的最佳實踐?

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉