作者appleboy46 (小恶魔)
看板Soft_Job
标题[心得] Go 语言目录结构与实践
时间Mon Sep 2 13:16:37 2019
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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.120.191.244 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1567401403.A.3AF.html
1F:推 cutekid: 大推(Y) 09/02 13:34
2F:推 codus: 先推ptt 再推坑 已买Go语言实战 09/02 14:18
3F:推 seal0112: 大推 09/02 16:22
4F:推 marmot00: 当天有听,很赞 09/02 18:46
5F:推 j830430: 推 09/02 19:01
6F:推 GGFACE: 超强... 09/02 23:25
7F:推 BignoZe: 推 买了之後不断更新 没有极限 XD 09/03 00:43
8F:推 yuanyu90221: 推 09/03 01:42
9F:推 tedmax100: 推推 09/03 01:51
10F:推 tttkkk: 原来在联发科也可以玩这些!请问有缺人吗? 09/03 02:04
11F:推 Linares: 推 正在学go 09/03 13:16
12F:→ appleboy46: @tttkkk 人事冻结 09/03 15:35
13F:推 akito117: 推 09/05 21:51
14F:推 kevingo: 强者同事给推 09/10 09:00
15F:推 Csongs: 推 09/10 12:41