Gần đây tại công ty của tôi, chúng tôi đã có một cuộc tranh luận về sự trừu tượng so với sự đơn giản. Một trường phái suy nghĩ mà tôi mô tả là "KHÔ và trừu tượng không thể làm hại", và dẫn đến mã như thế này:
def make_foo_binary(binaryName, objFiles, fooLibsToLinkAgainst)
make_exe_task(binaryName, objFiles.ext('.o'), fooLibsToLinkAgainst)
end
và điều này:
class String
def escape_space
return self.gsub(' ', '\ ')
end
end
Quan điểm của tôi là việc tạo ra một sự trừu tượng như thế này, chỉ được sử dụng ở một nơi, làm cho mã ít đọc hơn, vì bạn đang thay thế một lệnh gọi hàm mà người đọc quen thuộc với (gsub) bằng một lệnh khác mà họ chưa từng thấy trước (esc_space), mà họ sẽ cần đọc nếu họ muốn hiểu cách mã thực sự hoạt động. Sự thay thế về cơ bản được mô tả bằng tiếng Anh ("không gian thoát") và tiếng Anh nổi tiếng là mơ hồ. Ví dụ, không cần nhìn vào định nghĩa, bạn không biết liệu nó có thoát khỏi tất cả các khoảng trắng hay chỉ là ký tự khoảng trắng.
Có rất nhiều bài viết hát những lời ca ngợi về DRY và sự trừu tượng. Có ai biết các nguồn mô tả giới hạn trừu tượng không? Điều đó hát những lời khen ngợi và thảo luận về tính thực dụng của việc giữ mã đơn giản?
Chỉnh sửa: Tôi có thể tìm thấy các văn bản khuyến khích sự đơn giản trong cuộc sống hoặc bằng văn bản (tiếng Anh), ví dụ: "Đơn giản hóa, đơn giản hóa!" Của Thoreau hoặc "Bài viết mạnh mẽ của Strunk và White là súc tích." Trường hợp tương đương với lập trình?