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, orhã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âuif, 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ánhx % 2 == 0,x % 2 == 1,x == nil,x == 0. - Trong trường hợp thân câu
if/unless/while/untilchỉ có một dòng, dùng inline format.
Ví dụ:
File snippet.ruby
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âueach. - Dùng
untilthay chowhile 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
snippet.ruby
def some_method(some_arr)
some_arr.size
end
- Không dùng
spacegiữa tên hàm và dấu( - Dùng
→thay cho từ khóalambda - Dùng các câu
inline ifthay cho các câunested if.
Ví dụ:
snippet.ruby
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, hashdùng cấu trúc:a_arr = [],a_hash = {}thay choa_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_accessorthay cho các hàmset, get. - Hạn chế dùng
self << class, nên dùngdef 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
symbollàm key tronghash. 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
snippet.ruby
long_str = 'a very long long long long long long' +
'long long long long string'
Nguồn : http://kipalog.com/posts/Mot-so-Code-conventions-khi-su-dung-Ruby-on-Rails

Comments
Post a Comment