[心得] Go 語言目錄結構與實踐

作者: appleboy46 (小惡魔)   2019-09-02 13:16:37
Blog 好讀版:
https://blog.wu-boy.com/2019/08/golang-project-layout-and-practice/
很高興今年錄取 Modernweb 講師,又有機會去宣傳 Go 語言,這次的議程最主要跟大家
介紹 Go 專案的目錄該如何設計,一個基本的專案該需要有哪些功能,以及如何實現。大
家剛入門 Go 時,肯定會開始找是否有一套 Web Framework 可以參考實踐,可惜的是,
在 Go 語言沒有定義任何的目錄結構,所有的結構都可以根據團隊的狀況而有所改變,而
這邊我想強調的是如果能讓團隊看到結構後,一目瞭然知道什麼功能該放哪個目錄,或什
麼目錄內大概有什麼功能,那其實就夠了。看了許多開源專案,每個設計方式都是不同,
但是當你要找什麼功能時,其實從根目錄就可以很清楚的知道要進入哪個地方可以找到您
想要的功能及程式碼。這次在 Moderweb 上面的議題,就是分享我在開源專案所使用的目
錄結構,以及結構內都放哪些必要的功能。
除了講 Go 的目錄架構外,我還會提到很多小技巧及功能,讓大家可以知道更多相關要入
門的 Go 基礎知識,底下是大致上的功能清單:
1. 如何使用 Makefile 管理 GO 專案
2. 如何用 docker-compose 架設相關服務
3. Go module proxy 介紹及部署
4. 專案版本號該如何控制
5. 如何在 Go 語言嵌入靜態檔案
6. 如何實現 304 NOT Modified 功能
7. 簡易的 Healthy check API
8. Command Line 撰寫
9. 如何實現讀取 .env 及環境變數
10. 整合 Prometheus 搭配 Token 驗證
11. 如何測試 Dokcer 容器是否正確
12. 實作 custome errors
13. 用 yaml 來產生真實 DB 資料來測試 (支援 SQLite, MySQL 或 Postgres)
14. 透過 TestMain 來實現 setup 或 teardown 功能
15. 用 Go 語言 Build Tags 支援 SQLite
16. 介紹如何撰寫 Go 語言測試
最後來推廣我的兩門課程,由於 modernweb 不會提供會後錄影,所以我打算把上面的部
分在製作影片放到 Udemy 平台給學生學習。
Go 語言實戰課程: http://bit.ly/golang-2019
Drone CI/CD 自動化課程: http://bit.ly/drone-2019
底下是本次議程投影片: http://bit.ly/golang-layout
作者: cutekid (可愛小孩子)   2019-09-02 13:34:00
大推(Y)
作者: codus (canSeeRose)   2019-09-02 14:18:00
先推ptt 再推坑 已買Go語言實戰
作者: seal0112   2019-09-02 16:22:00
大推
作者: marmot00 (洽理)   2019-09-02 18:46:00
當天有聽,很讚
作者: j830430 (j830430)   2019-09-02 19:01:00
作者: GGFACE (ggface)   2019-09-02 23:25:00
超強...
作者: BignoZe (BignoZe)   2019-09-03 00:43:00
推 買了之後不斷更新 沒有極限 XD
作者: yuanyu90221 (菜菜鳥)   2019-09-03 01:42:00
作者: tedmax100 (Nathan-Lu)   2019-09-03 01:51:00
推推
作者: tttkkk (學到。)   2019-09-03 02:04:00
原來在聯發科也可以玩這些!請問有缺人嗎?
作者: Linares (TaeyeonSone)   2019-09-03 13:16:00
推 正在學go
作者: appleboy46 (小惡魔)   2019-09-03 15:35:00
@tttkkk 人事凍結
作者: akito117 (宗益)   2019-09-05 21:51:00
作者: kevingo (kevingo)   2019-09-10 09:00:00
強者同事給推
作者: Csongs (西歌)   2019-09-10 12:41:00

Links booklink

Contact Us: admin [ a t ] ucptt.com