golang 老鸟快快显圣

248 天前
 thisisgpy

背景

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

现状

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

诉求

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

8978 次点击
所在节点    程序员
91 条回复
laikicka
248 天前
@LanhuaMa 那咋了?
crackidz
247 天前
你已经用 cursor 了,直接问 cursor 啊...
linuxsuren
247 天前
javalaw2010
247 天前
go 没有什么标准的项目结构,假设你的项目足够小,一个 main.go 就足以了。go 这玩意儿主打的就是一个随心所欲,爱咋咋地。
asen001
247 天前
看过很多开源的 web 项目,挺多都是直接在 controller 中梭哈
4Et5ShxMIq58n6Lr
247 天前
之前社区发过一个悟空聊天的 IM 项目,他的服务端你可以看看,个人感觉挺好懂的,我自己写的小项目就是复制他的结构,
zxjxzj9
247 天前
足够小的话 controller 梭哈都可以。想要一点正经项目的,我的理解就是把路由(面相 http 的部分),逻辑处理和面相数据库的部分分三个包出来各管各的就可以了。 简单来说 gorm 层就负责 crud ,controller (或者其他 any 叫法)就负责把你的从数据库里的东西变成你要丢给 http 的形式,然后用框架的路由层负责把这坨东西丢回去。
godiu
247 天前
我也在找,之前论坛也有个推荐贴。go-frame eagle go-web-template go-laravel ,go-hertz ,好多个,我都试了下,结果正经代码一行没写,全在试框架。
我的要求比较零散,gin ,sql 最好用 gorm ,接口能方便加中间件,封装层级不要太多。这样我可以方便那里做 web 的小项目。代码生成可有可无。
很多都是封装太复杂了,写一个接口好多定义。
ldyisbest
247 天前
jarytom
247 天前
gin-vue-admin
zgcwkj
247 天前
noyidoit
247 天前
几十个函数几千行的小玩意你全都写在 main.go 里面都行,想稍微讲究点就接着搞 MVC 那套,小项目去掉 service 只留 controller 和 model 。至于事务控制,gorm 的事务挺简单的,不知道你想问什么
godiu
247 天前
@loveuer 你这个挺适合我,有个小问题,readme 里面标题是 utl-one ,项目是 ult 。
vegetableChick
247 天前
@laikick 用这 B 头像,这是好事儿啊!
sthwrong
247 天前
没有标准,注意循环引用问题,注意是否有内部包要求,其他的只要满足需求随便搞。至于框架,本质就是路由管理,也以满足需求为准,比如是否方便生成相对标准的文档,有这需求可以用 go-zero ,goframe 等这些进行了一定规范设计的框架,要么就 gin,fiber 之类的接近只有路由功能的组装其他库自撸。
JKeita
247 天前
小东西,自己怎么舒服怎么来就行了。
cumt21g
247 天前
直接看看 K8s 及其相关项目的项目结构
encro
247 天前
Akkuman
247 天前
说说我目前在用的,我目前用的大多是代码生成式的,不过也有点难受

首先我会拿 postman 等工具先定义好接口到处 openapi 文档

entgo:orm 生成
ogen:根据 openapi 文档生成代码

好处是预先生成了大量样板代码,缺点也是这个,导致一些比较高阶的自定义操作需要对库有比较深的了解
dog82
247 天前
现在最应该学 python ,不过啥语言都差不多哈

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

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

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

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

© 2021 V2EX