Tôi đã được đọc " Clean Code " của Robert Martin để hy vọng trở thành một lập trình viên tốt hơn. Mặc dù cho đến nay vẫn chưa có gì thực sự đột phá, nó khiến tôi nghĩ khác về cách tôi thiết kế các ứng dụng và viết mã.
Có một phần của cuốn sách mà tôi không chỉ không đồng ý mà còn không có ý nghĩa đối với tôi, đặc biệt liên quan đến các quy ước đặt tên giao diện. Đây là văn bản, được lấy trực tiếp từ cuốn sách. Tôi đã nhấn mạnh khía cạnh này tôi thấy khó hiểu và muốn làm rõ trên.
Tôi thích để lại các giao diện chưa được trang bị. Cái trước tôi, rất phổ biến trong các di sản ngày nay, là một sự xao lãng ở mức tốt nhất và quá nhiều thông tin tồi tệ nhất. Tôi không muốn người dùng của mình biết rằng tôi đang trao cho họ một giao diện .
Có lẽ bởi vì tôi chỉ là một sinh viên, hoặc có thể vì tôi chưa bao giờ thực hiện bất kỳ chương trình chuyên nghiệp hoặc lập trình nhóm nào nhưng tôi muốn người dùng biết đó là một giao diện. Có một sự khác biệt lớn giữa việc thực hiện một giao diện và mở rộng một lớp.
Vì vậy, câu hỏi của tôi sôi nổi lên, "Tại sao chúng ta nên che giấu sự thật rằng một số phần của mã đang mong đợi một giao diện?"
Biên tập
Đáp lại câu trả lời:
Nếu loại của bạn là một giao diện hoặc một lớp là doanh nghiệp của bạn, không phải là doanh nghiệp của ai đó sử dụng mã của bạn. Vì vậy, bạn không nên rò rỉ chi tiết về mã của mình trong mã bên thrid này.
Tại sao tôi không nên "rò rỉ" các chi tiết về việc một loại nhất định là giao diện hay lớp đối với mã của bên thứ ba? Điều đó không quan trọng đối với nhà phát triển bên thứ ba sử dụng mã của tôi để biết liệu họ sẽ triển khai giao diện hay mở rộng lớp? Có phải sự khác biệt đơn giản là không quan trọng bằng việc tôi tạo ra chúng trong tâm trí mình?
to know whether they will be implementing an interface or extending a class
: có, nhưng hầu hết người dùng mã của bạn sẽ gọi nó, không triển khai hoặc mở rộng nó và họ thực sự không thể quan tâm đó là gì.