Saya baru saja mulai dengan pemrograman fungsional (dengan JavaScript dan Node.js) dan dari tampilan hal-hal itu tampak seolah-olah kode yang saya tulis akan tumbuh menjadi neraka basis kode untuk dikelola, jika dibandingkan dengan bahasa pemrograman yang memiliki semacam paradigma berorientasi objek.
Dengan OOP saya terbiasa dengan praktik yang akan memastikan kode Anda mudah dikelola dan diperluas. Tetapi saya tidak yakin dengan konvensi serupa dengan pemrograman fungsional.
Jawaban:
Dalam prakteknya, basis kode fungsional yang besar masih perlu dibagi dalam beberapa jenis sistem struktural. Jika Anda merasa nyaman dalam OOP, kelas tetap menjadi elemen penataan alami. Anda berusaha untuk "objek fungsional": fungsi yang berhubungan secara konseptual ditempatkan bersama di dalam kelas. Tentu saja, Anda menghindari keadaan non-percakapan dan bergantung pada variabel instan.
Melampaui struktur, ada teknik tertentu, seperti aplikasi fungsi parsial, yang lebih disukai di dunia fungsional untuk ekstensi, rawatan, dan generalisasi. Namun, belajar mengenali peluang ini bisa sulit ketika bekerja dalam mode fungsional / objek hibrid. Secara pribadi, saya pikir itu ide yang baik untuk bekerja dalam mode hybrid tetapi untuk belajar dan bermain di lingkungan yang lebih murni, seperti yang disediakan oleh Haskell.
sumber
Bahasa pemrograman fungsional menikmati banyak konsep yang kuat untuk membangun kode berkualitas tinggi, misalnya: Fungsi yang diterapkan sebagian, komposisi fungsi (yang ini sangat kuat dan favorit saya), makro, fungsi urutan yang lebih tinggi. Dan jangan lupa struktur data yang tidak berubah.
sumber
Daripada meninggalkan OOP untuk FP, coba tambahkan dengan beberapa pola FP. Kapan pun Anda perlu memproses koleksi adalah kandidat yang bagus dan menunjuk ke sekumpulan metode FP umum seperti peta, lipat dan kurangi. Lihatlah underscore.js dan backbone, kerangka kerja MVC yang banyak menggunakan yang lama.
sumber