1. 程式人生 > 其它 >從零實現一個web框架(基於go語言)-序言

從零實現一個web框架(基於go語言)-序言

由於go的net/http包十分方便的幫我們實現了一個web伺服器所需要的大部分功能,框架的設計模式和思想與語言無關,作為學習採用go來搭建自己的web框架。

為什麼需要框架?即使不使用框架,我們依然可以實現相應的web服務和功能,但是很多地方都需要進行頻繁的手工處理和龐大的程式碼量,這就是使用框架的價值,它可以幫助我們把很多需要頻繁重複的程式碼封裝簡化。有很多框架,如spring的強大,django的重量級;也有小而輕的框架,如flask,gin,還有近日很火的fastapi,適合於構建敏捷型服務。近日起將從零實現一個自己的web框架,裡面包含了很多gin原始碼的影子,django的設計模式。

框架幫助我們實現了很多web服務中需要的功能,例如

  • 路由(Routing):將請求對映到函式,根據訪問路徑動態匹配服務介面,如:www.xxx.com/login/name
  • 模板(Templates):使用內建模板引擎提供模板渲染機制。
  • 工具集(Utilites):提供對 cookies,headers 等處理機制。
  • 外掛(Plugin):提供了外掛機制。可以選擇安裝到全域性,也可以只針對某幾個路由生效。
  • 模型(Models):類似於django中的orm,提供資料庫連線處理,資料模板對映
  • 表單(Form):提供資料驗證,前後端互動中的資料處理機制
  • ...

框架程式碼量並不多,該系列只作為學習框架的設計模式和思想而記錄,感謝qrara大佬給予我gin原始碼的參考建議。

感謝極客兔兔的系列教程。。。