+1

Conventions trong Ruby on Rails.

Mình mới học về Ruby on Rails được một thời gian ngắn, cũng đã ăn hành khá nhiều lỗi về trình bày code 😄, mình xin làm 1 bài tổng hợp nhỏ về các code conventions hay gặp để new mem có thể biết:

1. Các qui tắt chung

  • Dùng 2 space.
  • Dùng space trước và sau các dấu +, -, x, /, {, }, =.
  • Không dùng space sau dấu (, [ và trước dấu ), ].
  • Thêm dấu _ ở các số lớn. Ví dụ: 100000 –> 100_000.

2. Cú pháp

  • Dùng (, ) ở khai báo hàm có truyền tham số, không dùng (, ) trong trường hợp hàm không nhận tham số.

3. Các câu lệnh điều kiện

  • Không dùng and, or hãy ùng &&, ||

  • Dùng unless thay cho if not.

  • Không dùng unless … else

  • Không dùng(, ) ở điều kiện trong câu if, unless

  • Dùng các hàm số có sẵn như x.even?,x.odd?, x.nil?, x.zero? thay cho các câu so sánh x % 2 == 0, x % 2 == 1, x == nil, x == 0.

  • Trong trường hợp thân câu if/unless/while/until chỉ có một dòng, dùng inline format.

  • Ví dụ:

do_something if some_condition

thay cho

if some_condition
  do_something
end

4. Câu lệnh lặp

  • Hạn chế dùng câu for, nên dùng câu each.

  • Dùng until thay cho while not.

5. Khai báo và gọi hàm

  • Bỏ (, ) khi gọi các hàm không tham số

  • Nếu hàm có tham số, để các tham số trong()

    Ví dụ: foo(param1, param2).

  • Không cần dùng return ở dòng cuối cùng trong khai báo hàm.

Ví dụ:

def some_method(some_arr)
  some_arr.size
end
  • Không dùng space giữa tên hàm và dấu (
  • Dùng → thay cho từ khóa lambda
  • Dùng các câu inline if thay cho các câu nested if.

Ví dụ:

 # Bad
def compute_thing(thing)
  if thing[:foo]
    update_with_bar(thing)
      if thing[:foo][:bar]
        partial_compute(thing)
      else
        re_compute(thing)
      end
  end
end
# Good
def compute_thing(thing)
  return unless thing[:foo]
  update_with_bar(thing[:foo])
  return re_compute(thing) unless thing[:foo][:bar]
  partial_compute(thing)
end

5. Qui tắc đặt tên

  • Tên function phải là động từ

6. Class, Module

  • Hạn chế dùng def self.a_func, nên dùng self << class.

7. String

  • Dùng #{} thay cho nối chuỗi. Ví dụ: email_with_name = "#{user.name} <#{user.email}>.

[] Tài liệu tham khảo: ahihi


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí