Tôi đang tìm kiếm một sự tương tự hoặc ẩn dụ tốt có thể minh họa các vấn đề của lập trình sao chép-dán cho những người không lập trình. Thỉnh thoảng tôi thực hiện đánh giá mã / hệ thống cho các khách hàng tiềm năng và một trong những vấn đề phổ biến tôi thấy là số lượng lớn mã sao chép dán trên tất cả các cơ sở mã của họ. Đó là điều tôi thường xuyên gọi ra trong các bài đánh giá, và mỗi lần tôi phải giải thích tại sao đây là một vấn đề (điều này đặc biệt khó khăn với những khách hàng biết đủ về lập trình để hiểu rằng tái sử dụng là một điều tốt, nhưng không đủ để hiểu tại sao copy-paste không phải là một hình thức tái sử dụng tốt). Rõ ràng, tôi có thể (và làm) giải thích vấn đề về bảo trì mã, nhưng thật tuyệt khi có một sự tương tự tốt, ngắn gọn cho vấn đề này sẽ xảy ra với những người không lập trình. Tiền thưởng nếu sự tương tự minh họa tại sao tìm kiếm và thay thế không phải là một giải pháp hiệu quả cho vấn đề này. Bất kỳ đề xuất?
Chỉ cần làm rõ (dựa trên câu trả lời của Jaroslav bên dưới) - Tôi không nói về việc sử dụng đoạn mã ở đây; những gì tôi thấy (thường xuyên lo lắng) là sao chép và dán các dải mã lớn hoặc một đoạn mã mười dòng để lấy một số dữ liệu người dùng (hoàn thành với truy vấn SQL nội tuyến) được dán vào hàng tá trang PHP hoặc ASP.NET. Vì vậy, sao chép mã từ nơi khác trong cùng một dự án.
Cập nhật: Có một số câu trả lời thực sự tốt ở đây; Tôi đã giải thích trong các ý kiến tại sao tôi chọn câu trả lời của Scott Whitlock, nhưng tôi cũng rất muốn giới thiệu câu trả lời của whatsisname nếu bạn đang làm việc với những khách hàng quen thuộc với sản xuất.