12/08/2018, 16:58

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             </div>
            
            <div class=

0