V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cj323
V2EX  ›  Ruby on Rails

Ruby on Rails 用着太舒服了

  •  
  •   cj323 · 4 天前 · 6610 次点击

    实在忍不住来发一贴吹一下 Ruby on Rails 。这两天用了一下,简直太爽了。

    (在下之前一直是在中小企业做全栈,用过一些其他的语言和框架,主要是用 Node/Python 后端+React/Vue 前端,个人项目也用过 Next/Nuxt 。用 Rails 感觉很不一样,这里分享一下。)

    首先,Ruby 语言很带美感。

    1. 没有 type ,我个人很喜欢,脚本语言就应该这样,自由便捷。虽然工程化差一点,但是写着舒服。
    2. 简洁,同样的东西可以用更少的字符实现,同时又比较好理解。

    其次,Rails 是很完善又精美的框架

    1. 自带的工具极其完整,我之前接触的框架最完整的应该就是 Django ,但是和 Rails 相比简直小巫见大巫。Rails 几乎不需要第三方依赖,也不用上云 - db, orm, caching, storage, REPL, test, i18n, mailer 等等都是直接开箱用:这些随便一个在 Javascript/Python 生态里往往都是要第三方依赖甚至云服务,麻烦很多。
    2. Model(ApplicationRecord)用着很舒服,很多很方便的细节,随便举个例子比如 dirty methods 类似*_previously_changed?或者*_previously_was;这种基础逻辑在其他框架下基本都要自己实现,rails 直接自带,省不少事。

    最后,Ruby 生态我很喜欢,当然这里我喜欢的点不是火爆程度以及工具多,Ruby 当然远没有 Python/Javascript 热。但是我能接触到的 Ruby 论坛和开源项目都是热度恰到好处 - 主要体现在人不是太多,迭代新事物速度不是那么激进。这点很好,不折腾。对比 JS 生态,同样的问题总有一大堆类似的工具解决,而很多工具用两年就淘汰,很糟心。

    继续开发去了嘿嘿

    69 条回复    2024-12-24 07:03:02 +08:00
    nomagick
        1
    nomagick  
       4 天前   ❤️ 26
    Ruby: 我生君未生,君生我已老
    ericguo
        2
    ericguo  
       4 天前
    自己用肯定 rails ,当老板肯定选 java ,各有各的理由。
    BenX
        3
    BenX  
       4 天前
    Ruby: 我生君未生,君生我已老
    adoal
        4
    adoal  
       4 天前
    上个时代的天花板,一直被模仿,从未被超越。
    jkm
        5
    jkm  
       4 天前
    最近知道的一个团队在把生产环境 RoR 的代码迁移到 golang, 据说是性能和可扩展性不如 golang?
    june4
        6
    june4  
       4 天前   ❤️ 5
    不是我的菜,不但无类型还到处是魔法,语言可读性也差
    IdJoel
        7
    IdJoel  
       4 天前   ❤️ 1
    试试 laravel 呢? 我觉得仅次于 Ruby on Rails ,甚至有些功能比他还好用
    ziseyinzi
        8
    ziseyinzi  
       4 天前
    今夕是何年
    ericguo
        9
    ericguo  
       4 天前
    @IdJoel 那还不如换 Go 呢,PHP 的就业市场甚至不如 Java
    ala2008
        10
    ala2008  
       4 天前
    方便是方便了,老板招不到人啊( dog )
    c1985382
        11
    c1985382  
       4 天前
    我已经反反复复拿起又放下了,主要人太菜而 Ruby 这个语言实在太多魔法看不懂。
    想写个模块在 Rails.cache 上增加些功能,不知道要怎么下手...
    redvoilin
        12
    redvoilin  
       4 天前
    rails 很好,一直在用
    Wyearn
        13
    Wyearn  
       4 天前
    Ruby 性能不行,好像还是单进程在跑,我们就是从 Ruby 换到 Go 的。
    yiqiao
        14
    yiqiao  
       4 天前
    @IdJoel Laravel 或者说早期的 PHP 框架设计思想都源于 Rails ,我觉得不如换到 Go 或者 Java 上。
    crayygy
        15
    crayygy  
       4 天前   ❤️ 2
    八年前写的时候就是这种感觉,写代码从未有过的爽感,比现在写 C++ 爽多了
    至于说速度慢,个人觉得大部分的应用和公司还到不了拼这个性能的程度,能快速实现最重要
    Ayanokouji
        16
    Ayanokouji  
       4 天前
    Rails 简单了解过,放弃的原因打包比较麻烦
    shoco
        17
    shoco  
       4 天前
    糖太多了,粘牙
    lambdaq
        18
    lambdaq  
       4 天前
    @shoco 坐在轮椅上回味边走边吃糖的日子哈哈哈
    Belmode
        19
    Belmode  
       4 天前
    我也挺喜欢 Ruby 和 Rails ,可惜生不逢时,而且现在市场占有率越来越低了。
    dddd1919
        20
    dddd1919  
       4 天前   ❤️ 1
    Rails 的激进和保守受 DHH 以及 37 的模式影响比较深,总能在侠级霸搞的技术圈里保持冷静和另类的思考。
    人生苦短,我选 Rails
    fu82581983
        21
    fu82581983  
       4 天前
    Ruby on Rails 就是可以直接拿来干活的,就是 Ruby 在国内基本上没有公司招了,哪怕 Python 和 PHP 做后端的也越来越少了。
    sleepm
        22
    sleepm  
       4 天前
    https://goframe.org/
    官网标题
    类似 PHP-Laravel,Java-SpringBoot 的 Go 语言开发框架
    chenqh
        23
    chenqh  
       4 天前
    @Wyearn 能说说减少了多少服务器?开发人员增加了多少?开发时间有什么变化?
    justfortest
        24
    justfortest  
       4 天前
    ror 是真的好用,用来写 web 真的不要太方便
    WindProtect
        25
    WindProtect  
       4 天前
    ror 好就好在,我觉得可以这么写,然后还真可以这么写。但是糖确实太多,如果水平差点的话,接手别人的代码就会很痛苦。

    一人开发的话,我挺喜欢的。
    jjx
        26
    jjx  
       4 天前
    恍惚间, 回到了 15 年前
    yh7gdiaYW
        27
    yh7gdiaYW  
       4 天前
    自带工具完整这个确实是 python 的痛点,django 和 fastapi 相比 java 的 spring boot 都像个玩具
    IdJoel
        28
    IdJoel  
       4 天前
    @yiqiao java 没用过不评价,go 的框架用起来真的很麻烦 ,就打一个数据库来说,没有一个直接改了 env 就能用的,又得引用包,又得弄读配置文件,一系列太麻烦了
    IdJoel
        29
    IdJoel  
       4 天前
    @ericguo Ruby on Rails 就业市场也不好吧? 单纯讨论的是开发是不是舒服啊
    Wyearn
        30
    Wyearn  
       4 天前
    @chenqh 我们都是卖给客户的标准产品吧,都是单机部署,开发人员没有增加多少,但是产品的稳定性和性能比起以前的 Ruby 和 Rails ,强了很多,客户体验也好很多的。
    gjnevergo
        31
    gjnevergo  
       4 天前
    @june4 同意 过于魔法的语言 不适合做业务 (性能确实也不好)做过一个项目
    然后生态太少太慢了 也不是好事
    prettybot
        32
    prettybot  
       4 天前
    有 cursor 啥也一样,已经没有明显的开发效率优势了
    何况 rails 在国内都找不到工作了
    snowlyg
        33
    snowlyg  
       4 天前
    @IdJoel laravel 就是仿的 Ruby on Rails , 不过很多 laravel 的集成框架真的很好用,写业务很快,一个人顶一个团队。
    humbass
        34
    humbass  
       4 天前
    当年写 RUBY 仅仅是因为这个语言可以支持后台长连接应用程序,在物联网流行的那会儿,这个非常重要啊,因此技术栈一度从 PHP 的 YII 转到 ROR
    zhouyin
        35
    zhouyin  
       4 天前
    @humbass
    长连接具体用了什么 ruby 模块?
    ben1024
        36
    ben1024  
       4 天前
    试试 Laravel, 全新版本的 ROR
    70k
        37
    70k  
       4 天前
    现在有 Claude 这些敏捷开发框架已经没有任何优势了 10 年前用 django 的时候一直羡慕 rails 后来熟悉了 django 以后又感觉没必要换了 毕竟 python 的语言生态要丰富很多
    现在直接用 Claude 写 go web 自己还能掌控细节 不用记一堆封装的东西 综合起来这样头脑负担最小
    max1024
        38
    max1024  
       4 天前 via Android
    nodejs 也不错,中小项目,轻松搞定
    zhouyin
        39
    zhouyin  
       4 天前
    @70k
    用 claude 写 go web 有没用 go 现成框架?
    Mark24
        40
    Mark24  
       4 天前
    @dddd1919 同感
    coool
        41
    coool  
       4 天前   ❤️ 1
    From Hello World to IPO 不只是一句口号:Rails 8 添加了 Solid Queue 、Solid Cache 、Solid Cable 三件套,GitHub Action 这种 CI 工具也有,部署不止给你写好了精校版的 Dockerfile ,甚至还准备好了 Kamal 部署工具,基本上在你有 IPO 之前,只需要一个数据库就行了。

    实在是爱不释手,最近开个公众号专门总结 Ruby 知识,欢迎关注:Ruby 札记
    Ringokun
        42
    Ringokun  
       4 天前
    ruby 有点像风暴英雄? 玩的都说好,就是没人玩
    wisetc
        43
    wisetc  
       4 天前 via iPhone
    gitlab, emacs china, sass compiler
    Rorysky
        44
    Rorysky  
       4 天前
    我脑子不够用,没有类型 我看不懂
    lijiangang886
        45
    lijiangang886  
       4 天前
    但是学了 ruby ,去哪里找工作呢
    dwu8555
        46
    dwu8555  
       4 天前
    @ben1024 #36 php 就算了
    luziafy
        47
    luziafy  
       4 天前
    只会、只能用一种语言、框架的可以大声吆喝自己用的就业市场好,性能高。
    公司让用啥用啥,自己的项目我选 Larave
    PopRain
        48
    PopRain  
       4 天前
    适合自己的才是最好的,大项目严格类型是必须的,否则 TypeScript 也不会流行
    jojobo
        49
    jojobo  
       4 天前
    可惜在国内岗位太少了
    dre4m
        50
    dre4m  
       4 天前
    Ruby: 我生君未生,君生我已老
    jeesk
        51
    jeesk  
       4 天前 via Android
    你用 js 加 css 写永远不会过时
    zhengfan2016
        52
    zhengfan2016  
       4 天前
    nas 用户,用过 ruby 写的 discourse ,docker 光启动就占用 2 个 G 内存,我对 ruby 语言已经没好感了。

    php 写的虽然性能垃圾好歹也就占用几百 M 内存,上一个让我这种外行印象不好的是 java ,启动个 es 直接把我的弱鸡 nas 内存爆了,docker 容器占用 6 个 G ,服务器直接失联了,ssh 都连接不上。

    后面发现 java 有 Xms 什么的参数可以调整内存占用,但我还是对 java 这个语言有刻板印象。印象最好的是 golang ,用过的开源容器,占用基本 50m 内
    jeesk
        53
    jeesk  
       4 天前 via Android
    国内企业用 java ,根本没人用。
    个人自己 go 加 vue ,简单得要死。go 没有的生态,java 随便上, 找不到理由用这玩意。
    Frytea
        54
    Frytea  
       4 天前
    哈哈这么说就想用一下了,下次有机会个人项目用一下试试
    Bluecoda
        55
    Bluecoda  
       4 天前
    虽然现在写 python 多,但是 rails 开发是真滴舒服,做了十几年 rails 了,怀念
    zhouyin
        56
    zhouyin  
       4 天前
    @jeesk
    有没有用 ai 辅助写代码 go 有没有写起来太慢?
    zhouyin
        57
    zhouyin  
       4 天前
    @jeesk
    印象中 ruby rails 就是不随大流 比如前后端分离 它搞了 hotwire
    sagaxu
        58
    sagaxu  
       4 天前
    我接活都用 Java/Kotlin ,

    1. 减少封装层次,不写 vo/dto/po/bo 这些个脏东西,开发效率跟 python/php 差不多
    2. 支持度比较高,提供各种语言 SDK 的场合,不一定有 python/php/go/nodejs 的,但不大可能没有 Java 的
    3. 内置一个 JRE ,基本上复制进去就部署好了,比 python/php 之类简单,也不用 docker
    pythoner
        59
    pythoner  
       4 天前
    我们公司的项目以前是用 ROR 写的,后来招不到人,改成了 java
    lordofmetis
        60
    lordofmetis  
       4 天前 via Android
    Omakub 有人用不? :)
    ingnoscemihi
        61
    ingnoscemihi  
       3 天前
    完了,没有 type 看着就不想用啊
    zhouyin
        62
    zhouyin  
       3 天前 via Android
    @sagaxu
    怎么内制 jre ?内置 web 服务器?
    ericguo
        63
    ericguo  
       3 天前
    @IdJoel 谈舒服,Rails 肯定比 Laravel 舒服,所以我们还是谈谈就业吧。PHP 就业是比 Rails 好,Rails 是一群人说招不到人,一群人说找不到工作,PHP 就不一样了,没人说招人,也没人找到工作(我认识的 PHP 都转 Go 了)
    Kauruus
        64
    Kauruus  
       3 天前
    不用上云?也没多少 Web 框架要默认上云或强行你上云吧。

    不知道为什么 Rails 8 就把 No PaaS 当作亮点宣传了。当然我是喜欢 solid 系列的包的。
    lichao
        65
    lichao  
       3 天前   ❤️ 1
    楼上有不少人说 ruby 没有类型,事实上 ruby 是强类型语言
    zhouyin
        66
    zhouyin  
       3 天前 via Android
    @sagaxu
    不写 dto vo 直接用 jdbc ?
    will800
        67
    will800  
       2 天前
    前提是你要回 rails ,学习成本很高
    ranjiayu
        68
    ranjiayu  
       2 天前
    一个人写的小项目我就用 ROR
    franklinyu
        69
    franklinyu  
       1 天前 via iPhone
    @lichao 可能是說沒有靜態類型,目測是 Go 、Java 用戶
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3527 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:03 · PVG 13:03 · LAX 21:03 · JFK 00:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.