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

Nguyễn Quốc Kiện viết ngày 07/06/2016

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] Tài liệu tham khảo: https://github.com/scrum2b/ruby-style-guide/blob/master/README-viVN.md

Nguyễn Quốc Kiện.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Nguyễn Quốc Kiện

1 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
40 4
Database Conventions 1. Intro (1) Thiết kế database là công việc thường ngày của engineer, nhất là các bạn database engineer. Giống với coding c...
Tung Ns viết 11 tháng trước
40 4
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
1 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!