Làm quen nhanh những dự án đang phát triển với gem ERD và Annotate
Chao, Khi các bạn tìm được đến bài viết này, tôi mặc định là các bạn đang join vào một dự án đang dang dở, và bạn không biết hoặc gặp khó khăn trong việc làm quen với dự án và nắm bắt mô hình chính của dự án. Sau đây mình xin giời thiệu qua Gem Rails ERD và Annotate, hy vọng sẽ giúp các bạn nhanh ...
Chao, Khi các bạn tìm được đến bài viết này, tôi mặc định là các bạn đang join vào một dự án đang dang dở, và bạn không biết hoặc gặp khó khăn trong việc làm quen với dự án và nắm bắt mô hình chính của dự án. Sau đây mình xin giời thiệu qua Gem Rails ERD và Annotate, hy vọng sẽ giúp các bạn nhanh chóng hiểu và làm quen với dự án mới hơn.
Rails ERD là gem giúp chúng ta generate mô hình thực thể quan hệ trong dự án. Với một dự án lớn, việc đầu tiên của chúng ta có lẽ là xem các mối quan hệ của các model, các attribute ở mỗi bảng và tác dụng của chúng. Rails ERD sử dụng Graphviz để sinh ra file diagrams, vì vậy muốn sử dụng gem Rails ERD, trước hết chúng ta phải cài Graphviz, chi tiết hơn về dự án Graphviz các bạn có thể tham khảo tại đây http://graphviz.org/.
- Bước 1: Cài đặt Graphviz: Nếu bạn dùng Mac OS X: brew install graphviz Nếu dùng ubuntu thì chạy lệnh sau: sudo aptitude install graphviz Note: Để tránh các lỗi nhỏ xảy ra, các bạn nên dùng bản Graphviz 2.22 trở lên, nếu đã cài đặt graphviz
- Bước 2: Cài gem Rails ERD Gem Rails ERD yêu cầu phiên bản Rails 3 trở lên, Ruby 1.9.3 trở lên. Trong gem file, các bạn thêm gem
group :development do gem "rails-erd" end
Sau đó chạy bundle install nhé. Sau khi install gem xong, Rails ERD đã tạo cho chúng ta 1 Rake task, để tạo ra file Diagram, chúng ta chỉ việc chạy rake: rake erd Xong rồi, giờ thì chúng ta đã có 1 file ERD.pdf, đây là file diagram của dự án như ví dụ bên dưới. Tuy nhiên nếu bạn muốn xuất file với định dạng khác, hoặc đặt tên file khác thì có thể truyền thêm tham số vào rake như sau: rake erd filename='My project', filetype='dot' Ngoài ra, nếu không muốn truyền tham số nhiều lần, các bạn có thể tạo 1 file config yml có tên ~/.erdconfig trong thư mục dự án với nội dung như sau :
attributes: - content - foreign_key - inheritance disconnected: true filename: erd filetype: pdf indirect: true inheritance: false markup: true notation: simple orientation: horizontal polymorphism: false sort: true warn: true title: sample title exclude: null only: null only_recursion_depth: null prepend_primary: false cluster: false splines: spline
Chi tiết các tham số, các bạn có thể tham khảo tại đây: https://voormedia.github.io/rails-erd/customise.html.
Annotate là gem rất hữu ích khi bạn được add vào dự án khi số lượng Model, attributes và routes path là rất lớn, khi đó rất khó để chúng ta follow danh sách các thuộc tính, type, limit trong database. Annotate sẽ sinh ra các dòng comment bên trên mỗi file model hoặc routes khi chúng ta code. Sau khi code xong chúng ta có thể remove hết comment đi và push code lên, rất tiện lợi phải không nào