最近正在用 goframe 做项目,公司定的用这个框架。
目录分层设计虽然讲了很多道理,但是感觉很蛋痛,和 go 的其他项目风格完全不一样。
因为框架的目录分层设计,搞了很多没有代码生成工具那要搞死人的代码目录,所以就有了 gf gen 命令。。。
就是感觉怪怪的,个人不喜欢,把问题复杂化了,感觉就是为了设计而设计,虽然文档讲了很多理论来支撑,这样真的好吗?
小菜鸟角度看来。
1
lifespy 2023-09-12 11:06:45 +08:00
有不方便,也有好处,到一定量才能体现出来
|
2
Nazz 2023-09-12 11:07:44 +08:00
公司要求用的话, 不喜欢也没办法了
|
3
skiy 2023-09-12 11:21:46 +08:00
这框架是参考 Laravel 的,所以有 Laravel 经验会好些。
另外,它这框架有时候小版本升级偶尔也会有 breaking ,特别是 ORM 部分。 其次,我用它的框架根本就不用 gf gen 相关命令,其实这个应该说,框架与它并无直接关联,完全不影响单独使用框架。 |
4
jackdou 2023-09-12 11:22:26 +08:00
新手入门比较简单的框架了,service 目录实现单例化同时又可以防止循环引用。弄得复杂确实是为了大型工程考虑,小工程怎么来都无所谓
|
5
28Sv0ngQfIE7Yloe 2023-09-12 11:30:06 +08:00
经历过多人协作并且大家都乱写,你就知道有这么一个看起来繁重的标准是多么好了。。
|
7
shunwei 2023-09-12 11:49:30 +08:00
其实照着用也挺省心的, 工具类也很齐全
|
8
iosyyy 2023-09-12 11:52:31 +08:00
挺好的 很多时候框架简单的后果就是整个项目撑不起来
|
9
skiy 2023-09-12 12:00:22 +08:00
|
10
ClarkAbe 2023-09-12 12:22:10 +08:00 via Android
gf1 很不错...gf 2 就算了...分层有点太奇怪了...就像自己不是在写 golang 而是在写 gflang 一样奇怪...
|
11
sunmoon1983 2023-09-12 12:43:03 +08:00
从 goFrame1 走过来,一直感觉不错
|
12
wzw 2023-09-12 12:58:24 +08:00 via iPhone
我还在用 v1 ,v2 尝试了,后面升还是换再看看
|
13
ruoge3s 2023-09-12 13:14:38 +08:00
越来越复杂...
|
16
zyxk 2023-09-12 14:18:48 +08:00
功能全的,除了 gf 还能有什么选择
|
17
skiy 2023-09-12 14:20:57 +08:00
@dyllen 怎么可能完全不一样呢?完全不一样的话,构架就得改名了。我刚瞄了下路由,还是原来的配方。变化肯定是有的,但完全不一样是不可能的。
不过,v1 或 v2 对于我来说,其实没差,很容易上手。但无论如何,我都不会用 gf gen 的,工具问题太多了。群里面经常见到有人提问题。 |
18
dyllen OP @skiy 我也是看别人写的,gf 工具是问题多多,昨天刚用了,生成的 model 没数据类型,看了下 issue ,反馈最少一周以上了,刚发布的最新版竟然还是没改,回退旧版用了。
但是你不用 gf gen ,就麻烦了,哪些代码手动写要符合框架的规范要搞死,除非你不走框架的那一套规范。 |
20
lyhapple 2023-09-12 15:27:56 +08:00
上周因为自己想做点小项目,正好体验了两天,gen sevice 生成代码那一块感觉不太好用,要先去写 logic 目录代码,没法自动生成,整体用下来仍然感觉不够快速, 也可能是我使用的姿势不对 :)
|
21
dog82 2023-09-12 15:52:53 +08:00
其实用哪个框架,区别真不大,程序员不能太纠结用啥技术
|
22
guonaihong 2023-09-12 16:42:54 +08:00 1
gf 和 go-zero 我选后者。
上面的选择主要基于清晰度,gf 眼花缭乱的基础类型,看别人用 gf 写的代码清晰度绕来绕去不知所云。 还有一个是担心 gf 代码质量,记得看同事的代码用了.gVar , 就扫了一眼 gf 里面的 gVar 的 New 的实现。发现一个 bool 变量的语义写反了,这是一个 bug(后面和同事说了下,应该提 pr 修复了)。 最后如果 gf 作者能看到我的回答,有些建议: 1. 基础类型没必须 type 一个新类型,只会分裂认识。 2. json/xml 等等基础能力没有必须再包装下,同一。 3. 观注能提升生产力的地方,静态 MVC ,统一数据结构,然后根据这些数据结构生成一些 logic 代码。 |
23
dongtingyue 2023-09-12 18:50:58 +08:00
Javaer 将理念带到 php 出来了 Laravel 现在又将理念带到 go ?
|
24
gowk 2023-09-12 19:15:54 +08:00
gf 确实有点复杂,而且 Go 用来做业务,我也不是很推荐,if err != nil 写起来很蛋疼
我现在用 .NET 7 写后端业务,无比丝滑 |
25
qieqie 2023-09-12 19:34:58 +08:00
和上面大部分意见相反,我倒是觉得小的项目可以用大而全框架来快速启动,大型项目应该精心选择贴合架构,性能和可定制性足够好的轮子来组合。
我没用过 GoFrame ,不过多年前和作者在某个写 PHP 的电商网站当过同事加过好友所以对这个项目有所耳闻 ;) |
26
morebuff 2023-09-12 20:16:31 +08:00
大而全的框架不建议用,全部依赖吊死在一个树上,局部出现问题,全局也不好搞,还是自己组合,哪块有问题,可以单独替换
|
28
thinkingbullet 2023-09-13 11:19:25 +08:00
个人比较喜欢 gf 框架使用快两年了,公司的项目比较大,多人开发的时候十分方便
|
29
lilei2023 2023-09-13 13:32:56 +08:00
作为一个初学者,感觉很适合,不用关心太多的非业务模块,基本上都配置好了,只管写逻辑就行
|
30
czyt 2023-09-13 14:01:09 +08:00
|