golang 老鸟快快显圣

2025 年 2 月 18 日
 thisisgpy

背景

我是从一线开发转行到国企做信息化项目管理,朝九晚五,上班基本就是我去 ZF 那边挨骂,然后我转头去骂外包商,基本没什么事。但是我一直放不下自己的技术情节,Java 写了 10 年也腻了,就想用 golang 自己写点东西玩。

现状

我最近尝试用 golang 写一些 web 小玩意儿,但是我很难在网上找到一个适合小项目的项目结构,AI 给的也是大型化的结构。我用 fiber 和 gorm ,viper 做配置文件解析。gorm 的事务管理也比较懵,我都是 cursor 生成。

诉求

请各位针对我只搞小玩意儿的诉求,指点一个 mini 的项目结构,推荐技术选型,指点一下 gorm 的事务控制。

10877 次点击
所在节点    程序员
91 条回复
root71370
2025 年 2 月 18 日
放下 java 思想
xxmaqzas
2025 年 2 月 18 日
gf 不行么?
laikicka
2025 年 2 月 18 日
laikicka
2025 年 2 月 18 日
不过小项目根本没啥必要纠结项目结构.
layxy
2025 年 2 月 18 日
Kratos 的工程结构可以参考下,虽然是 rpc 框架,但是你写 web 也可以
lesismal
2025 年 2 月 18 日
@laikick golang-standards/project-layout 这个根本不算是好的结构:

而且这个 repo 作者可以算是 go 社区里最不要脸的了,我都不敢用“最不要脸的之一”来描述他、怕“之一”不准确:
https://github.com/golang-standards/project-layout/issues/117

请做个好人,不要再向别人推荐这个带来更多误导。
laikicka
2025 年 2 月 18 日
@lesismal 是的是的 孩子 你是对的
Ayanokouji
2025 年 2 月 18 日
@lesismal 好巧,我也不喜欢这个目录结构
@thisisgpy 我是基于这个项目改的 https://github.com/mikestefanello/pagoda
lesismal
2025 年 2 月 18 日
> 是的是的 孩子 你是对的

@laikick 其实如果自己不会好好说中文的话,可以完全去混非中文圈,看到过别人喷你、这不是糟蹋自己嘛,何必呢
wogogoing
2025 年 2 月 18 日
如果是这样的话,那我安利下我的开源项目:

https://github.com/keepchen/go-sail
laikicka
2025 年 2 月 18 日
@lesismal 你是对的 👍
sn0wdr1am
2025 年 2 月 18 日
drealism
2025 年 2 月 18 日
如果是 web 后端的话,我自己有搞一个 https://gitea.loveuer.com/loveuer/ultone
laikicka
2025 年 2 月 18 日
@sn0wdr1am golang-standards/project-layout 这个根本不算是好的结构:

而且这个 repo 作者可以算是 go 社区里最不要脸的了,我都不敢用“最不要脸的之一”来描述他、怕“之一”不准确:
https://github.com/golang-standards/project-layout/issues/117

请做个好人,不要再向别人推荐这个带来更多误导。
voidmnwzp
2025 年 2 月 18 日
建议换个用 golang 的公司
mengzhuo
2025 年 2 月 18 日
吵半天,就没人看看官方文档?

https://go.dev/doc/modules/layout

还有这个 https://go.dev/doc/
yiqiao
2025 年 2 月 18 日
@lesismal #6 我靠。我好像就是这种结构,那么有没有其他推荐结构呢?#8 给的可以吗?
freemoon
2025 年 2 月 18 日
有技术情节,咋个连有文档的 gorm 事务都搞不定?怎么个事儿
lesismal
2025 年 2 月 18 日
@yiqiao go 的代码没像 java 那么臃肿,这种审美问题,符合团队的标准和自己的喜好不影响效率就行。如果已经在用并且习惯了,不改也没问题,实用主义
body007
2025 年 2 月 18 日
把 gf 官方文档看完,只用 gf 一个库就行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1112322

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX