Ruby style, Cách để viết code ruby dễ đọc hơn – Phần 1

Tram Ho

Bố cục trình bày khi viết code

  • Sử dụng chuẩn mã hóa UTF8 khi code
  • Dùng 2 khoảng trắng (space) cho mỗi tầng thụt đầu dòng, không sử dụng tab cứng

  • Sử dụng dấu cuối dòng theo UNIX style
    Nếu đang sử dụng GIT, nên cấu hình như sau để chặn các dấu cuôi dòng của window

  • Không dùng dấu (;) để ngăn cách câu lệnh và biểu thức, mà hãy viết mỗi câu trên 1 dòng

  • Nếu class không có nội dung hãy viết trên 1 dòng

  • Tránh viết gom phương thức vào 1 dòng, nên viết mỗi câu lệnh trên 1 dòng

Nhưng cũng có ngoại lệ, phương thức không có body thì nên viết trên 1 hàng

  • Đặt khoảng trắng trước và sau toán tử, sau dấu phẩy, dấu hai chấm, dấu chấm phẩy, để code của bạn dễ đọc hơn

  • KHÔNG DÙNG khoảng trắng sau (, [ hay trước ], ). DÙNG khoảng trắng quanh { và trước }

  • Không sử dụng khoảng trắng sau dấu !

  • Không dùng khoảng trắng khi khai báo khoảng (range)

  • when và case thụt đầu dòng cùng cấp

  • Gán kết quả của một biểu thức cho một biến, cặp case, when hay if,else cũng phải cùng cấp

  • Thêm một dòng trống giữa các phương thức, và các nhóm xử lý logic.

  • Không dùng dấu , sau tham số cuối cùng khi khai báo phương thưc

  • Dùng khoảng trắng quanh toán tử = khi gán giá trị mặc định

  • gọi phương thức có nhiều đối số, nên xuống dòng, và các đối số này cần thụt đầu dòng bằng nhau và ở cùng cấp với đối số đầu tiên

  • Với số lớn, thêm dấu gạch dưới _ cho dễ đọc

Cú pháp / Syntax

  • CHỈ sử dụng :: cho hằng số (của cả classes và modules) và các hàm khởi tạo (constructors) (vd: Array() hoặc Nokogiri::HTML()). KHÔNG sử dụng :: cho các lời gọi hàm thông thường.

  • Chỉ dùng () khi khai báo phương thức có tham số

  • Nếu phương thức có tham số mặc định, đặt nó ở cuối cùng

  • TRÁNH khai báo biến song song, sẽ gây khó khăn khi đọc

  • Đừng dùng for, trừ khi có lý do chính đáng. Thay vào đó hãy dùng vòng lặp. for là một dạng của each, nhưng for không hỗ trợ scope (each thì có) và biến trong for thì có thể truy cập từ bên ngoài block.

  • NÊN dùng toán tử ba ngôi (?:) hơn là cấu trúcif/then/else/end

  • KHÔNG nên dùng toán tử ba ngôi lồng nhau

  • KHÔNG dùng từ khóa andor. Thay vào đó hãy dùng &&||

  • Dùng if/unless cho single-line body

  • KHÔNG dùng unless cùng với else. Thay vào đó hãy viết với biểu thức true

  • KHÔNG dùng cặp ngoặc tròn()với if/unless/while/until

  • Với các phương thức mặc định của DSL (vd: Rake, Rails, RSpec), hay các phương thức có chứa “từ khóa” trong Ruby (vd: attr_reader, puts) và các phương thức truy cập thuộc tính thì không dùng ()

  • Nếu block chỉ làm một việc thì ưu tiên dùng shorthand

  • Ưu tiên{...} hơn do...end cho block một dòng

  • Tránh dùng self khi không bắt buộc. Chỉ dùng nó khi cần ghi giá trị vào biến

  • Dùng kiểu gán rút gọn khi có thể

  • Dùng ||=để khởi tạo giá trị khi biến đó chưa được khởi tạo

  • Dùng cú pháp lambda mới cho block có một dòng. Nếu nhiều dòng thì dùng từ khóa lambda

  • Khi dùng lambda với biến, nên đặt biến trong ngoặc tròn.

lambda không có tham số thì bỏ ngoặc tròn đi

  • Dùng tiền tố _ cho biến không dùng trong block và biến cục bộ

  • Ưu tiên dùng Array#join hơn là Array#* với tham số là string

Kết

Trên đây mình giới thiệu với mọi người cách bố cục, trình bày và cú pháp khi viết code trong ruby để code của bạn dễ nhìn, dễ đọc hơn.
Ở bài viết sau mình sẽ trình bày về cách đặt tên.

Nguồn tham khảo: https://github.com/CQBinh/ruby-style-guide

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo