Ruby 入门
Rails 生态;脚本与 Web。
30 分钟
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 生态。