Sana dan Kembali Lagi: Refactoring Berorientasi Objek ke Pemrograman Fungsional | Oleh Sam Hall | Juni 2022

Programming

[ad_1]
Hai Sob di suratpembaca.web.id. Dalam kesempatan ini kita akan membicarakan tentang Linux yakni Sana dan Kembali Lagi: Refactoring Berorientasi Objek ke Pemrograman Fungsional | Oleh Sam Hall | Juni 2022

.

Mudah-mudahan artikel mengenai Sana dan Kembali Lagi: Refactoring Berorientasi Objek ke Pemrograman Fungsional | Oleh Sam Hall | Juni 2022

dapat memberikan manfaat bagi Sahabat semua. Yuk baca artikel ini
hingga tuntas.

Bisakah kita menemukan paradigma “FOOP” baru?

Foto oleh Jene Yeo di Unsplash

Pemrograman terapan (FP) tampaknya cukup modis akhir-akhir ini. Sementara saya pikir FP memiliki banyak manfaat, saya sering mengalami masalah dengan apa yang kadang-kadang tampaknya menjadi perbandingan dogmatis bahwa FP lebih unggul dari pemrograman berorientasi objek (OO).

Berlawanan dengan kepercayaan populer, saya pikir OO dan FP lebih dekat daripada yang terlihat. Setidaknya jika kode OO ditulis dengan prinsip desain SOLID, ini benar.

Dalam tulisan ini, kita akan melihat SOLID OO dalam gaya pemrograman yang lebih fungsional (FP) menggunakan TypeScript.

Selain aspek “bagaimana”, kita akan melihat setiap rekreasi dari perspektif eksperimental. Saya pikir ini adalah ukuran yang baik dari kualitas kode. Jika mudah untuk diuji, ada kemungkinan besar bahwa tidak ada kumpulan kondisi jamur atau dependensi tersembunyi.

Tidak ada lagi ADO…. Mari kita membangun kembali

Untuk contoh ini kita akan menggunakan banyak Sangat Contoh rekening bank yang disederhanakan Kami akan memiliki objek domain akun dan akan kami gunakan untuk membuka rekening baru.

Seperti yang Anda lihat dalam contoh ini, ini adalah kode SOLID yang sangat umum. Kami memiliki kelas layanan stateless yang berisi aturan bisnis untuk penggunaan kami, dan kami bergantung pada lapisan data kami untuk dapat mempertahankan informasi akun kami. Ini mudah untuk diuji karena kita dapat menyuntikkan implementasi palsu ke dalam memori atau Mac menggunakan database.

Pada reload pertama ke FP, kita harus benar-benar mengubahnya menjadi sebuah fungsi. Dan seperti yang mereka katakan: “Paketnya adalah hal yang buruk”. Jadi mari kita ubah ini menjadi penutupan fungsional.

Apakah kita masih bekerja? tidak sepenuhnya. Kami masih berpotensi menyimpan status pribadi dalam iterasi ini, jadi mari hapus penutupan dan perkenalkan fungsi tingkat tinggi.

Hei, ini sangat keren! Kami mentransfer ketergantungan langsung ke fungsi. Kami mengambil kemampuan untuk mempertahankan status pada penutupan faktur dan sama-sama dapat diuji. Bentuknya seperti karung yang diselubungi dengan tali. aku menggalinya.

Namun, ada pekerjaan yang harus dilakukan. Bisakah kita memperhitungkan ketergantungan secara umum? Pertama, kita dapat membuat objek akun dan mengekstraknya ke fungsinya.

perhatikan itu createAccount Fungsinya sekarang murni. Dan alih-alih bergantung pada antarmuka, kita dapat menulis eksekusi fungsi saveAccount kita secara langsung.

Akhirnya, kita dapat membangun keduanya untuk memenuhi kebutuhan kita.

Tapi tunggu, bagaimana ini bisa diuji!? Kami tidak dapat menyuntikkan Daewoo palsu kami ke dalam fungsi. Jawabannya di sini adalah kita Tidak melakukan Unit Uji Kombinasi Sebagai gantinya kami menguji bagian murni yang sangat sederhana.

Untuk menguji seluruh komposisi, kita memerlukan tes integrasi (sertifikat nyata untuk nama).

Pada akhirnya, itu mungkin bukan tujuan dari keputusan OO atau FP, tetapi tujuan dari pemrograman stateless dengan tanggung jawab yang jelas dan terbatas.

Seperti banyak hal dalam hidup, tidak semuanya hitam dan putih. Perhatikan bahwa semua rekonstruksi ini layak dilakukan sejak awal. Masing-masing tidak memiliki kewarganegaraan, dapat diuji, dan memiliki tanggung jawab yang jelas! Perbedaan utama di sini adalah manajemen ketergantungan menggunakan inversi ketergantungan atau penolakan ketergantungan.

Saya pikir saya ingin menyimpulkan bahwa mungkin keseimbangan ada di tengah. Saya pribadi memiliki preferensi untuk refactoring fungsi urutan yang lebih tinggi. Tampaknya memiliki yang terbaik dari kedua dunia di dalamnya:

  • Hindari spageti yang mungkin datang dengan kelas dan hari libur
  • Tidak mengecilkan hal-hal yang sulit dilacak (kombinasi fungsional)

Mungkin kita bisa memunculkan paradigma baru yang disebut FOOP? Terima kasih sudah membaca!

Itu tadi pembahasan tentang Sana dan Kembali Lagi: Refactoring Berorientasi Objek ke Pemrograman Fungsional | Oleh Sam Hall | Juni 2022

, terimakasih telah mengunjungi website ini, mudah-mudahan postingannya ada manfaatnya ya.

[ad_2]

Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.