Insting yang biasa adalah menghapus duplikasi kode yang Anda lihat dalam kode. Namun, saya menemukan diri saya dalam situasi di mana duplikasi itu ilusi .
Untuk menjelaskan situasinya secara lebih terperinci: Saya sedang mengembangkan aplikasi web, dan sebagian besar tampilan pada dasarnya sama - mereka menampilkan daftar item yang dapat digulir dan dipilih oleh pengguna, daftar kedua yang berisi item yang dipilih, dan "Simpan "tombol untuk menyimpan daftar baru.
Tampak bagi saya bahwa masalahnya mudah. Namun, masing-masing dan setiap tampilan memiliki kebiasaan sendiri - kadang-kadang Anda perlu menghitung ulang sesuatu, kadang-kadang Anda harus menyimpan beberapa data tambahan dll. Ini, saya diselesaikan dengan memasukkan kait panggilan balik dalam kode logika utama.
Ada begitu banyak perbedaan kecil antara pandangan yang menjadi kurang dan kurang dapat dipelihara, karena saya perlu memberikan panggilan balik untuk semua fungsi pada dasarnya, dan logika utama mulai terlihat seperti urutan besar panggilan panggilan balik. Pada akhirnya saya tidak menghemat waktu atau kode, karena setiap tampilan memiliki kode sendiri yang dieksekusi - semuanya dalam panggilan balik.
Masalahnya adalah:
- perbedaannya sangat kecil sehingga kode terlihat hampir persis sama di semua tampilan,
- ada begitu banyak perbedaan sehingga ketika Anda melihat detailnya, untuk kode tidak sama
Bagaimana saya harus menangani situasi ini?
Apakah memiliki logika inti yang seluruhnya terdiri dari panggilan balik panggilan merupakan solusi yang baik?
Atau haruskah saya lebih suka menduplikasi kode dan menjatuhkan kompleksitas kode berbasis panggilan balik?