Tôi biết có vẻ kỳ lạ khi nói, nhưng một lập trình viên đồng nghiệp đang cố tình sử dụng một vài thực hành lập trình xấu trên mục đích! Tôi sẽ giải thích. Đầu tiên hãy để tôi nói rằng anh ấy là một người thông minh và phần lớn anh ấy viết mã dễ hiểu.
Ông được yêu cầu thực hiện cấp phép cho một dự án ứng dụng web được viết bằng Java. Vì là Java, nếu một người thực sự muốn, có lẽ người ta có thể hack mở các lọ và đọc tên của các lớp và phương thức được viết bên trong. Giải pháp của ông cho vấn đề này là gọi một cách khó hiểu các biến và phương thức tên không rõ ràng và đặt chúng bên trong các lớp đã bị tắc nghẽn thay vì tạo các lớp mới.
Lời biện minh của anh ta là nếu một hacker muốn loại bỏ một số lớp nhất định để vượt qua kiểm tra cấp phép (và do đó có được một bản sao miễn phí của sản phẩm), thì anh ta sẽ gặp khó khăn hơn rất nhiều nếu không biết rõ phương pháp nào thực hiện các nhiệm vụ cụ thể này. Chỉ sau khi anh ta làm xong, tôi mới đối mặt với anh ta về điều đó, gợi ý rằng có lẽ chúng ta có thể mua một số thư viện obfuscator để làm điều đó cho chúng ta, trong khi vẫn duy trì các thực hành lập trình tốt. Ông tuyên bố không có thời gian hoặc nguồn lực để tìm kiếm loại giải pháp đó.
..Which làm tôi khó xử. Tôi có tìm kiếm một thư viện obfuscator trong Java và sửa mã cũ của anh ấy (có thể hơi cảm động về việc sửa lại mã của anh ấy), hoặc tôi có để nó như vậy không, điều đó có làm tôi khó chịu không?