Ya, Anda harus membuat kode terhadap antarmuka daripada implementasi yang diketahui, dan ya, Anda harus membuat antarmuka terlebih dahulu daripada membuatnya muncul dari kode Anda sendiri.
Alasan kedua rekomendasi ini sebagian besar sama: pemrograman komputer sebagian besar tentang faktor manusia. Banyak yang menemukan ini mengejutkan, tetapi pertimbangkan: ada sejumlah cara yang hampir tak terbatas untuk memecahkan masalah komputasi yang sama yang bekerja sama baiknya. Hampir semuanya benar-benar mustahil untuk dipahami oleh siapa pun yang tidak menulisnya (atau bahkan kepada penulis beberapa waktu kemudian).
Oleh karena itu, rekayasa perangkat lunak yang baik sebagian besar tentang bagaimana mencapai efek yang diinginkan (perhitungan yang benar dengan efisiensi yang masuk akal) dengan cara yang memungkinkan kode sumber untuk dikerjakan nanti. Antarmuka dan API adalah bagian penting dari disiplin itu: mereka memungkinkan Anda untuk memikirkan masalah pada satu tingkat deskripsi pada satu waktu. Ini jauh lebih mudah daripada memikirkan aturan konsistensi bisnis dan tentang implementasi daftar tertaut pada saat yang sama, dan karenanya memaksakan pemisahan kekhawatiran secara paksa lebih baik daripada membiarkan pemrogram klien untuk menggunakan kode Anda dengan cara apa pun yang diinginkannya.
Ini sulit dipercaya bagi banyak programmer koboi, yang yakin bahwa mereka memahami semua yang mereka tulis, jauh lebih baik daripada pemikir rata-rata, dan dapat menangani semua kerumitan yang membuat kesulitan programmer "lebih rendah". Tidak menyadari batas kognitif sendiri adalah fenomena yang sangat umum - inilah sebabnya praktik terbaik dalam organisasi kode sangat penting (dan sering diabaikan).
Untuk mengulang, antarmuka dan penghalang API sebagian besar baik , bahkan ketika Anda hanya bekerja sama dengan diri sendiri. Adapun perpustakaan eksternal, jika mereka membawa API yang dipikirkan dengan matang, saya tidak melihat masalah dalam menggunakannya karena selama Anda tidak mengantisipasi harus menukar perpustakaan itu dengan yang lain. Kalau tidak, lapisan pembungkus atau anti korupsi bisa menjadi ide yang sangat bagus.