dotweb go語言的乙個微型web框架(一)

2021-09-20 02:23:48 字數 1607 閱讀 3032

dotweb是16年正式託管到github的乙個開源專案,go語言的web框架目前也有很多,出名的有bee和echo。它們都是很優秀的框架,但是我們喜歡更輕、更小的東西,經歷一些之後我們更青睞微服務這個設計理念。

dotweb是乙個國人寫的開源專案,據我所知它已經在多家公司的生產專案中使用,到目前為止它和早些年的web框架比顯得很年輕,目前它還在以一種很快速的迭代速度完善。我們計畫會在2023年推出1.0版本,那時候dotweb可以滿足各種場景下的功能需求。我們在完善dotweb的過程中,輕巧是我們的原則,我們不是要做乙個大而全的web框架(因為現在已經有這種框架了)我們要做的是乙個小而精的框架,它會對擴充套件很友好,開發速度高效,效能良好。

dotweb的githun位址是:我們歡迎您提出建議或者貢獻**,我們也歡迎您加入官方qq群,群號可以在github上找到。

dotweb和springmvc或者asp.net一樣嗎?它們是有不同的,springmvc和asp.net都是非常優秀的web框架,它們功能強大、效能良好、有著很高的開發效率,但是除此之外dotweb還有乙個很迷人的特性——自宿主。有些朋友可能會疑惑什麼叫做自宿主?如果您了解asp.net core您應該知道asp.net core可以脫離iis啟動,iis作為乙個web伺服器它就是web程式的宿主,自宿主就是可以脫離傳統web伺服器自己啟動執行。所以說dotweb既是乙個web框架又是乙個web伺服器,自宿主也不可能脫離web伺服器,只不過它脫離了傳統的web伺服器在內部整合了乙個微型的web伺服器。

oh,my god!它不使用傳統web伺服器,它效能會不會很差?我如何相信它的效能呢?事實上您不需要對效能太擔心,go語言本身效能就很高,dotweb是用原生的go語言實現,dotweb效能就算不讓人驚豔也不會差。在已上線的專案中,dotweb表現很令人滿意,它在高併發的場景中占用的伺服器資源卻很少,這和go語言的特性是密不可分的。在今後的版本迭代中,效能是我們最關注的事情,我們會不遺餘力的優化效能。

dotweb還有乙個優點就是它很簡單,如果您懂得go語言,那麼讀懂dotweb的原始碼是件很容易的事情。我們追求的就是精簡,我們不會為了炫耀一些技巧就把**寫得不那麼易懂,我們只會用最簡潔的**,您隨時可以根據自己的需求修改dotweb的原始碼,這完全是可以的,dotweb不是一成不變的。

dotweb天生對分布式友好,你會發現它的session支援redis儲存,未來版本支援基於cookie儲存的session實現,更別說cache這類本身就需要分離的模組了。所以對未來業務擴充套件或是集群架設,dotweb都有著很好的支援。

dotweb對長連線和websocket也有著很好的支援,實測單機百萬長連線。

dotweb內建了乙個監控服務,通過它您可以查詢dotweb的執行狀態,這個服務我們計畫在以後的時間裡增強功能,方便使用者掌握dotweb的狀態。

思來想去還是寫個hello,world吧,彷彿不寫就不像是程式設計技術部落格一樣。

第一步:您可以執行go get -u github.com/devfeel/dotweb 命令安裝dotweb。

第二步:在您的go原始檔中新增import "github.com/devfeel/dotweb"引用。

第三步:

func main())

}

竟然不支援go語言**塊,囧,在以後的文章我會使用截圖,不過幸好js的風格可以偽裝下go語言**塊。

Flask 乙個Python的微型WEB開發框架

主要看這個 下面是我從中記的要點。windows安裝 先裝個python2.7.然後把python資料夾裡的scripts加到path裡,像下面這樣 c python27 scripts然後cmd,執行 easy install pip pip install virtualenv 這樣就算把pyt...

在 Vue 中手寫乙個微型 Vuex

vuex 是乙個專為 vue.js 應用程式開發的狀態管理模式,在vue專案中,有些資料需要在很多元件內進行傳遞,為了方便管理和維護,我們就需要這樣乙個工具來管理這些資料,通常情況下我們就會選擇vuex。但是正如vuex官網所說 vuex 可以幫助我們管理共享狀態,並附帶了更多的概念和框架。這需要對...

Linux下模擬實現乙個微型shell

首先我們先看一下shell的執行過程 shell從使用者讀入字串 ls 並建立乙個新的程序,在那個程序中執行ls程式並等待那個程序結束。然後shell讀取新的一行輸入,建立乙個新的程序,在這個程序中執行程式並等待這個程序結束。所以我們要寫乙個微型shell,需要迴圈以下過程 獲取終端輸入。解析輸入 ...