Trang chủTác giảLiên hệ

SonarQube - Tìm hiểu Rules cho TypeScript - về code thối - phần 4

By Lưu Vinh Lộc
Published in Javascript
August 09, 2021
1 min read

alt text

Chi tiết rule tham khảo tại sonarsource rules for typescript - code smell.

Các rule này thuộc loại code thối - code không ngon - code smell.

Function không nên trả về giá trị bất biến trong mọi trường hợp và với mọi input

Function returns should not be invariant

What the hell! Lại có thể loại function trả về giá trị bất biến, thế thì cũng không cần function để làm gì cả!

À khoan, đây có thế là 1 lỗi ngây ngô, không có chủ đính của developer.

Ví dụ đoạn code vi phạm

Ta thấy dù có input là gì thì function này vẫn trả về b. Thế thì nên dẹp tiệm function ngay và luôn, lấy luôn giá trị b cho xong.

b ở đây không nhất thiết là 1 giá trị bất biến (ở ví dụ trên b = 12).

Viết số trong hệ “bát phân” không nên gây nhầm lẫn với hệ thập phân

Octal values should not be used

Bát phần hay hệ cơ số 8 khác với hệ cơ số 10 mà ta hay dùng, đếm từ 0 đến 7 thì thêm 1 chữ số vào bên trái.

Còn hệ thập phân thì đếm đến 9 mới thêm 1 số vào bên trái.

Vấn đề

Mở console của trình duyệt gõ:

Output là 8. What the hell! Do đó, 2 số ở 2 hệ này rất dễ nhầm lẫn.

Có thể developer cố tình gõ như vậy thì không sao, nhưng cũng có thể là “lỗi đánh máy” thì có trời mà biết ý nó là hệ nào.

May là từ chuẩn ES6 trở đi, ta có cách viết mới dành cho hệ cơ số 8. Đó là thêm 0o vào trước số hệ bát phần.

0o là số không với chữ o tròn như quả trứng gà bên cạnh!

Mở console của trình duyệt gõ:

Output vẫn là 1, vì 1 là 1 trong hệ bát phân (hơi lú).

Output là 8, vì đếm quá 7 thì thêm 1 số về phía bên trái.

Output là Uncaught SyntaxError: Invalid or unexpected token, vì trong hệ này không tồn lại cách viết số 8.

Ví dụ đoạn code vi phạm

Giải pháp tuân thủ rule

Đối với hệ cơ số 10 đơn giản là:

Đối với hệ cơ số 8:


Photo by NeONBRAND on Unsplash

Đây là bài viết trên blog cá nhân của tôi.


Tags

Typescript

Lưu Vinh Lộc

Developer

Related Posts

SonarQube - Tìm hiểu Rules cho TypeScript - về bug - phần 5
August 09, 2021
2 min
© 2021, All Rights Reserved.

Quick Links

Liên hệ quảng cáoThông tinLiên hệ

Social Media