Một vài tools giúp bạn code đẹp hơn và có tổ chức hơn.

1. Rubocop

Rubocop là một công cụ để kiểm tra code style dựa trên ruby-style-guide, được xây dựng phục vụ cho developers.

Rubocop sử dụng các quy tắc được định sẵn để so sánh chúng với code của bạn rồi đưa ra các thông báo lỗi.

Sử dụng Rubocop trong projects giúp chúng ta tiết kiệm thời gian cho việc review coding convention và đảm bảo code không mắc phải những lỗi convention cơ bản. Trong terminal, bạn chỉ cần gõ rubocop, Rubocop sẽ duyệt các file để kiểm tra các lỗi convention và thông báo cho chúng ta biết lỗi đó là gì và ở đâu.

ví dụ:

Rubocop thông báo lỗi rất rõ ràng, dễ hiểu. Như vậy, bạn chỉ cần tìm và sửa lại các lỗi trên là được.

2. RACK-MINI-PROFILER

MiniProfiler là một công cụ đơn giản để theo dõi thời gian server xử lý và render các thành phần html, query database, thời gian trình duyệt load trang, xử lý DOM, hiển thị nội dung. Đây là một công cụ tốt được sử dụng cho việc tìm kiếm những điểm nghẽn trong các ứng dụng của bạn. Rất hữu ích cho việc lập profile cho rails app, kiểm tra và cải thiện performance của app. Hiện tại, MiniProfiler đã hỗ trợ trong các ứng dụng sử dụng Mysql2, Postgres, Oracle (oracle_enhanced ~> 1.5.0) và Mongoid3 ack-mini-profiler có thể sử dụng được trên cả môi trường development và production. Để kích hoạt tính năng này trên production, chỉ việc chạy Rack::MiniProfiler.authorize_request đối với những request có quyền xem profile của app. Ở bài viết này, tôi sẽ hướng dẫn các bạn cài đặt rack-mini-profiler để có thể sử dụng đồng thời trên môi trường production và development.

Đầu tiên, bạn hãy thêm vào config/application.rb môi trường mà bạn muốn sử dụng rack-mini-profiler. Ở đây, tôi thêm đồng thời development và production.

3. Brakeman

Một công cụ phân tích bảo mật cho các ứng dụng Rails của bạn. Nó quét qua ứng dụng của bạn và đưa ra một bảng các lỗ hổng bảo mật trên hệ thống của bạn . Cảnh báo bảo mật được nhóm lại theo mức độ nghiêm trọng của chúng (Cao, Trung bình và Thấp). Bạn có thể tìm hiểu thêm về ý nghĩa của chúng trên danh sách cảnh báo của Brakeman

Bảo mật trong hệ thống, nó đã gọi đến bundler-audit, dùng để kiểm tra các phiên bản của gem trong file Gemfile.lock.

=> Bảo mật luôn là một vấn đề cần được chú trọng đối với những nhà phát triển Web chứ không chỉ là những người sử dụng hệ thống Rails. Các lỗ hổng bảo mật luôn tiềm tàng vì thế đòi hỏi chúng ta phải update thường xuyên, thay đổi không ngừng...

Lưu ý rằng ngay cả khi bạn kết thúc không có bất kỳ cảnh báo, nó không có nghĩa là ứng dụng của bạn là an toàn, vì Brakeman đôi khi bỏ qua một số cạm bẫy bảo mật cơ bản.

4. Rails_Best_practices

Bộ phân tích mã tĩnh để tìm ra các đoạn code smell của Rails. Nó cung cấp một loạt các gợi ý; Sử dụng phạm vi truy cập, hạn chế auto-generated routes, thêm các chỉ mục cơ sở dữ liệu, vv... Để có danh sách đầy đủ các đề xuất, hãy kiểm tra trang chính thức của Rails-best-practices. Thật không may, đôi khi nó cảnh báo quá tích cực chẳng hạn như các methods không sử dụng. Tuy nhiên, nó chứa rất nhiều đề xuất, cảnh báo tốt đẹp và hữu ích sẽ cho bạn một cái nhìn tốt hơn về cách refactor code của bạn và tìm hiểu một số cách thực hành tốt nhất.

5. Bullet

Bullet gem là một công cụ mạnh trong việc refactor code, hiệu quả với việc tăng tốc độ query vào database trong quá trình development. Bởi vì tính năng thông báo đối với N+1 query, một trong những lỗi phổ biến khi lập trình liên quan đến database nếu người lập trình không kiểm soát tốt nó.

6. Traceroute

Traceroute là một công cụ giúp làm gọn gàng các routes trong ứng dụng của bạn. Nó cung cấp các rake task đơn giản để kiểm tra các routes đang được ánh xạ tới những controller actions không tồn tại, và tìm ra những controller actions không thể truy cập tới.

7. Rubycritic

Một gem mới bao gồm ba gem phân tích tĩnh - Reek (ruby code smells), Flay (phát hiện code trùng lặp) và Flog (ABC metrics). Nó tạo ra các tập tin HTML với cấu trúc độc đáo để bạn có thể duyệt qua code có mùi(code ko tốt) của bạn và bắt đầu tái cấu trúc. Trong tất cả các công cụ phân tích mã tĩnh được đề cập, thì đây là gem rất tốt vì nó cho chúng ta đầu ra tốt đẹp, thuận tiện nhất để có cái nhìn tổng quan và bình luận với đồng nghiệp của bạn.