Trị code “thúi” với SonarQube

Tram Ho

Khi mình có cơ hội phỏng vấn ở một số công ty kiểu cũng to to í, thì quét SonarQube mỗi ngày là một quy định bắt buộc của họ. Vậy SonarQube là gì? Đơn giản nó là một công cụ scan code, để tìm ra các code “thúi” hoặc các code có thể bị vướng các luật security nghiêm trọng. Đôi khi các khách hàng cũng yêu cầu đội ngũ phần mềm phải xử hết bug từ kết quả quét SonarQube trước khi ký nghiệm thu.
Ở bài viết lần này, mình sẽ giới thiệu cách cài đặt SonarQube và quét các projects viết bằng Java.

Bước 1: Cài đặt JDK 11

  • Tải JDK 11 và cài đặt vào ổ C:Java

alt text

  • Mở Control Panel, chọn Advanced System Settings

alt text

alt text

  • Set JAVA_HOME: đường dẫn cài đặt JDK

alt text

  • Set Path: đường dẫn chứa thư mục bin của JDK

alt text

Bước 2: Tải các package

alt text

alt text

Các bạn giải nén tất cả và đổi tên thư mục thành sonarqube và sonar-scanner.
Copy tất cả các thư mục trên vào Program Files của ổ C.

Bước 3: Start server của SonarQube

Mở file sonar.properties tại C:Program Filessonarqubeconf. Bỏ comment lệnh #sonar.search.port=9001 và đổi lại thành sonar.search.port=0

Vào trong thư mục C:Program Filessonarqubebinwindows-x86-64, tìm và chạy file StartSonar.bat để bật server sonarqube lên. Sau khi chạy thành công thì vẫn để cửa sổ chứ không được tắt.
Thấy dòng chữ SonarQube is up là thành công.

alt text

Bước 4: add sonarqube-scanner vào Path

Vào Environment Variables tương tự như bước 1. Tìm đến phần Path. Thêm đường dẫn chứa thư mục bin của sonar-scanner.

alt text

Sau khi hoàn tất mở cmd và gõ command sonar-scanner.bat -h. Nếu ra như sau thì là ok:

alt text

Bước 5: Tìm và cài đặt gói ngôn ngữ cần test

Gõ địa chỉ http://localhost:9000/. Đăng nhập ID/Password với admin/admin. Làm theo các bước sau:

alt text

Nếu gói ngôn ngữ đó vẫn ở trạng thái Install (màu xanh), thì hãy cài đặt nó nhé.

Bước 6: Config sonar trong project

Mình sẽ lấy source của project ChitChat mà đã được giới thiệu ở các bài viết trước để làm ví dụ.
Tạo 1 file config có tên là sonar-project.properties và có nội dung như sau:

Copy file này vào trong thư mục chứa source code, cụ thể ở đây là E:/Projects/Pet Projects/java/ChitChatAPI

Bước 7: Scan source

Tiếp theo mở cmd và cd đến thư mục trong sonar.source (nơi bạn đã copy file sonar-project.properties lúc nãy). Chạy lệnh sonar-scanner để chương trình test lỗi. Nếu trong quá trình chạy không báo lỗi gì thì ta đã thành công việc phân tích lỗi.

alt text

Refresh lại trang http://localhost:9000/, nhấn vào Projects, ta sẽ thấy báo cáo kết quả.

alt text

alt text

Ở trang chi tiết của Project, ta có thể nhìn thấy rõ các Issues được phân loại theo Bugs, Vulnerabilities, Security hay Code Smells. Nhấn vào số lượng bugs ở mỗi loại, Sonar sẽ đưa ra cụ thể từng Issue nằm ở Class nào cũng như đề xuất giải pháp để sửa.

alt text

Như ví dụ trên, Sonar khuyến cáo mình nên đổi tên biến created_on thành createdOn.

Trong quá trình vọc, có bước nào chưa làm được, đừng ngần ngại comment cho mình bên dưới nhé 😃😃😃

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo