Sementara saya membaca Anti-pola terburuk yang pernah Anda temui , saya mengklik tautan di pos ini untuk mendarat di situs web tentang anti-pola.
Dan halaman http://sourcemaking.com/antipatterns/functional-decomposition membuat saya bertanya-tanya.
Seberapa buruk anti-pola ini, dan apakah itu anti-pola sama sekali? Karena, meskipun saya melakukan sebagian besar pemrograman OOP saat ini, saya masih merasakan keengganan terhadap OOP murni - semua bahasa seperti Java, dan juga praktik desain yang mereka bawa. Dan saya kira, saya masih memiliki beberapa ciri pemrograman fungsional sementara saya menulis kode.
Dan ini memunculkan pertanyaan, apakah saya melakukan kesalahan dengan tetap berpegang pada gaya fungsional OOP +, atau apakah itu biasa dalam industri dan sebenarnya tidak seburuk itu.
Apa yang saya tahu dari pengalaman, adalah bahwa gaya fungsional OOP + tidak sepenuhnya kompatibel dengan pengembang OOP murni. Tetapi pada saat yang sama, sementara pengembang OOP memiliki masalah dengan pengembangan fungsional OOP +, tandingannya adalah bahwa solusi OOP cukup sering direkayasa berlebihan dan terlalu sulit untuk digunakan, dan dari pengalaman saya, bahkan tidak sedikit pun lebih mudah, dan sebenarnya memperkenalkan beberapa blind spot untuk menyembunyikan bug yang sangat serius.
Jadi, meskipun saya berdiskusi dengan kolega saya tentang topik-topik ini, saya sampai pada kesimpulan bahwa tidak ada cara yang benar-benar sempurna. Dan saya masih memiliki pertanyaan yang belum terjawab.
Masalah OOP juga diperkuat oleh tautan dari pos lain di utas yang sama. Tautan tersebut melihat gaya Java OOP http://chaosinmotion.com/blog/?p=622
Jadi apa sikap umum terhadap pencampuran pemrograman fungsional dengan OOP? Dan apa keseimbangan yang harus dicapai oleh pengembang?
Jawaban:
Pertama-tama, pemrograman fungsional saat ini adalah semua yang dilakukan anak-anak keren. Anti-Pattern benar-benar berbicara tentang pemrograman prosedural (akan lebih jelas jika tekniknya disebut "dekomposisi prosedural" tetapi tidak), dan saya pikir Anda juga demikian.
Anti-pola berbicara tentang cara-cara buruk menulis kode prosedural dalam bahasa berorientasi objek, halaman lain berbicara tentang buruk adalah menulis Java - sebenarnya tidak ada bahasa yang begitu fantastis sehingga Anda dapat melakukan semua yang ingin Anda lakukan tetapi tidak bisa tulis kode yang salah.
Dalam prakteknya, saya telah melihat sedikit lebih banyak rekayasa dalam kode berorientasi objek daripada prosedural - sedikit kurang di bawah teknik dan sedikit lebih dari rekayasa.
Dalam kasus Anda, itu akan tergantung pada spesifik, dan saya tidak yakin apa yang sebenarnya Anda lakukan dalam gaya prosedural. Apakah benar, jelas, dapat diuji, mudah dimodifikasi, dll? Kriteria untuk menilai kode harus didasarkan pada keprihatinan praktis seperti itu, dan bukan pada kemurnian satu gaya tertentu. Kedengarannya seperti dalam kasus Anda orang yang masuk akal dan berpengetahuan bisa tidak setuju (dan lakukan!) Tentang masalah tersebut, dan jika demikian mungkin tidak ada cara obyektif untuk menentukan kebenaran masalah tersebut.
sumber