Giải pháp cho “người lười” check coding convention | CodeStar Academy

Coding conventions là tập hợp những nguyên tắc chung (luật bất thành văn) khi lập trình nhằm làm cho code dễ đọc, dễ hiểu, do đó dễ quản lý, bảo trì hơn. Với mỗi một loại ngôn ngữ lập trình thì bộ quy tắc này có thể khác nhau đôi chút (VD: bên này sử dụng camelCase, bên kia lại thích snake_case, bà thì khoái thụt lề bằng TAB, ông thì chỉ chơi với 2 SPACE, v.v….) nhưng chúng đã được những cộng đồng lập trình viên trên thế giới công nhận và tuân theo.

Nhưng vấn đề ở đây là gì, OK có thể bạn đã biết về coding convention, bạn đã thuộc lòng kha khá những quy ước trong bộ nguyên tắc đó thì bạn có thể đảm bảo rằng 100% mình sẽ code chuẩn và đẹp như tranh vẽ ? Một ngày chúng ta phải coding tối thiểu 8 tiếng, không thể nào duy trì được trạng thái tỉnh táo và sự tập trung cao độ liên tục được, nên có sai số là đương nhiên. Nhưng thay vì phải ngồi rà lại mấy trăm mấy nghìn dòng code thì ơn giời, các tool, thư viện sinh ra để giúp chúng ta giải quyết bài toán này. Chính xác, chúng ta cần một cơ chế kiểm tra tự động toàn bộ code trong dự án đã theo đúng chuẩn coding convention hay chưa, đưa ra các dòng code chưa chuẩn và thông báo bị vi phạm quy tắc nào. Vậy thì nhẹ gánh, các bạn có thể yên tâm ngồi code cháy máy sau đó chạy một câu lệnh kiểm tra và sửa nốt coding covention là xong, ez :)))

Trong bài viết này mình sẽ giới thiệu cách cài đặt và sử dụng thư viện có tên là Rubocop– 1 gem khá phổ biến trong lập Ruby

alt textalt text

1. Cài đặt

Cách 1: Mở cửa sổ terminal và chạy lệnh

gem i rubocop

Cách 2: Thêm vào Gemfile

gem ‘rubocop’, require: false

Rồi chạy bundle i để cài đặt.

2. Cấu hình

Rubocop cung cấp cho chúng ta 1 file config: .rubocop.yml. Bạn có thể làm rất nhiều thứ với file này. Nó rất linh hoạt trong việc điều chỉnh các quy tắc để phù hợp với dự án của bạn. Làm cái VD nhé:

alt textalt text

  • Ở đây, mình thiết lập số dòng tối đa cho 1 block là 35 dòng.
  • Sẽ có những method trong block mà mình không thể tách nhỏ hơn và có thể vượt quá số dòng quy định. Thay vì phải điều chỉnh tăng max line làm ảnh hưởng đến những block khác mình sẽ khai báo nó vào trong ExcludeMethods. Rubocop sẽ bỏ qua các method này khi kiểm tra. Tương tự với file bạn không muốn rubocop phải bận tâm tới thì ném chúng vào Exclude. Tiện lợi phải không 😀
  • Để theo dõi và tìm hiểu các tùy chỉnh khác trong rubocop mình khuyên các bạn nên lên DOCS để tìm kiếm. Rubocop viết rất đầy đủ và dễ hiểu và sẽ đáp ứng được nhu cầu cho dự án của bạn.

3. Sử dụng

Nếu các bước trên bạn thấy quá đơn giản để thực hiện thì cách sử dụng Rubocop thì càng mother of giản đơn :v Mở terminal và run:

rubocop

Mọi thứ đã xong xuôi rồi đấy. Đến đây rubocop sẽ auto check coding convention trong dự án của bạn. Nếu có lỗi nào xảy ra, nó sẽ thông báo dòng nào đang lỗi và lỗi là gì

alt textalt text

offenses là số lỗi coding mà bạn đang gặp phải và các lỗi được thông báo rất minh bạch và dễ hiểu. Giờ chỉ việc tìm đến đúng dòng và fìx lại là xong.

alt textalt text

Đẹp trai rồi đấy !!

Một tip mình muốn gợi ý đến các bạn là chúng ta hoàn toàn có thể kết hợp với Shell script để tự động run rubocop khi gõ git add hay git push. Thế là không bao giờ quên gõ rubocop trước khi push lên repo nữa. 

Tác giả: Nghĩa Monjtor