Berpikir Gaya Ramda: Kesimpulan

1. Langkah pertama
2. Gabungkan fungsinya
3. Penggunaan parsial (kari)
4. Pemrograman deklaratif
5. Notasi klasik
6. Kekekalan dan objek
7. Kekekalan dan array
8. Lensa
9. Kesimpulan


Posting ini melengkapi serangkaian artikel tentang pemrograman fungsional yang disebut Ramda Style Thinking.


Dalam delapan posting terakhir, kita berbicara tentang perpustakaan JavaScript Ramda, yang menyediakan fungsi untuk bekerja dengan JavaScript dalam gaya fungsional, deklaratif dan tidak berubah.


Sepanjang seri artikel ini, kami mengetahui bahwa Ramda memiliki beberapa prinsip dasar yang diikuti oleh API-nya:


  • Data datang terakhir: hampir semua fungsi menerima parameter dengan data sebagai argumen terakhir.
  • Currying: Hampir setiap fungsi dalam Ramda adalah kari. Artinya, Anda bisa memanggil fungsi dengan hanya sebagian dari argumen yang diperlukan, dan mendapatkan fungsi baru yang akan menunggu argumen yang tersisa. Segera setelah semua argumen diberikan, fungsi aslinya akan dipanggil.

Kedua prinsip ini memungkinkan kita untuk menulis kode fungsional yang sangat bersih yang mengintegrasikan blok bangunan dasar ke dalam operasi yang lebih kuat.


Ringkasan


Untuk referensi, berikut adalah ringkasan singkat dari serangkaian artikel.


  • Langkah-langkah pertama disajikan kepada kita oleh gagasan fungsi, fungsi murni, dan kekekalan. Dia kemudian memperkenalkan kami pada fungsi pengumpulan iterasi, seperti map , filter dan reduce .
  • Menggabungkan fungsi menunjukkan kepada kita bagaimana kita dapat menggabungkan fungsi kita dalam berbagai cara, menggunakan alat seperti both , either , pipe dan compose .
  • Penggunaan sebagian (currying) membantu kita memahami kapan dan bagaimana bermanfaat untuk memberikan beberapa argumen pada suatu fungsi dan dapat memberikan sisanya nanti. Kami menggunakan partial dan curry untuk membantu kami dalam hal ini dan belajar tentang flip dan placeholder ( __ )
  • Pemrograman deklaratif mengajarkan kita perbedaan antara pemrograman imperatif dan deklaratif. Kita akan belajar bagaimana menggunakan pengganti deklaratif Ramda untuk aritmatika, perbandingan, logika, dan kondisi.
  • Notasi yang tidak mengerti memperkenalkan ide gaya yang tidak mengerti, juga dikenal sebagai "pemrograman diam." Dalam gaya pointless, kita tidak melihat argumen dengan data yang kita kerjakan, ini dilakukan secara implisit. Program kami terdiri dari blok-blok kecil sederhana yang berkumpul untuk melakukan apa yang kita butuhkan. Hanya pada saat terakhir kami menerapkan fungsi komposit kami ke data yang relevan.
  • Ketidakberimbangan dan objek membawa kita kembali ke ide bekerja dalam gaya deklaratif, inilah saatnya untuk mendapatkan alat yang kita butuhkan untuk membaca, memperbarui, memodifikasi, menghapus, dan mengubah sifat-sifat objek.
  • Ketidakmampuan dan array melanjutkan topik dan menunjukkan kepada kita bagaimana melakukan operasi serupa dengan array.
  • Lensa melengkapi seri bersama dengan memperkenalkan konsep lensa, desain yang memungkinkan kita untuk fokus pada bagian kecil dari struktur data besar. Dengan menggunakan fungsi view , set dan over , kita dapat membaca, memperbarui, dan mengubah nilai yang menjadi fokus lensa dalam konteks struktur data besar.

Apa selanjutnya


Kami belum membahas semua seluk beluk Ramda dalam seri artikel ini. Secara khusus, kami tidak berbicara tentang fungsi string dan tidak berbicara tentang konsep yang lebih kompleks, seperti transduser .


Untuk mempelajari lebih lanjut tentang apa yang dapat dilakukan Ramda, saya sarankan Anda mempelajari dokumentasinya . Ada banyak informasi. Semua fungsi dikelompokkan berdasarkan jenis data yang digunakannya, meskipun ada beberapa tumpang tindih. Sebagai contoh, beberapa fungsi untuk bekerja dengan array juga bekerja dengan string, dan map bekerja dengan array dan objek.


Jika Anda tertarik pada topik fungsional yang lebih kompleks, berikut adalah beberapa tempat yang dapat Anda kunjungi:


  • Transduser: di sini Anda dapat membaca artikel pengantar yang bagus tentang cara mem-parsing log menggunakan transduser.
  • Tipe data aljabar: Jika Anda telah cukup membaca tentang pemrograman fungsional, Anda telah mendengar tentang tipe aljabar dan istilah-istilah seperti "Functor", "Aplikator" dan "Monad". Jika Anda tertarik mengeksplorasi ide-ide ini dalam konteks Ramda, lihat proyek ramda-fantasi , yang mengimplementasikan beberapa tipe data yang memenuhi spesifikasi Fantasy Land (atau Spesifikasi JavaScript Aljabar)



Dari penulis terjemahan artikel: jika itu menyenangkan hati Tuhan, saya akan terus menerjemahkan artikel tentang Ramda, khususnya, saya memiliki keinginan untuk menerjemahkan sebuah artikel tentang penggunaan ramda dengan redux , sebuah artikel tentang komponen fungsional dengan fungsi Bangun stateless dan Ramda , sebuah artikel tentang pengurang modular dan penyeleksi , dan mungkin artikel tentang globalisasi penyeleksi redux .

Source: https://habr.com/ru/post/id415037/


All Articles