Các thực hành hay nhất giúp bạn nâng cao chất lượng mã nguồn để giảm thiểu rủi ro và giảm bớt gánh nặng cho nhóm QA.

AT&T, một công ty viễn thông có trụ sở tại Mỹ đã phải đối mặt với một cuộc khủng hoảng lớn vào năm 1990. Họ muốn tăng tốc các cuộc gọi đường dài, điều này đòi hỏi họ phải phát hành một bản nâng cấp phần mềm phức tạp. Tuy nhiên, dự án này đã thất bại và mạng viễn thông đường dài của họ đã phải đối mặt với thời gian ngừng hoạt động kéo dài 9 tiếng đồng hồ.

Chi phí thiệt hại ước tính do thời gian ngừng hoạt động này bao gồm 60 triệu đôla phí đường dài, 200.000 lượt đặt chỗ bị mất và 75 triệu cuộc điện thoại bị nhỡ. Sau đó, AT&T phát hiện ra rằng bản nâng cấp phần mềm của họ chứa một dòng mã lỗi, gây ra lỗi chuyển mạch theo tầng và cuối cùng trở thành một vấn đề nghiêm trọng.

Chỉ một dòng mã kém cũng có thể đưa doanh nghiệp vào rủi ro lớn, hay nói cách khác là các dự án cũng có thể phải kết thúc vì nó. Đó là lý do tại sao việc cải thiện chất lượng mã nguồn là vô cùng cần thiết. Dưới đây là 4 thực hành hay nhất giúp bạn nâng cao chất lượng mã nguồn của mình.

1. Tuân thủ các quy ước viết mã

Các nhóm phát triển thường tạo ra một danh sách các nguyên tắc được gọi là quy ước viết mã. Chúng bao gồm các phong cách viết mã và thực hành được đề xuất cho một ngôn ngữ lập trình nhất định. Các quy ước có thể được áp dụng cho toàn bộ tổ chức hoặc chỉ riêng một dự án cụ thể.

Sử dụng một bộ quy ước viết mã khuyến khích mọi người viết mã theo cùng một phong cách, giúp các đồng nghiệp hiểu rõ hơn về mã nguồn của bạn. Các quy ước cũng có thể giúp bạn tìm kiếm các tập tin và lớp (class) trong dự án lớn một cách dễ dàng. Ví dụ, các lập trình viên Java thường thống nhất đặt tên biến theo kiểu camel với ký tự đầu tiên của từ đầu tiên là chữ thường, các ký tự đầu tiên của các từ tiếp theo là chữ hoa, chẳng hạn như employeeLastName.

Các quy ước viết mã quy định nhiều vấn đề, chẳng hạn như quy ước đặt tên, các toán tử, cách chú thích mã nguồn, số ký tự thụt đầu dòng (indentation), tổ chức tập tin hay mô hình kiến trúc.

2. Sử dụng linter

Linter là một công cụ tự động kiểm tra mã nguồn của bạn để xem mã nguồn có đáp ứng quy ước viết mã của dự án hay của tổ chức không, đồng thời hiển thị cảnh báo lỗi nếu mã nguồn chưa đáp ứng các quy ước đó.

Trong quá trình phát triển phần mềm, những cảnh báo này có xu hướng bị bỏ qua khi các nhà phát triển ưu tiên tốc độ hơn chất lượng. Tuy nhiên, những sai sót nhỏ này có thể tích lũy nhanh chóng trong một khoảng thời gian ngắn, tạo ra một khối lượng công việc đáng kể về sau này cho nhóm của bạn. Để tránh những khối lượng công việc khổng lồ trong tương lai như vậy, linter giúp xác định các lỗi một cách nhanh chóng để bạn có thể giải quyết chúng nhanh và kịp thời hơn.

Loại linter bạn nên sử dụng phụ thuộc vào ngôn ngữ lập trình của dự án, (ví dụ, một nhà phát triển Python có thể sử dụng Pylint để phân tích và duy trì chất lượng mã), tuy nhiên có thể kể đến một số linter thông dụng như JSLint, ESLint Checkstyle.

3. Tích hợp liên tục

Các nhà phát triển nên hợp nhất các thay đổi của họ với nhánh chính nhiều lần trong ngày. Quá trình này được gọi là continuous integration (tích hợp liên tục). Mỗi lần hợp nhất khởi chạy một trình tự build và test mã nguồn tự động, quá trình này sẽ mất một chút thời gian, tuy nhiên nếu có lỗi xảy ra, mã nguồn sẽ không được dựng thành công và hệ thống tích hợp liên tục sẽ ngăn việc thực hiện bước tiếp theo. Nhóm của bạn sẽ nhận được báo cáo và có thể sửa lỗi ngay lập tức.

Đó là lý do tại sao các công ty hiện đại áp dụng rộng rãi tích hợp liên tục. Quá trình này cho phép các nhóm chia giai đoạn phát triển thành các phần nhỏ, đảm bảo sự chú ý nhiều hơn và sâu hơn đến các chi tiết. Các nhà phát triển có thể nhận được phản hồi ngay lập tức để ngăn chặn bất kỳ lỗi nào phát sinh trong giai đoạn triển khai.

Một công cụ tích hợp hiện đại đóng vai trò quan trọng trong việc tạo nên một nhóm kỹ sư hiệu suất cao. Khi lựa chọn công cụ cho nhóm của mình, bạn nên xem xét các yêu cầu quan trọng như khả năng hỗ trợ VSC, hỗ trợ vùng chứa, các plugin và tích hợp ben ngoài. Một số công cụ tích hợp liên tục nổi tiếng trên thị trường bao gồm Jenkins, Bitbucket Pipelines, CircleCI Atlassian Bamboo.

4, Viết những chú thích hữu ích

Đôi khi, các nhà phát triển đưa vào mã nguồn những chú thích không cần thiết trong việc hiểu mã. Loại chú thích này thậm chí còn có thể khiến các nhà phát triển khác mất nhiều thời gian hơn khi đọc mã nguồn. Mặt khác, có những người lại chú thích quá ít, làm giảm chất lượng mã nguồn vì các nhà phát triển khác phải đoán xem họ đang đọc gì.

Mục tiêu của bạn nên là tìm một phương pháp vừa đủ: chỉ thêm chú thích khi bạn cảm thấy chúng có giá trị nhất định và có thể cung cấp giá trị cho mã nguồn của mình. Các nguyên tắc sau đây có thể giúp bạn viết các chú thích có ý nghĩa:

  • Chú thích cho các hàm phức tạp: Thêm chú thích vào các hàm có logic phức tạp, chẳng hạn như hàm có trên 100 dòng mã. Về cơ bản, các chú thích này chính là các tóm tắt mục đích của hàm chức năng, giúp các nhà phát triển khác tiết kiệm thời gian khi đọc hiểu hàm.
  • Chú thích ngắn gọn ở đầu mỗi tập tin: Loại chú thích này không nên vượt quá ba dòng và phải cung cấp cái nhìn ngắn gọn về mục tiêu và phạm vi mã nguồn trong tập tin, đồng thời đảm bảo giúp các đồng nghiệp của bạn hiểu nội dung tổng quan của tập tin trong vòng 30 giây.
  • Chú thích trước mỗi lớp: Loại chú thích này giải thích mục đích và phạm vi của lớp trong tập tin. Giả sử lớp của bạn có tên là LocationService, bạn có thể thêm chú thích như sau trong ứng dụng Java:

    /* The class below will help to find a location record
    with a unique identifier. It returns a location */
    public class LocationService {
    rest of the code goes here
    }

Nâng cao chất lượng mã nguồn với các ứng dụng Jira và Bitbucket

Nếu nhóm của bạn sử dụng Jira để quản lý quá trình phát triển hoặc Bitbucket để quản lý mã nguồn, bạn có thể sử đụng các ứng dụng quản lý chất lượng mã nguồn từ Atlassian Marketplace để tối ưu hóa mã nguồn của mình. Một số ứng dụng bạn có thể tìm thấy trên Atlassian Marketplace là:

  • Awesome Graphs for Bitbucket: Ứng dụng mang đến các biểu đồ và đồ thị chuyên sâu, hiển thị thống kê đóng góp với dữ liệu được lấy từ Git repository của bạn. Bạn có thể đánh giá hiệu suất của nhóm, xác định giờ làm việc hiệu quả nhất của nhóm và ghi nhận năng suất làm việc của các thành viên.
  • Yet Another Commit Checker: Ứng dụng hỗ trợ bạn đặt các kiểm tra chất lượng mã nguồn khác nhau, hiệu lực trong toàn bộ tổ chức hoặc trên một số repository và dự án được xác định trước.
  • Sonar for Bitbucket: Tích hợp Bitbucket với SonarQube, công cụ này giúp bạn kiểm tra chất lượng mã nguồn một cách liên tục để tìm ra các vấn đề về mã trong ứng dụng. Ứng dụng cung cấp các kiểm tra hợp nhất để đáp ứng các tiêu chuẩn chất lượng đã được định cấu hình, giúp bạn tránh khỏi nguy cơ đưa ra thị trường những bản phát hành kém chất lượng.

Theo Atlassian

Menu