[心得] 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