大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
Ruby 入门
Ruby 以 表达力强、开发者 happiness 著称;Web 侧 Rails 仍是快速产品验证的经典栈。相比 java-fundamentals 的显式类型与编译期检查,Ruby 动态类型、元编程、DSL 友好——读代码像读散文,跑起来靠测试与规范。后端角色多为 Rails API、后台任务、DevOps 脚本(Chef 历史),与 php-essentials 同属「脚本出身、Web 见长」一脉。
学习目标
- 读懂 Ruby 类、模块、块(block)基本写法
- 理解 Rails MVC 与 Spring MVC 的分工直觉
- 说清 Ruby 在 2020s 后端招聘与存量系统中的位置
语法一瞥
class Track
attr_accessor :slug, :title
def initialize(slug, title)
@slug = slug
@title = title
end
def path
"/tracks/#{@slug}"
end
end
Track.new("java-fundamentals", "Java 语言基础").path
# => "/tracks/java-fundamentals"
块与 yield:迭代、回调的核心;类似 Java 8 lambda 但更无处不在。
[1, 2, 3].map { |n| n * 2 } # => [2, 4, 6]
Rails 后端骨架
| 层 | Rails | Spring 对照 |
|---|---|---|
| 路由 | config/routes.rb | @RequestMapping |
| 控制器 | TracksController | @RestController |
| 模型 | ActiveRecord | JPA Entity |
| 视图/API | jbuilder / JSON | @ResponseBody |
rails new api -api 可生成 纯 JSON API;与 nodejs-essentials 的 Express 一样 适合 CRUD 快启,复杂编排常拆微服务。
包管理与运行
- RubyGems + Bundler:
Gemfile锁版本,类比 Bundler ≈ npm + package-lock(见 pl-ecosystem) - RVM / rbenv:多版本 Ruby,类比 jenv / SDKMAN
- Sidekiq:Redis 后台任务,类比 Spring
@Async+ 队列
何时仍选 Ruby
- Rails 存量:Shopify、GitHub 早期栈等案例
- 创业 MVP:脚手架、Convention over Configuration
- 内部工具:脚本、一次性 ETL
新团队纯 greenfield:常选 Go/Node/Java 之一;Ruby 优势在 已有 Rails 团队与 gem 生态。
练习
- 安装 Ruby,
irb里跑 block 与map - 浏览 Rails Guides 的 Routing 一节,画一张与 Spring MVC 对照表
- 搜一个知名仍用 Rails 的产品,写一句后端职责
小结
Ruby = 动态表达 + Rails 约定;适合快启 Web 与维护 Rails 遗产,不是 Java 的直接替代品。 下一课横向语言对比。