瞎扯淡 Golang 生态是否有能与 Rails 媲美的框架?

tkvern · 2021年03月12日 · 最后由 EvanYa 回复于 2021年03月26日 · 3450 次阅读

求问,Golang 生态是否有能与 Rails 媲美的框架?

两个因素会阻碍 Golang 出现 Rails 这样的框架:

  1. 语言层面,Go 没有 Ruby 那么适合做 DSL,即使模仿也会带有浓厚的语言特色,没有 Rails 那么简洁。
  2. 目前流行微服务而不是单体服务,Go 又是微服务中的流行语言,用户群不匹配。
Rei 回复

Golang 做后端服务不同于 Ruby、Java 的优势在哪里呢

要是能有个差不多的就很好的

tkvern 回复

没实际做过,只是观察:

  1. 并发模型设计和实现得易用和高效。
  2. 编译成二进制便于部署(处理依赖和镜像的大小)。
  3. 微服务相关很多工具都是 go 实现,对 go 开发者更亲切。

buffalo 是比较类似的一个了

没有,golang 那么丑的代码怎么可能实现 rails?解析 json 还要写一堆配置文件,烦得一逼,改个字段,一堆文件要改 改完了还要重新编译看结果 象 rails 就贴一行 ActiveRecord::Base 然后放啥都能用,随便改

golang 就是 c 加了 gc 和一点高级数据容器 以方便 c 写不好的码农写 utils 定位就是工具集 所谓的高并发只有嘘头,国内需要高并发的公司和需要写业务的公司比例是多少?真正需要高并发的 bat 都有稳定运行多年的框架代码 犯不上重新用 golang 再写一遍,只有新创业的 saas 之类的小公司可能会试水一下 跟风的码农发现学完了 golang 根本找不到工作

tablecell 回复

可以来字节跳动

cosmtrek 回复

同样的一个功能,用 rails 实现 3 天就完了,用 golang 来做要一星期,然后当初做选择的决策层觉得进度太慢,只好让码农 996 来凑,然后指着码农的鼻子说你看看人家用 rails 的公司做得多快,跟高铁一样,码农其实没什么想法,就想找个角落安静地写代码,写着写着忽然以头抢地,口吐白沫,倒地不起了

实际上 选择合适的解决方案可以达到事半功倍的效果,但是为了跟风赶时髦,最后的结果往往是事倍功半 做决策的看走眼了,导致决策失误,最后把责任转嫁推到普通员工身上 身边这样的案例太多了 最可怜的是跟风的码农,粹死的时侯都不知道为什么死的

没有,就 go 那表达能力,java 都甩它几条街

tablecell 回复

现在的 golang 库的完善性和生态如果原本项目组织设计的好,一个中高级以上 golang 开发开发速度并不会你说的 3 天和一星期这么大的区别

为什么非要发展出 rails 这类框架,有 rails 还不够吗?

还是你想要 go 的性能,rails 的开发速度。

rails 的开发速度是快点,不过 rails 的部署成本真不低。

pathbox 回复

golang 2018 年 8 月正式宣布加的 modules 机制 原本项目组织设计的项目好大概率出现在 2018.8 月以后的新项目 小概率有可能是码农在 2018 年以前在自造轮子处理依赖管理 但是线上已经运行好好的项目的是不会让码农为了所谓代码优雅重构一遍的,就是码农愿意,老板也不掏钱

就算码农从 2012.3 月 go v1.0 发布开始写代码,按业内招聘要求 2 年以上开发经验的潜规则,要达到中高级的水平也要 3-5 年以后 中高级的码农维护旧项目无压力,开发新项目是撑不了长时间 996 的 当然要钱不要命以头抢地倒地不起的中高级码农也有 到地不起以后 中高级码农-- 新码农因为计生国策 + 女人无房不嫁 + 房贵限购 的组合拳下,在可以预见的 20 年内,新码农++ 是小概率事件,而且新码农越来越贵,技术不咋的,工资要求远超过中高级码农 中高级码农工资低,新码农工资高 工资倒挂将是长期新常态 按人穷志短的常理,工资高的新码农有钱了就更不愿意 996

这种利用 modules 机制完善库生态 + 中高级码农 996 的组合拳 集中所有优势集中到一个时间点,好处都归我的假设只在理论中成立,实际中很少见

pynix 回复

假设中高级码农的工资是 M 一般运维的工资是 Y 整个项目需要的工作日天数是 T 李会计拿着 excel 表的公式 T * (M+Y)=? 问老板选什么,并且嘱咐"听别人说 rails 的开发速度快点,golang 部署约等于拷贝文件,部署成本低 几乎可以忽略不计 " 聪明的老板就选了 rails 脑子不好的老板模糊听到了 'golang' '成本低'几个关键字 就选了 golang 回家以后躺在床上一细想,突然一拍脑袋发现不对劲 然后面色铁青,一言不发,在房间里不停地来回踱步,彻夜无眠

第二天一大早召集全休员工开会,会上发言:“鉴于公司遇到了前所未有的挑战,全体员工要与公司共克时艰 我宣布 从即日起,公司实行全员 996 作息时间表 特别是技术部的同事,要自愿降薪并内心高兴"

tablecell 回复

我想表达的是,国内用 go 比较广泛的公司是字节,学了 go 可以来字节试试。字节内部绝大多数在线服务都是 go 写的,也有很成熟的微服务框架支持。至于 996 不在讨论范围之内。

tablecell 回复

技术由老板来选?这种公司你还是赶紧离职的好啊。

pynix 回复

也就首次部署麻烦点吧

Ruby我可以打10个
Golang:。。。
Java:。。。

论美感,.net core 都可以甩 golang 几条街

huobazi 回复

小心被烧死的“异类”

BenX 回复

ben,我现在常用的是全世界最好的语言 PHP 😂

huobazi 回复

可以的,拍黄片不好嘛。

BenX 回复

拍簧片一直拍一直爽

写了几年 golang,带着强烈的鄙视开始使用,极其不爽其语法笨拙,后来也就写习惯了。受 rails 影响,项目中也用反射写各种魔法。写了魔法就需要同事去看源码,违背了 go 作为静态编译型语言的优势。 各有优劣吧,再讲究的人用 go 也写不出多漂亮的代码,就一个 for 循环,大家都一样,比较适合团队协作,掩饰像我这种菜鸡的技术水平。

写 Go 写的很痛苦,我已经写 Java 去了😂

go 不值得学习了呀

在 8 年前我就预言过,go 语言是一个泡沫,go 语言的推广是一场营销盛宴 https://ruby-china.org/topics/14407

现在我仍坚持以前的观点,不信再等 8 年后来看

tablecell 回复

哈哈哈 XSWL 说的很在理 用 rails 的开发效率真的是太高了 一个人可以短时间内搞定一个规模不小的 WEB 系统😀

如果你想什么都能做并且还适合的话 我建议 Java,用一个语言尽量利用它的特性设计程序,go 写微服务,私有部署都挺合适的,做管理台(一般用 rails 比较复杂的情况)你可能会很难受 服务尽量用数据和接口做关联 没必要强制绑定语言

EvanYa 回复

另外如果你需要的话 有一个 https://github.com/railstack/go-on-rails

需要 登录 后方可回复, 如果你还没有账号请 注册新账号