Bắt đầu với Sinatra
Vì cuộc đời là những chuyến đi, đọc là để cảm nhận, code là để trải nghiệm, vậy nên : Cứ đọc rồi sẽ hiểu, cứ code rồi sẽ biết Nếu đã đọc và code rồi nhưng không hiểu thì bỏ qua Việc gì khó thì bỏ Sinatra là gì? Đây là những gì mà trên trang chủ Sinatra đã viết: "Sinatra là một DSL để xây ...
Vì cuộc đời là những chuyến đi, đọc là để cảm nhận, code là để trải nghiệm, vậy nên : Cứ đọc rồi sẽ hiểu, cứ code rồi sẽ biết Nếu đã đọc và code rồi nhưng không hiểu thì bỏ qua Việc gì khó thì bỏ
Sinatra là gì?
Đây là những gì mà trên trang chủ Sinatra đã viết: "Sinatra là một DSL để xây dựng ứng dụng web bằng Ruby nhanh nhất với nỗ lực tối thiểu"
Vậy cụ thể là như thế nào, DSL (Domain-specific language) là một ngôn ngữ được thiết kế để thực hiện trong một lĩnh vực cụ thể, nó trái ngược với các ngôn ngữ có mục đích chung để giải quyết nhiều lĩnh vực. Sinatra là một thư viện Ruby có trọng lượng nhẹ để tạo ra các truy cập HTTP cực kì dễ dàng. Ruby đơn giản nhưng là một ngôn ngữ lập trình hướng đối tượng rất mạnh mẽ, cú pháp Ruby trong sáng và linh hoạt. Còn HTTP là một giao thức cực mạnh của ứng dụng Web.
HTTP (Hypertext Transfer Protocol) là một giao thức truyền tải, nó sẽ chấp nhận sự liên lạc giữa clients (người dùng) và servers (máy chủ) qua internet. Một client (như trình duyệt web) sẽ yêu cầu cung cấp tài nguyên (thông thường là nội dung một trang web) từ một server, server sẽ xử lý yêu cầu và sau đó sẽ gửi trả lại một phản hồi cho client. Phản hồi này sẽ chứa một mã trạng thái (thông thường là 200, chỉ ra rằng mọi thứ đều ổn) những yêu cầu và phản hồi này là những tin nhắn được gửi qua HTTP.
Sinatra làm những điều đó rất dễ dàng - gần như là bình thường - để xây dựng dịch vụ hay ứng dụng web bằng Ruby. Một ứng dụng Sinatra cơ bản được tạo bởi một hoặc nhiều tập tin Ruby. Bạn không cần thiết phải trở thành một chuyên gia Ruby để sử dụng Sinatra, nhưng nếu bạn biết sâu Ruby hơn, bạn sẽ tạo được các ứng dụng Sinatra một cách tốt nhất. Và bên cạnh đó, thật đáng tiếc nếu không học Ruby bởi vì nó là một ngôn ngữ rất thú vị. Mặt khác, học Sinatra và nghiên cứu những đoạn mã của người khác viết chắc chắn sẽ cải thiện kỹ năng lập trình Ruby của bạn. Như tôi đã đề cập ở trước, Sinatra là một thư viện có trọng lượng nhẹ, với dưới 2000 dòng mã viết bằng Ruby. Đó là một giá trị đáng để học tập, bạn sẽ biết Sinatra hoạt động như thế nào, và bạn cũng sẽ biết thêm nhiều đoạn mã Ruby rất tuyệt.
Sinatra được viết vào năm 2007 bởi Blake Mizerany, và liên tục được phát triển, tại thời điểm bài viết này thì Sinatra đã được tải hơn 25 triệu lần tại trang web RubyGems từ năm 2010. Cơ bàn thì vì sự yêu thích, nhưng Sinatra cũng có khả năng sáng tạo ra những web có dữ liệu lớn như BBC, Github, Linkedin. Và còn là ý tưởng cho các ngôn ngữ khác sao chép, kể ra như Express, Slim, Flasl, Spark và Nancy.
Không giống như Ruby on Rails, Sinatra được xác định không như một framework. Nó không có các quy ước và các áp đặt khung sườn tập tin cho bạn. Sinatra cơ bản là một ứng dụng Ruby, những gì Sinatra làm là kết nối ứng dụng đó vào Web (qua HTTP). Thay vì ẩn dấu phía sau nhiều ma thuật, thì Sinatra lại phơi bày cách mà một Web hoạt động bằng khái niệm của HTTP và URL. Điều đó có nghĩa là bạn hoàn toàn có thể xây dựng một Web có dữ liệu lớn và mạnh mẽ bằng Sinatra. Nó sẽ hoạt động theo cách mà bạn muốn mà không bị các quy ước hạn chế như Rails. Tuy vậy, Sinatra cũng sẽ không ngăn cản bạn viết các mã tệ.
Sinatra được xây dựng từ trên nền Rack, nó là một giao diện cấp thấp tương tác giữa một HTTP server và một đối tượng Ruby. Các Ruby Framework như Rails, Ramaze, Rango, Camping và Halcyon cũng được xây trên nền Rack. Nó giúp Sinatra dễ dàng mở rộng để sử dụng các API, RubyGem riêng cho ứng dụng của bạn.
Tại sao bạn nên sử dụng Sinatra ?
Sinatra giúp bạn viết những đoạn mã thanh lịch nhưng vẫn có kết quả tuyệt vời. Điều đó có nghĩa là bạn có thể tạo đầy đủ một ứng dụng web chỉ trong một tập tin. Nó không có các thủ tục thiết lập phức tạp hay phải lo lắng về cách cấu hình. Bạn chỉ cần mở một trình chỉnh sửa văn bản (sublime chẳng hạn) và bắt đầu, để bạn có thể tập trung vào ứng dụng của bạn.
Phát triển bằng Sinatra là hoàn hảo cho việc tạo mẫu các ý tưởng. Cú pháp của nó đủ để bạn bắt đầu, nhưng rất mạnh mẽ. Sinatra vô cùng linh hoạt - nó giải thoát cho bạn và giúp bạn làm những gì mà bạn muốn. Nó là lựa chọn hoàn hảo để triển khai API, Widgets, Facebook Apps và nhiều hơn nữa.
Và một điều cuối những không kém ý nghĩa, đó là cộng đồng hỗ trợ Sinatra khá tuyệt vời.