07/09/2018, 16:06

Một số Code conventions khi sử dụng Ruby on Rails.

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 ...

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ụ:
File snippet.ruby

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ụ:
snippet.ruby

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ụ:
snippet.ruby

# 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
  • Khi khai báo biến array, hash dùng cấu trúc: a_arr = [], a_hash = {} thay cho a_arr = Array.new, a_hash = Hash.new

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

  • Tên biến, tên hàm, symbol: a_var_name, get_prime, a_symbol.
  • Tên class, module: SomeClass, SomeModule
  • Hằng số: SOME_CONST

6. Class, Module.

  • Dùng include, extend ngay sau khai báo class.
  • Dùng attr_reader, attr_writer, attr_accessor thay cho các hàm set, get.
  • Hạn chế dùng self << class, nên dùng def self.a_func.

7. Collection.

  • Dùng %wđể khai báo mảng các chuỗi.
  • Dùng %i để khai báo mảng các symbol.
  • Nên dùng symbol làm key trong hash. Ví dụ: {:one ⇒ 1, :two ⇒ 2}.

8. String.

  • Dùng #{} thay cho nối chuỗi. Ví dụ: email_with_name = "#{user.name} <#{user.email}>.
  • Dùng %Q để khai báo chuỗi có ', ”, #{}.
  • Dùng + để cắt khi chuỗi quá dài.

Ví dụ:
snippet.ruby

long_str = 'a very long long long long long long' + 
           'long long long long string'

[1]

0