極客兔兔大佬的《七天用go從零實現系列》day4 分組控制,day5 中介軟體 學習筆記
內容位址
開發目的:
將路由分組進行控制,在不同的組加不同的定製化功能,也可以全域性定製功能。
開發步驟
部分實現解讀
增強功能的函式的實現
與之前定義的請求處理函式一樣,可以使用切片來統一維護,方便管理
全域性增強函式的新增
使用巢狀結構體*routergroup,將它作為全域性增強函式新增的依附點,且初始化 groups 切片時直接加入
//new is the constructor of gee.engine
func
new(
)*engine
engine.routergroup =
&routergroup
//全域性 routergroup
engine.groups =
*routergroup
//初始化切片時直接新增到 groups 中
(c)}
增強函式的觸發
增強函式在context 中被組裝儲存到handlerfunc,且使用鏈式呼叫實現增強函式的觸發。
其中 index 做為序號,初始化為 -1。在 next 觸發的時候,先 c.index++ 再呼叫,保證從0開始且只執行一次。
}//next 鏈式呼叫定製的 handlerfunc
func
(c *context)
next()
}最後答案單獨列一篇,可以自己試著解答一下。
day4-5 主要是在前3天的基礎上做一些非功能型的擴充套件。
先將路由進行分組,然後在不同的分組中增加需要加強的函式。
在生成context時,根據請求拼 增強函式,最後在之前 router.handle 的地方進行鏈式觸發。
2020 4 22學習筆記day45
wait notify notifyall方法都是object中的方法,任何物件都可以呼叫到這個方法。但是只能在加鎖的 塊中,使用 當做鎖的物件 來呼叫wait notify notifyall方法。其他情況,如果不是在加鎖的 塊中,或者不是使用 當做鎖的物件 來呼叫wait notify noti...
Go 實現 Web 框架 Day1 學習筆記
在熟悉了 go 的語法之後,如何進行鞏固和加深理解呢?只有實際上手做專案,coding 起來,才可能有更深刻的認識。這裡推薦極客兔兔大佬的 七天用go從零實現系列 很適合學完語法的同學進行上手鍛鍊,在實踐中學習和思考,再實踐再學習,螺旋上公升。操作順序 學習內容 最後答案單獨列一篇,可以自己試著解答...
go語言web開發框架學習系列五 MVC包使用
在iris框架中,封裝了mvc包作為對mvc架構的支援,方便開發者遵循mvc的開發原則進行開發。iris框架支援請求資料 模型 持久資料分層處理,並支援各層級模組 繫結執行。mvc即 model view controller三個部分,分別代表資料層 檢視層 控制層。控制器層負責完成頁面邏輯 實體層...