Duplikasi Kode Lebih Murah Daripada Abstraksi yang Salah

Pengembang menyukai prinsip DRY.

Anda ingin menghindari pengulangan diri. Anda menginginkan kode yang elegan dan dapat digunakan kembali.

Namun, tujuan ini sering kali menjebak: abstraksi prematur.

Mengulang kode terasa salah. Namun, duplikasi sering kali lebih murah daripada abstraksi yang buruk.

Kita mencoba membangun sistem modular yang sempurna. Kita mencari pola dan mengekstrak logika untuk mengelola kompleksitas.

Abstraksi yang dirancang dengan baik membantu skalabilitas perangkat lunak.

Namun, banyak abstraksi dibangun terlalu dini. Jika Anda tidak memahami masalah secara menyeluruh, abstraksi Anda justru akan menjadi beban.

Abstraksi yang salah menyebabkan beberapa masalah:

  • Over-engineering: Anda membangun solusi yang kompleks untuk masalah yang sederhana.
  • Rigidity (Kekakuan): Kode Anda menjadi sulit diubah karena mencoba memprediksi masa depan yang tidak pernah terjadi.
  • Obscured Intent (Maksud yang Tersembunyi): Logika bisnis tersembunyi di balik lapisan antarmuka generik. Hal ini membuat debugging menjadi sulit.
  • Tight Coupling (Keterikatan Erat): Bagian-bagian dari sistem Anda menjadi terpaku pada abstraksi itu sendiri.

Biayanya mahal. Anda menghabiskan waktu untuk melawan arsitektur Anda sendiri alih-alih menyelesaikan masalah pengguna. Hal ini memperlambat tim Anda dan membuat refactoring menjadi sulit.

Saya tidak menyuruh Anda untuk menyalin dan menempelkan semuanya. Saya menyarankan pendekatan yang pragmatis.

Gunakan duplikasi yang terkendali sebagai alat. Gunakan di area di mana persyaratan berubah dengan cepat atau di mana Anda menghadapi ketidakpastian.

Tunggulah sampai Anda melihat polanya dengan jelas sebelum membangun abstraksi tersebut.

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