SonarSource đã tiến hành tổng hợp về những vấn đề phổ biến nhất mà SonarLint thường phát hiện trong các dự án TypeScript. Họ đã khai thác dữ liệu SonarLint để xem loại quy tắc nào trong hơn 300 quy tắc của nó được kích hoạt nhiều nhất dùng để đánh dấu một bug, code xấu, lỗ hổng bảo mật hoặc điểm nóng bảo mật có thể bị phát hiện trước khi được xác nhận. Đây là một tổng hợp của tất cả các vấn đề và nơi bạn có thể tìm hiểu thêm về chúng.
Tất nhiên, đây là những vấn đề phổ biến và hậu quả của chúng có thể ảnh hưởng khá nhiều đến ứng dụng của bạn. Từ các kiểu gây nhầm lẫn đến rò rỉ bộ nhớ và bug khó phát hiện, những vấn đề này có thể ảnh hưởng đến cả end users và sự sạch sẽ của code của bạn. Với SonarLint trong trình soạn thảo của, những vấn đề này có thể được phát hiện khi bạn viết chúng, tiết kiệm thời gian và giữ cho code clean và bug-free.
5. Khai báo thuộc tính tùy chọn
Bắt đầu với type based issue, SonarLint thường xuyên thấy sự kết hợp của cú pháp thuộc tính tùy chọn với union types có “undefined”. Mặc dù không nhất thiết phải là bug, vấn đề này biến type từ một thứ truyền tải ý định của nhà phát triển thành một cái gì đó dễ gây nhầm lẫn. Đặt khai báo thuộc tính tùy chọn đúng thì giao diện của bạn sẽ mô tả các đối tượng của bạn theo cách mà bạn muốn.
4. Tạo và xóa đối tượng ngay lập tức
Việc tạo một đối tượng mà không sử dụng nó là một dấu hiệu của code xấu. Điều này có thể là một lỗi và bạn có ý định gán đối tượng đó vào một biến để sử dụng sau này, hoặc nó cho thấy bạn đang tạo đối tượng để sử dụng một tác động phụ được chứa trong constructor của đối tượng. Trường hợp đầu tiên dễ dàng được khắc phục, trong khi trường hợp thứ hai yêu cầu phải tái cấu trúc để loại bỏ tác động phụ khỏi constructor và chuyển chúng thành một hàm rõ ràng hơn để hiển thị ý định của bạn.
3. Biến cục bộ và hàm không sử dụng
Những phần code không được sử dụng có thể làm rối code của bạn, nhưng chúng cũng có thể gây ra những bug thú vị và thậm chí là memory leak.
2. Các câu lệnh “không rỗng” phải thay đổi luồng điều khiển hoặc có ít nhất một tác động phụ
Nếu một câu lệnh trong code của bạn không gây ra sự thay đổi nào đó, có thể nó đang không làm gì cả, và code không làm gì cả thì không có ích cho ứng dụng của chúng ta. Nếu code được thiết kế để làm gì đó, thì đó là một bug, và bạn nên phát hiện lỗi này sớm.
1. Gán trong các biểu thức nhỏ hơn
Vấn đề hàng đầu mà SonarLint phát hiện trong tất cả các đoạn code của Sonar là việc gán trong các biểu thức nhỏ hơn. Đây có thể là vấn đề về tính đọc hiểu, hoặc quan trọng hơn là một bug nơi bạn gán trong một câu lệnh điều kiện thay vì so sánh. Tìm ra dấu = bị thiếu, hoặc hai dấu = bị thiếu trong một câu lệnh điều kiện có thể rất phiền phức nếu bạn đang tìm kiếm bug, nhưng khi công cụ của bạn chỉ ra điều này, cuộc sống sẽ dễ dàng hơn rất nhiều!
Bạn đã từng gặp phải những vấn đề này?
Đó là 5 vấn đề hàng đầu của SonarSource. Họ nghĩ rằng mình đã gặp phải vấn đề này trong quá khứ. Chúng xuất hiện liên tục và việc phải tránh liên tục, hoặc ít nhất là sửa chúng nhanh chóng, sẽ làm cho code của bạn trở nên sạch hơn và cuộc sống dễ thở hơn rất nhiều. Còn rất nhiều vấn đề TypeScript tiềm năng khác mà SonarLint có thể giúp bạn phát hiện trong ứng dụng của mình.
Giữ cho code clean và bug-free khi bạn viết hoặc tái cấu trúc đảm bảo ứng dụng của bạn sẽ được bảo trì tốt hơn trong quá trình phát triển và hoạt động tốt hơn trong sản xuất. Bây giờ bạn đã thấy những vấn đề phổ biến này có hại ra sao, họ hy vọng bạn đã sẵn sàng phòng tránh và tận dụng sức mạnh của Clean Code để đảm bảo mã của bạn vẫn là một tài sản chứ không phải một gánh nặng.
Theo Phil Nash
Comentários