Xóa mã không thể truy cập
Trong một ngôn ngữ được nhập tĩnh theo nguyên tắc, bạn phải luôn biết liệu mã có thực sự có thể truy cập được hay không: xóa nó, biên dịch, nếu không có lỗi thì không thể truy cập được.
Thật không may, không phải tất cả các ngôn ngữ đều được gõ tĩnh và không phải tất cả các ngôn ngữ được nhập tĩnh đều có nguyên tắc. Những điều có thể sai bao gồm (1) phản ánh và (2) quá tải không được xử lý.
Nếu bạn sử dụng ngôn ngữ động hoặc ngôn ngữ có phản xạ đủ mạnh để đoạn mã được xem xét kỹ lưỡng có thể có thể được truy cập tại thời điểm chạy thông qua phản xạ, thì bạn không thể dựa vào trình biên dịch. Những ngôn ngữ như vậy bao gồm Python, Ruby hoặc Java.
Nếu bạn sử dụng một ngôn ngữ có quá tải không được xử lý, thì việc loại bỏ quá tải chỉ có thể chuyển đổi độ phân giải quá tải sang trạng thái quá tải khác một cách im lặng. Một số ngôn ngữ như vậy cho phép bạn lập trình cảnh báo / lỗi thời gian biên dịch liên quan đến việc sử dụng mã, nếu không bạn không thể dựa vào trình biên dịch. Các ngôn ngữ như vậy bao gồm Java (sử dụng @Deprecated
) hoặc C ++ (sử dụng [[deprecated]]
hoặc = delete
).
Vì vậy, trừ khi bạn rất may mắn khi làm việc với các ngôn ngữ nghiêm ngặt (Rust xuất hiện trong tâm trí), bạn có thể thực sự tự bắn vào chân mình bằng cách tin tưởng vào trình biên dịch. Và thật không may, bộ thử nghiệm thường không đầy đủ vì vậy cũng không giúp được gì nhiều.
Đưa ra phần tiếp theo ...
Xóa mã không sử dụng
Nhiều khả năng, mã thực sự được tham chiếu, tuy nhiên bạn nghi ngờ rằng trong thực tế các nhánh mã tham chiếu nó không bao giờ được sử dụng.
Trong trường hợp này, bất kể ngôn ngữ, mã có thể truy cập một cách rõ ràng và chỉ có thể sử dụng thiết bị đo thời gian chạy.
Trước đây, tôi đã sử dụng thành công cách tiếp cận 3 giai đoạn để xóa mã đó:
- Trên mỗi nhánh nghi ngờ KHÔNG được thực hiện, đăng nhập một cảnh báo.
- Sau một chu kỳ, đưa ra một ngoại lệ / trả lại lỗi khi nhập đoạn mã cụ thể.
- Sau một chu kỳ khác, xóa mã.
Chu kỳ là gì? Đó là chu kỳ sử dụng mã. Ví dụ, đối với một ứng dụng tài chính, tôi sẽ mong đợi một chu kỳ ngắn hàng tháng (với tiền lương được trả vào cuối tháng) và một chu kỳ dài hàng năm. Trong trường hợp này, bạn phải đợi ít nhất một năm để xác minh rằng không có cảnh báo nào được phát ra cho khoảng không quảng cáo cuối năm có thể sử dụng các đường dẫn mã không bao giờ được sử dụng.
Hy vọng, hầu hết các ứng dụng có chu kỳ ngắn hơn.
Tôi khuyên nên đặt một bình luận TODO, kèm theo một ngày, tư vấn khi nào nên chuyển sang bước tiếp theo. Và một lời nhắc nhở trong lịch của bạn.