Ruby on Rails (thường gọi RoR) là framework ứng dụng web open-source phổ biến nhất.
Nó được xây dựng bằng ngôn ngữ lập trình Ruby.
Bạn dùng Rails xây dựng ứng dụng, từ đơn giản đến phức tạp, không giới hạn những gì bạn hoàn thành được với Rails!
Framework là gì?
Framework là tập hợp code, tool và utility cung cấp cấu trúc cụ thể khi bạn viết software.
Cấu trúc này làm code organized hơn.
Công việc trở nên dễ dàng khi bạn học dùng đúng cách.
Rails làm chính xác gì?
Rails giúp bạn xây dựng website.
Loại website bạn dùng hàng ngày.
Trang web cho phép đăng nhập, comment, review, mua hàng…
Rails gồm nhiều component hỗ trợ việc này.
Ví dụ:
Active Record giúp đọc, tạo, update record database mà không cần thành database expert.
Trong khi routing mechanism cho phép map URL (như /login) đến action cụ thể dễ dàng.
Nếu code tất cả từ đầu, không framework, đó là KHỐI LƯỢNG CÔNG VIỆC KHỦNG KHIẾP.
Nhưng Rails xử lý tất cả chi tiết này cho bạn…
Để bạn tập trung xây dựng ứng dụng riêng!
Ví dụ ứng dụng Ruby on Rails
Ai dùng Rails?
Ví dụ site Ruby on Rails nào?
Một số:
- Github
- Shopify
- Ask.fm
- Kickstarter
- Scribd
- ConvertKit
- Twitch
- Instacart
- Zendesk
- SoundCloud
Đây không phải công ty nhỏ!
Tất cả đều hưởng lợi từ Ruby on Rails để phục vụ khách hàng.
Bạn nên học Rails không?
Nếu bạn tìm sự nghiệp thách thức, vui vẻ, sáng tạo xây dựng website tuyệt vời giúp đỡ người khác, Ruby on Rails có thể dành cho bạn.
Bất kỳ ai cũng học được Rails, ngay cả không có kinh nghiệm lập trình.
Có thể mất nhiều hoặc ít thời gian tùy đâu bạn đang đứng.
Nhưng MỖI KỸ NĂNG ĐỀU CÓ THỂ HỌC VÀ THÀNH THẠO.
Lợi ích dùng Rails:
- Giải pháp tích hợp. Rails cho mọi thứ cần thiết tạo web app.
- Convention và default config của Rails tiết kiệm nhiều công việc!
- Rails có hệ sinh thái tuyệt vời tìm thấy mọi tool và support bạn cần
- Đang phát triển tích cực, bạn nhận fix và tính năng mới thường xuyên!
Và lý do tốt nhất:
"Bạn được dùng Ruby - ngôn ngữ đẹp đẽ và sang trọng nhất tôi từng gặp" — DHH, tác giả Ruby on Rails
Triết lý Rails
Ruby on Rails là framework có quan điểm (opinionated).
Một quan điểm là convention quan trọng hơn configuration.
Điều đó nghĩa là gì?
Nghĩa là bạn ra quyết định ít hơn vì creator Rails đã quyết định giúp bạn.
Vì quyết định ít hơn bạn productive hơn và làm xong nhanh hơn.
Nhưng nếu muốn thay đổi, bạn có thể.
Ví dụ convention over configuration?
Rails tìm tên file cụ thể khi tìm code của bạn.
Ví dụ, nếu có model Book, Rails tìm file app/models/book.rb.
Đó là convention.
Thay vì phải nói:
"Hey Rails, file này ở đâu"
Rails bảo bạn nó nên ở đâu.
Tổng quan Rails từ cao độ 10.000 foot
Rails vừa vào bức tranh lớn của web app hoàn chỉnh như thế nào?
Tôi vẽ cho bạn:

Rails nhận request, route đến action phù hợp, action tương tác database (qua ActiveRecord) để phục vụ request. Sau đó trả kết quả (HTML hoặc JSON) về cho user.
Nếu muốn zoom vào phần Rails thì cần kỹ thuật hơn.
Rails dùng kiến trúc MVC.
MVC là Model, View, Controller.
Hình ảnh:

Action tổ chức vào controller, controller quyết định xử lý request như thế nào và hỏi database dữ liệu cần.
Sau đó controller render view.
View là thiết kế và nội dung trang.
Đó là sản phẩm cuối cùng trả về user.
Ai phát minh Ruby on Rails?
David Heinemeier Hansson (DHH) phát hành Ruby on Rails 1.0 vào tháng 12/2005.
Gần 14 năm sau, David vẫn làm việc trên Rails với nhóm contributor open-source lớn để làm cho nó tốt và nhanh hơn.
Tại sao ông tạo Rails?
"Tôi tạo Rails vì tôi muốn tận hưởng thứ tôi làm việc" — DHH
Có vẻ như lý do khá tốt 🙂
Ruby vs Ruby on Rails
Ruby là ngôn ngữ lập trình.
Ruby on Rails là framework xây dựng trên Ruby.
Khác biệt?
Ruby chuyển source code (kể cả Rails) thành thứ máy tính hiểu.
Rails là một lớp trên Ruby.
Lớp giúp bạn xây dựng web app.
Nhưng Ruby riêng làm được nhiều hơn thế, nó là ngôn ngữ lập trình mạnh.
Điều bạn có thể làm:
- Crawl và scrap website trích xuất thông tin
- Tự động hóa task như backup, alert, notification
- Xây dựng tool và utility, như log parser, security scanner, phân tích nội dung file…
Bài học rút ra:
Rails làm Ruby trở thành platform tốt cho web app, nhưng cũng có hệ sinh thái mạnh non-Rails dùng Ruby.
Cách bắt đầu học Rails
Bây giờ:
Đây là sai lầm lớn nhất nhiều người mắc.
Nhưng bạn tránh được nếu hiểu điều này:
Học khái niệm lập trình chung và ngôn ngữ Ruby trước.
Trước khi nhảy vào Rails!
Lý do đơn giản.
Bạn KHÔNG THỂ xây nhà từ mái nhà…
Nếu không hiểu foundation Rails hoạt động, bạn SẼ BIẾNG LOẠN.
Khi thấy error message sẽ nghe như tiếng nước ngoài.
Và đó SẼ RẤT FRUSTRATING cho bạn.
Giải pháp?
Bắt đầu học Ruby.
Kiên nhẫn, đảm bảo học kỹ.
Nếu tìm tutorial Ruby miễn phí beginner-friendly, đây là cái tôi viết cho bạn.
Nó cover tất cả basic.
Và làm điều độc đáo hầu hết tutorial không làm:
- Motivate bạn tiếp tục.
- Giữ mọi thứ đơn giản.
- Cảnh báo pitfall và điều cần chú ý đặc biệt.
Sẵn sàng bắt đầu hành trình Ruby developer?
Bắt đầu học Ruby ngay.