Ruby Coding Convention (Phần 5)

ruby_convention

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 firstlast thay vì [0][-1]
  • Sử dụng Set thay cho Array 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 cho Hash#has_key?Hash#value? thay cho Hash#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 cho String#+ . 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

 

Add a Comment

Scroll Up