Có, bạn nên viết mã dựa trên các giao diện thay vì các triển khai đã biết và có, bạn nên xây dựng các giao diện trước thay vì chúng xuất hiện từ mã của riêng bạn.
Lý do cho cả hai khuyến nghị phần lớn giống nhau: lập trình máy tính chủ yếu là về các yếu tố con người. Nhiều người thấy điều này đáng ngạc nhiên, nhưng hãy xem xét: có một số lượng gần như vô tận các cách khác nhau để giải quyết cùng một vấn đề điện toán hoạt động tốt như nhau. Gần như tất cả chúng hoàn toàn không thể có ý nghĩa đối với bất kỳ ai không viết chúng (hoặc thực tế cho tác giả một thời gian ngắn sau đó).
Theo sau đó, công nghệ phần mềm tốt phần lớn là về cách đạt được hiệu quả mong muốn (tính toán chính xác với hiệu quả hợp lý) theo cách cho phép mã nguồn được làm việc sau này. Các giao diện và API là một phần quan trọng của môn học đó: chúng cho phép bạn suy nghĩ về một vấn đề ở một cấp độ mô tả tại một thời điểm. Điều này dễ dàng hơn nhiều so với suy nghĩ về các quy tắc nhất quán kinh doanh và về việc triển khai danh sách được liên kết cùng một lúc, và do đó áp đặt một mối quan tâm như vậy một cách ép buộc tốt hơn là cho phép lập trình viên khách hàng sử dụng mã của bạn theo bất kỳ cách nào anh ta thích.
Điều này thật khó tin đối với nhiều lập trình viên cao bồi, những người tin rằng họ hiểu mọi thứ họ viết, tốt hơn nhiều so với những người suy nghĩ trung bình và có thể xử lý tất cả sự phức tạp gây rắc rối cho các lập trình viên "ít" hơn. Không nhận thức được giới hạn nhận thức của chính mình là một hiện tượng cực kỳ phổ biến - đây là lý do tại sao các thực tiễn tốt nhất trong tổ chức mã rất quan trọng (và thường bị bỏ qua).
Nhắc lại, các giao diện và rào cản API phần lớn là tốt , ngay cả khi bạn chỉ hợp tác với chính mình. Đối với các thư viện bên ngoài, nếu họ mang theo API chu đáo, tôi sẽ không gặp vấn đề gì khi sử dụng nó miễn là bạn không lường trước việc phải trao đổi thư viện đó cho một thư viện khác. Mặt khác, một lớp bọc hoặc lớp chống tham nhũng có thể là một ý tưởng rất tốt.