Ruby Ruby 值得一学

G.K · 2021年04月28日 · 最后由 dajianshi 回复于 2021年06月08日 · 2454 次阅读

之前学过两次 Ruby,均以失败告终,甚至一气之下在 v 站发了个帖子:Ruby, Rails 不值一学

但是牢骚归牢骚,学习还是要坚持的。尤其最近换了一家写 Ruby 的公司,再次拿起书本系统性的学习 Ruby,越学越香。

感觉之前只会写点 Go 确实坐井观天了,最近学习才发现,Go 中的很多生态都来自 Rails, 比如 GORM,很多函数名都跟 Rails 的一样;sql-migrate 库也是从 Rails 汲取的,Gin、Echo 之类的框架等等。

虽然 Go 的性能特别好,但是就开发效率来说还是跟 Ruby 有差距,最近用 Go 重构了一个公司的 Rails 模块,代码量增加了好多。感觉对于一般小公司或者个人开发者,Ruby 真的应该是首选,特别是 Rails 框架,一周干完别人两周甚至一个月的活。

即便是从学习设计思想上来讲,学习 Ruby 也是大有裨益,之前很多 Go 库的使用只知其一不知其二,现在随着对 Ruby 的学习,才理解了那句 “语言只是工具,重要的是思想”。

现在每天都学的很开心,特意来分享下😋

v 站的帖子链接是不是失效了,想看看当初是怎么想的😀

真香警报 😂

确实很多语言从 Rails 借鉴了不少东西,但很多框架只是学到皮毛,并且受限于语言特性学得很别扭,不如直接用 Rails。所以看到说别的语言也有类 Rails 框架,Rails 就不值得学的言论我都是一笑置之。有的框架是学 Rails 之余,有自己思想和创新的,就值得去学。例如我对 Phoenix 的 live view 有兴趣,不知道跟 Rails 最近出的 turbo_stream 有什么不同。

yagche 回复

V2EX 有的帖子登录可见,未登录会跳转到首页。那个帖子还在。

Rei 回复

单从 web 开发这块,确实是 Go 的很多库都是用 go 重写了一遍 Ruby 的,现在我看到公司 Rails 项目用了什么,直接用 go 搜都能找到,比如"go I18n",问题是 Rails 是一个整体,无缝结合了 orm、脚手架、migrate 啥的,go 的得各自去找然后拼到一个项目里,这就不如 Rails 的开发体验自然。我的拙见是很多公司的项目和业务体量,Ruby 和 Rails 是足够支撑的,只是随着 go 太火都跃跃欲试。😋

其实学 ruby 花不了多少时间,学了也不亏,就算以后用不到也没有多大的损失。

至于说学 ruby 太费劲,那是因为编程基础没有学好。或者学 rails 太费劲,是因为 web 开发基础没有学好。这样表面上你学 ruby 和 rails 花了不少时间,其实大部分时间都是在用来补充自己的基础知识,这个锅扣不到 ruby 和 rails 上。

当然啦。从纯功利的角度上讲,学 ruby 和 rails 是没有必要的,因为不好找工作,生态也在走下坡路,不如多学点别的,面向工资编程。

adamshen 回复

我找工作都是 Go 开发,学 Ruby 就是单纯的感觉眼界太狭隘,也希望在技术上持续提升自己。

非宁静无以致远

piecehealth 回复

原来如此。👍

感到学 Rails 太费劲的往往是相对优秀的同学,如果不求甚解的用,其实不要太好用,但是很多优秀的同学喜欢刨根问底,那肯定会经过一段迷茫期的。

ericguo 回复

如果遇到问题不深究的话,总有一种如鲠在喉的感觉,但是有时候过度深究又会陷入各种无限困境,类似 node_modules 那种。。😅

adamshen 回复

学了不亏好评😉

手动为你点赞

Rails 约定优于配置 影响了多少后来人

之前有阵子因缘际会摸了点 laravel,也觉得根本一样,该改名为 php on rails 才对

开发效率 Go 只是比 Ruby 慢一点, 还要考虑后续的维护成本. 楼主先学的 Go 后学的 Ruby, 产生的认知错觉, 技术达到一定高度 Go 的开发效率并不慢. 另外, Ruby on Rails 一时爽, 换人维护真心就是火葬场. 空指针异常、风格不统一、解决问题的选择过多、国内生态差 (很多 SDK 都没 Ruby 版本)、非静态编译导致重构困难、微服务生态下毫无作为, 这些都是你要面对的.

虽然现在不用 Ruby 了, 但还是特别喜欢这个语言。 Roda, Sequel 的做者将要出一本 Ruby 的新书, 看到他发推的当天就果然预定了。

ThxFly 回复

请问 Crystal 现在写起来怎么样?

我觉得 Rails 项目代码阅读起来挺有障碍的,一个功能的实现具体在哪里不太好定位

shiweifu 回复

不怎样,已弃坑

shiweifu 回复

amber 这个框架维护太慢了,Crystal 三月份发布 1.0.0,2000 多星星的框架到现在还没支持 1.0.0。kemal 也是不勤励维护的状态。lucky 到现在 issue 还一大把。整一个 Crystal 都被 Ruby 的概念绑架了,难以突破和超越。看不到未来。

@ThxFly 现在入哪个坑了?

steve 回复

go 语言。我们公司某个新项目用 go 语言开发,相关人员花半个月就上手了,开发效率是可以的。代码提示,fmt 都是开发利器

@ThxFly go 的语法确实丑了点

ThxFly 回复

那 Go 不判空不一样一堆异常,除非是 Null Safe 的语言,不然感觉都一样

Go 主流都是用 Echo、Gin 这类框架配合 Vue、React 搞前后端分离。

找了一圈,发现了借鉴了 Rails 思想的 Buffalo,下一个项目想试试

@ThxFly 你们用 go 做 web 开发吗?

steve 回复

ruby, go, python 都在用

steve 回复

API 开发

ThxFly 回复

你好!请教一下,“开发效率 Go 只是比 Ruby 慢一点” 这个怎么说呢?

shiweifu crystal1.0 了 提及了此话题。 06月05日 10:23
xiaox 回复

慢多了

个人愚见,ruby 很好学,语法学会用不了一天,但是思想掌握了需要使用一定时间,再者是 rails 框架比较难掌握,毕竟太大了,包罗万象,还有很多魔法在里面。但是学会了之后,真的不愿意用其他语言框架了,毕竟被 RoR 惯坏了😀 😀 😀

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