Với kinh nghiệm đi kèm phán đoán để biết khi nào mã thực sự xấu, và khi nó chỉ được viết theo một phong cách khác. Nếu nó hoàn hảo về chức năng và có thể bảo trì và có phạm vi kiểm tra tự động tốt , thì nó không tệ và bạn chỉ cần mở mang đầu óc. Bạn có thể sẽ học được điều gì đó. Mã xấu không có chức năng và có thể bảo trì.
Dưới đây là một số đánh dấu của mã thực sự xấu:
- Các khối logic lớn đã được nhân đôi thay vì tái cấu trúc.
- Phụ thuộc tròn giữa các lớp hoặc gói
- Khớp nối cao; độ kết dính thấp
- Các biến không được sử dụng, ghi vào các biến không bao giờ được đọc, mã không thể truy cập.
- Thực hiện lại các chức năng thư viện tiêu chuẩn, ví dụ định dạng ngày.
- Logic phức tạp không cần thiết; tức là 50 dòng mã trong đó 10 sẽ làm tốt.
- Không có ý kiến mô tả mục đích của các lớp học hoặc phương pháp.
- Nhận xét sai lệch.
Việc thiếu các bài kiểm tra tự động không có nghĩa là mã này xấu, nhưng điều đó có nghĩa là dự án rất tệ.
Đây không phải là một vấn đề của hương vị; những thực hành này làm cho bảo trì chương trình đắt hơn nhiều.
Làm thế nào để bạn chuẩn bị cho mình?
Chấp nhận thực tế là phải mất một thời gian để có thể làm việc thành công trên cơ sở mã mới. Nếu nó "hoàn toàn có thể duy trì" và có độ bao phủ thử nghiệm cao, sẽ mất ít thời gian hơn nhưng nó vẫn không xảy ra ngay lập tức. Nếu mã xấu, thì điều đầu tiên tôi làm là cảnh báo các bên liên quan rằng nó ở dạng xấu và tiến độ ban đầu sẽ chậm. Nếu họ nghi ngờ, thì tôi sẽ sao lưu yêu cầu của mình bằng cách chỉ cho họ một mẫu các vấn đề trong mã thực tế và giải thích cách nó thay đổi so với thực tiễn tốt nhất trong ngành.