- Một framework web đơn giản nhưng mạnh mẽ cho hệ sinh thái Ruby, dựa trên triết lý abstraction thấp, low-ceremony, cung cấp kiến trúc tập trung vào trang, form và action đơn mà không có khái niệm controller hay REST resource
- Render HTML trên server, viết JS/CSS trực tiếp, tích hợp OpenTelemetry, Sequel, OptionParser và các công cụ Ruby hiện đại đều có sẵn, cho phép cài đặt và phát triển trong vài phút
- Cấu trúc dựa trên lớp, quản lý session/form/parameter theo kiểu thực, giảm tối thiểu việc dùng method động và Hash để hướng tới mã rõ ràng và tự động tạo tài liệu
- Tận dụng nền tảng web hiện đại: xác thực server-client tích hợp, BrutJS (Web Components), đóng gói và hash CSS bằng esbuild, tăng cường chính sách bảo mật và nền tảng thiết kế DB
- Giảm tối thiểu YAML, cấu hình dựa trên Ruby/Hash cùng đặt tên và phân tách vai trò rõ ràng, mục tiêu là tận hưởng Ruby và công nghệ trình duyệt mà không áp đặt trừu tượng hay pattern không cần thiết
Tính năng chính của framework Brut
Cấu trúc hoàn toàn mới – tập trung vào trang, không có controller
- Thay vì controller, REST resource và route action, hệ thống được tổ chức bằng page class, form và handler action đơn
- HTML được tạo trực tiếp trên server, JS/CSS có thể viết theo ý muốn
- Ví dụ: trang hiển thị thời gian được định nghĩa trực tiếp bằng
TimePage < AppPage
Tận dụng tích cực nền tảng web hiện đại
- UX form với xác thực được tích hợp cả server-side lẫn client-side
- Hỗ trợ mở rộng dần HTML bằng BrutJS (thư viện web components)
- esbuild xử lý bundle và hash CSS một cách gọn nhẹ, không cần PostCSS hay SASS
Tích hợp sẵn năng suất phát triển và nền tảng cốt lõi
- Khả năng quan sát dựa trên OpenTelemetry, truy cập dữ liệu bằng Sequel, tự động hóa CLI bằng OptionParser
- Chính sách bảo mật mặc định, giá trị mặc định cột DB/khóa ngoại/chỉ mục, thời gian luôn timezone-aware, localization dễ dùng
- Kiểm thử với RSpec, sinh dữ liệu bằng Faker/FactoryBot, tạo HTML bằng Phlex
Loại bỏ YAML, cấu trúc cấu hình rõ ràng
- I18n dùng Ruby Hash, cấu hình động được quản lý bằng dotenv (hầu như không dùng YAML)
- docker-compose là ngoại lệ duy nhất khi dùng YAML
Không áp đặt trừu tượng hay pattern không cần thiết
- Đặt tên và cấu trúc rõ ràng (ví dụ: truy cập
WidgetsPage bằng /widgets)
- Tách biệt hoàn toàn tầng dữ liệu (DB::Widget) và tầng domain (Widget)
- Không có khái niệm controller, có thể triển khai business logic theo cách bạn muốn
- Không áp đặt các pattern hàm phức tạp, monad, Proc, v.v.
Trải nghiệm phát triển và tính linh hoạt
- RSpec và các công cụ hiện đại trong hệ sinh thái Ruby được tích hợp sẵn
- Tận dụng tích cực các thư viện cốt lõi như Phlex (HTML), Faker/FactoryBot, Sequel, OpenTelemetry
- Tập trung vào “niềm vui” của Ruby và công nghệ trình duyệt bằng cách thoát khỏi boilerplate, cấu hình và quyết định lặp lại
Tại sao là Brut?
- Thay vì setup lặp đi lặp lại, tranh luận thiết kế/cấu trúc không ngừng và sự linh hoạt dư thừa trong Rails cùng các framework khác, Brut theo đuổi niềm vui của bản thân code
- Là một framework web Ruby tập trung vào năng suất và sự rõ ràng, giúp bạn xây dựng, phát triển và triển khai ứng dụng nhanh chóng một cách thú vị
Khởi động và lộ trình
- Hỗ trợ image Docker chính thức của Brut và tạo/chạy ứng dụng nhanh bằng lệnh CLI
- Cung cấp các ứng dụng mẫu thực tế như ADRs.cloud
- Phiên bản 1.0 và roadmap chính thức sẽ được cập nhật liên tục
Chưa có bình luận nào.