golang 老鸟快快显圣

246 天前
 thisisgpy

背景

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

现状

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

诉求

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

8958 次点击
所在节点    程序员
91 条回复
wangritian
246 天前
goframe 不错很多人推荐了,小项目建议只分 controller service model 三层
zhoujx
246 天前
你写的代码量有多少?很复杂吗?如果只是玩玩的,直接不用分目录了,直接干
zhoujx
246 天前
先平铺,以后项目大了再找个合适的框架再调整就行了
leonshaw
246 天前
@laikick 原来如此,我说怎么那么多项目喜欢放个 pkg 目录,跟 src/main 一样简直是脱了裤子放屁。
bulo
246 天前
工作十年还在纠结语言??
harlen
246 天前
@thisisgpy sqlc + ent
fxjson
246 天前
https://github.com/fanqingxuan/go-gin, 我自己用 gin+gorm+go-redis 库开发的一个开箱即用框架,个人感觉比较适合小项目
bug123
246 天前
写了十几年 golang ,都是一把梭哈

- view
-- base
-- ...

- static
-- js
-- css
-- ...

- controller
-- ...

- utils
-- ...

main.go
run.sh
...
thisisgpy
246 天前
@bulo 我是不再依靠写代码维生,也没太多兴致去探索技术。现在只是还有一点情怀,想着方便自己,做点小东西,所以看 golang 简洁,就想着拿来用。至于说帖子的主题,其实也是没有从 java 复杂的项目结构思维中脱离出来,所以来提问寻求指点。
thisisgpy
246 天前
@biu7 我高中学文科,大学读的金融,毕业搞了 10 年开发,挺离谱的经历。然后我口才蛮好,文笔也不错,所以转国企就比较顺当。
strobber16
246 天前
@thisisgpy 没有,建议放弃 orm ,用标准库 sql
l3Sa2ueDMH3l8JxC
246 天前
https://github.com/zeromicro/go-zero
这个国内的开源项目,基本上和我现在公司自研的一套在思想上大同小异
qq1340691923
246 天前
如果不忙的话并且想学 go 的话,可以用 go 给 ElasticView 写插件,插件模板工程地址: https://github.com/1340691923/eve-plugin-vue3-template
durban126
246 天前
Felldeadbird
245 天前
写 go 把 go 当成面向过程,全是在调用函数 就没那么大负担了。

gorm 事务不是很简单吗。跟着文档声明就好了。
extrem
245 天前
理解你的想法,但是建议你多想想为什么要这么做

就是说,要写代码直接去写就好了,不是一定遵循什么“项目结构”才能写,如果说项目到了那个地步你自然不会再纠结这个问题

另外,别用 gorm ,直接用最原始的 sql 拓展如 sqlx
linyuyizhizou
245 天前
建议学学 Rails 。
CinHaiZio
245 天前
pkg 放公用, 框架 初始化方法, 工具类, 配置, app 放业务逻辑, 什么 ctrl,service 可以塞这,其他玩意也可以塞这, app/cmd 放启动的,

完啦, 加个 script, config, resource, 加个 deploy 放 nginx.conf,dockercompose

模块化就/app/{module}/cmd/main.go 咯
kevinpendragon
245 天前
其实大佬写小项目也是一把梭。。。结构本身不是很值得纠结的东西
rqYzyAced2NbD8fw
245 天前
@laikick #11 他对不对看点赞数就知道,你算哪根葱要你来确认他是对的?

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

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

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

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

© 2021 V2EX