Bagaimana kode Anda digunakan oleh pengembang? Dengan kata lain, apa yang sebenarnya mereka lakukan untuk menentukan argumen mana yang harus digunakan dan bagaimana?
Jika mereka bergantung pada dokumentasi yang dihasilkan secara otomatis dari kode Anda, dan generator tidak tahu apa yang harus dilakukan **kwargs
, ini memang bermasalah. Alih-alih menemukan daftar argumen dan maknanya dalam dokumentasi, mereka sama sekali tidak memiliki informasi kecuali samar-samar "dibutuhkan beberapa argumen".
Masalah ini mungkin dapat diselesaikan dengan mendokumentasikan metode secara manual, menggantikan dokumentasi yang dihasilkan secara otomatis. Ini membutuhkan kerja ekstra dari pelaksana metode ini, tetapi ingat, kode (dan dokumentasinya) dibaca lebih sering daripada yang tertulis.
Jika kode adalah dokumentasinya, pengembang yang menggunakan metode ini **kwargs
perlu dua langkah tambahan: mereka tidak hanya perlu melihat tanda tangan metode tersebut, tetapi juga pada implementasinya yang sebenarnya, untuk menemukan metode lain yang sebenarnya ia panggil. Kemudian, mereka perlu pergi ke metode lain ini untuk akhirnya menemukan apa yang mereka cari.
Ini tidak melibatkan banyak upaya, tetapi tetap saja, upaya itu harus diulang, lagi dan lagi. Bagian terburuknya adalah Anda tidak dapat membantu mereka dengan menambahkan dokumentasi: jika Anda mengomentari metode Anda, mendaftar argumen yang sebenarnya, ada risiko besar bahwa versi pustaka panggilan metode berikutnya akan memiliki argumen yang berbeda, dan dokumentasi Anda akan sudah ketinggalan zaman, karena tidak ada yang akan ingat bahwa itu harus tetap up to date.
Rekomendasi saya adalah **kwargs
hanya mengandalkan metode yang cakupannya berkurang. Metode pribadi (dan secara pribadi dalam konteks Python, maksud saya metode yang dimulai dengan _
) yang digunakan di beberapa tempat di kelas adalah kandidat yang baik, misalnya. Di sisi lain, metode yang digunakan oleh banyak kelas di seluruh basis kode adalah kandidat yang sangat buruk.
Lagi pula, tidak perlu terlalu banyak upaya untuk menulis ulang argumen metode yang Anda panggil dalam metode yang Anda tulis. Mudah-mudahan, sebagian besar metode tidak memerlukan lebih dari enam hingga delapan argumen, dan jika itu benar, tanyakan pada diri Anda apakah Anda tidak boleh membuat ulang kode. Dalam semua kasus:
Membuat argumen secara eksplisit dalam metode Anda tidak membutuhkan banyak usaha,
Anda mungkin ingin, kemudian, untuk memvalidasi argumen (walaupun jika Anda hanya mengandalkan pada titik ini untuk membuat argumen eksplisit, Anda melanggar YAGNI).