Thiết kế mã, sao chép mã dán chắc chắn là một thảm họa, với khả năng gây ra nhiều vấn đề trong tương lai. Nhưng bạn đang hỏi tại sao phải mất rất nhiều công việc ngay bây giờ , câu trả lời là: bởi vì nó không bao giờ chỉ là sao chép và dán.
Nếu mã gốc được viết để sử dụng lại, như một thư viện khá độc lập, có tính linh hoạt và sử dụng máy khách - thì thật tuyệt, nhưng đó không phải là sao chép, đó là sử dụng thư viện mã. Dán sao chép mã thực thường giống như thế này:
- "Chắc chắn, tôi đã có mã thực hiện chính xác điều đó!"
- "Đợi đã, phiên bản nào trong năm phiên bản mã này là phiên bản tôi muốn sử dụng làm nguồn của mình?"
- "Hmmm, tất cả các chức năng 'produc_func_023' này làm gì? Tôi không có tài liệu cho họ sao? Bây giờ tôi cần cái nào?"
- "Ồ, vâng, mã này sử dụng Mã cơ sở Y. Đoán tôi cần [ chọn một: sao chép tất cả Mã cơ sở Y vào dự án mới của tôi / dành một ngày để trích xuất một chức năng tôi muốn từ Mã cơ sở Y / dành một tuần để giải mã một chức năng tôi muốn từ Mã cơ sở Y]. "
- "Tôi đã sao chép mọi thứ, yay!"
- "Tại sao điều này không hoạt động?"
- Đây là điểm mà bạn dành hàng giờ / ngày / tuần để gỡ lỗi mã hiện có tương tự như những gì bạn muốn, thay vì viết mã bạn thực sự muốn bắt đầu.
Tóm lại, mã hiện tại không thể được sử dụng trực tiếp có thể, tốt nhất, đóng vai trò là tài liệu tham khảo tốt để viết mã tương tự. Nó chắc chắn không thể được nâng toàn bộ và dự kiến sẽ hoạt động trong một hệ thống hoàn toàn khác. Nói chung, đó là một giả định an toàn rằng bất kỳ mã nào đã được viết và hoàn thành, nên được gửi càng ít càng tốt - ngay cả khi đó là bản sao chứ không phải bản gốc.
Nếu bạn muốn dựa trên dự án của mình để dán sao chép, bạn phải bắt đầu mã theo cách cho phép tái sử dụng dễ dàng, mà không sao chép mã gốc đó và làm rối tung nó. Điều đó đáng để làm, và nếu đó là điều mà sếp của bạn đang mong đợi, thì cả hai bạn cần chắc chắn rằng đó là cách bạn thiết kế và làm việc ngay từ đầu.