Pemrogram Python tidak cukup menggunakan Dependency Inversion (DI). Ada beberapa alasan mengapa tidak:

  • Ini rumit — ini membalikkan pemahaman intuitif tertentu tentang aliran kode.
  • Terkadang orang melakukan injeksi ketergantungan dan mengira mereka telah melakukan Inversi Ketergantungan.
  • Manfaat DI mudah terlihat dalam basis kode yang sudah matang, namun penerapan DI dalam kode baru menambah tingkat abstraksi yang menurut banyak pemrogram tidak praktis. Ia mendapatkan YAGNI, padahal seharusnya tidak.

Namun ketergantungan Inversion DI dapat menyelamatkan kode yang Anda tulis hari ini agar tidak menjadi usang dalam 2 tahun.

Terlebih lagi, Python memiliki fitur asli fantastis yang disebut Titik Masuk (didukung oleh sebagian besar pengemasan alat) yang memungkinkan Anda mendapatkan banyak ekstensibilitas dari Inversi Ketergantungan, dengan mudah.

Jadi inilah yang ingin saya bahas dalam posting ini:

  • Apa itu Inversi Ketergantungan (dan seperti apa tampilannya di Python)?
  • Apa itu Titik Masuk Python?
  • Bagaimana Kedua Hal Ini Berjalan Bersama?

Jika Anda seorang Juara Inversi Ketergantungan dan merasa sudah menguasai konsep tersebut dengan SOLID (mengerti?), silakan lihat bagian Poin Masuk.

Apa itu Pembalikan Ketergantungan?

Definisi

Ada definisi standar dari prinsip Dependency Inversion. Benar sekali, tetapi saat pertama kali mempelajari DI, rasanya samar. Mari kita selesaikan:

Objek tingkat tinggi tidak boleh bergantung pada objek tingkat rendah. Keduanya harus bergantung pada abstraksi.

Izinkan saya meminjam dari dunia konseptual yang menghasilkan definisi tersebut untuk memberi Anda definisi yang berbeda namun kompatibel:

Logika inti kode Anda harus mendefinisikan dan menggunakanhanyaantarmuka yang ingin digunakan untuk berinteraksi.

Contoh Lucu Untuk Menjebak Kita

Logika inti kode Anda adalah bagian yang mendefinisikan hal-hal khusus yang Anda ingin perangkat lunak Anda lakukan dalam kaitannya dengan abstraksi tingkat tinggi. Ingat “meme kode viral ini” bercanda tentang bagaimana mereka berhasil mencegah drone menabrak setiap…