Ruby Coding Convention (Phần 5)
January 23, 2014
Trong phần cuối cùng tôi sẽ đề cập tới String và Regular Expressions
Collections
- Khởi tạo mảng và bảng băm
# bad arr = Array.new hash = Hash.new # good arr = [] hash = {}
- Sử dụng
%w()
cho mảng các chữ,%i()
cho các ký tự# good STATES = %w(draft open closed) STATES = %i(draft open closed)
- Sử dụng
first
vàlast
thay vì[0]
và[-1]
- Sử dụng
Set
thay choArray
nếu bạn cần một mảng gồm những phần tử không lặp lại - Sử dụng symbols thay cho các strings khi khai báo hash keys
# bad hash = { 'one' => 1, 'two' => 2, 'three' => 3 } hash = { :one => 1, :two => 2, :three => 3 } # good hash = { one: 1, two: 2, three: 3 }
- Sử dụng
Hash#key?
thay choHash#has_key?
vàHash#value?
thay choHash#has_value?
# bad hash.has_key?(:test) hash.has_value?(value) # good hash.key?(:test) hash.value?(value)
- Sử dụng
Hash#fetch
batman = { name: 'Bruce Wayne' } #bad heroes[:supermann] # =>; nil #good heroes.fetch(:supermann) #bad batman[:is_evil] || true #good batman.fetch(:is_evil, true)
String
- Nên sử dụng kiểu gọi string trong
" "
thay vì dùng kiểu nối string# bad email_with_name = user.name + '<' + user.email + '>' # good email_with_name = "#{user.name} <#{user.email}>"
- Sử dụng
' '
thay vì sử dụng" "
nếu bạn không cần gọi string thông qua biến, hay có những kí tự đặc biệt như/t /n '
- Sử dụng
String#<<
thay choString#+
.String#<<
nhanh hơn, nhất là khi bạn phải xử lí nhiều string objects# good and also fast html = '' html << 'Page title'
paragraphs.each do |paragraph|
html << “#{paragraph}”
end