Duplikasi Kod Lebih Murah Daripada Abstraksi yang Salah

Pembangun menyukai prinsip DRY.

Anda ingin mengelakkan pengulangan diri. Anda mahukan kod yang elegan dan boleh diguna semula.

Namun, matlamat ini sering membawa kepada satu perangkap: abstraksi pramatang.

Mengulang kod terasa tidak betul. Walau bagaimanapun, duplikasi selalunya lebih murah daripada abstraksi yang buruk.

Kita cuba membina sistem modular yang sempurna. Kita mencari corak dan mengekstrak logik untuk mengurus kerumitan.

Abstraksi yang direka dengan baik membantu perisian berkembang.

Tetapi banyak abstraksi dibina terlalu awal. Jika anda tidak memahami masalah sepenuhnya, abstraksi anda akan menjadi liabiliti.

Abstraksi yang salah menyebabkan beberapa masalah:

  • Over-engineering: Anda membina penyelesaian kompleks untuk masalah mudah.
  • Rigidity: Kod anda menjadi sukar untuk diubah kerana ia cuba meramal masa depan yang tidak pernah berlaku.
  • Obscured Intent: Logik perniagaan tersembunyi di bawah lapisan antara muka generik. Ini menyukarkan proses penyahpepijatan.
  • Tight Coupling: Bahagian sistem anda menjadi terikat pada abstraksi itu sendiri.

Kosnya adalah tinggi. Anda menghabiskan masa melawan seni bina anda sendiri daripada menyelesaikan masalah pengguna. Ia melambatkan pasukan anda dan menyukarkan proses penstrukturan semula.

Saya tidak menyuruh anda menyalin dan menampal segalanya. Saya mencadangkan pendekatan pragmatik.

Gunakan duplikasi terkawal sebagai alat. Gunakan ia dalam bidang di mana keperluan berubah dengan cepat atau di mana anda menghadapi ketidakpastian.

Tunggu sehingga anda melihat corak tersebut dengan jelas sebelum anda membina abstraksi.

Sumber: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-code-duplication-is-far-cheaper-than-the-wrong-abstraction-2cbo