Selama saya menjadi pengembang web, saya harus banyak berurusan dengan Kode JavaScript. Saya suka JavaScript, tidak ada pertanyaan yang diajukan. Namun terkadang saya benci kode yang ditulis oleh orang yang tidak memahami fitur bahasa. Menurut saya, waktu yang paling banyak melakukan kesalahan adalah pada parameter fungsi. Fungsi dengan banyak parameter sering kali sudah basi dan tidak dapat diubah di banyak tempat. Ini adalah pengalaman yang benar-benar membuat frustrasi bagi pengembang lain yang harus banyak melakukan perubahan. Tapi mari kita atasi masalah ini di artikel blog ini.

Jadi mari kita bayangkan sebuah fungsi yang memanggil titik akhir REST API dengan banyak parameter. Panggilan HTTP ini akan menjadi GET dengan banyak filter. Dalam contoh kita, saya akan mengambil panggilan API untuk mendapatkan timeline tweet twitter. Anda dapat menemukan dokumentasinya di sini: https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home_timeline

Jadi mari kita buat fungsi sederhana kita. Ini akan mengambil parameter kueri sebagai argumen fungsi:

Fungsi tersebut kemudian dipanggil seperti ini:

Tampaknya hal ini cukup masuk akal. Tapi sekarang pikirkan tentang kliennya. Fungsi ini digunakan 100 kali dalam basis kode Anda (mari kita asumsikan saja) dan sekarang Twitter mengubah API untuk menyertakan parameter lain. Anda perlu mengubah fungsi logika bisnis pemanggilan API menjadi seperti ini:

Masalahnya sekarang adalah Anda perlu mengubah setiap pemanggil fungsi untuk menyertakan argumen terakhir. Solusi untuk ini adalah dengan menambahkan parameter default. Ini didukung sejak ES6. Jadi mari kita memfaktorkan ulang fungsi tersebut untuk menggunakan parameter default ke parameter terakhir.

Masalah terpecahkan :) Anda tidak perlu mengubah semua pemanggil fungsi. Masalahnya adalah jika parameter yang diperlukan sekarang disertakan, Anda perlu menambahkannya ke fungsi dan mengubah semua pemanggil fungsi. Tidak terlalu terukur. Solusi mudah disediakan oleh buku Clean Code: Jika ada lebih dari dua atau tiga parameter dalam suatu fungsi, berikan parameter tersebut sebagai satu objek. Jadi mari kita ubah fungsinya untuk menggunakan objek, bukan beberapa parameter.

Tetap saja, ini tampaknya sangat bertele-tele dan parameter defaultnya juga hilang 🤷

Ada dua fitur ECMAScript yang dapat membantu kita di sini:

  • Penghancuran objek
  • Parameter default (hei kami telah menggunakannya sebelumnya)

Jadi, apa yang akan kita lakukan di sini sekarang cukup sederhana: Kita akan menghancurkan objek yang diberikan sebagai parameter pada properti dan juga menambahkan parameter default untuk properti yang dirusak new_parameter :

Sekarang kita masih dapat memanggil fungsi dengan suatu objek tetapi juga memiliki keuntungan dari ekstensibilitas dan parameter default.

Alasan bagus lainnya untuk menggunakan objek sebagai parameter fungsi adalah Anda perlu memberi nama properti pada fungsi pemanggil. Ini adalah dokumentasi tidak langsung dan sangat membantu dalam membaca kode untuk pengembang lain. Keuntungan utama di sini adalah perluasan fungsionalitas yang sangat penting dalam pengembangan perangkat lunak modern karena fitur akan berubah dan kode akan berpindah-pindah. Jadi fungsionalitas yang dinamis dan dapat diperluas adalah kuncinya.

Terima kasih telah membaca ini. Kamu keren🤘

Jika Anda mempunyai masukan atau ingin menambahkan sesuatu pada artikel ini, cukup beri komentar di sini. Anda juga dapat mengikuti saya di "twitter" atau mengunjungi "situs pribadi" saya untuk mendapatkan informasi terkini tentang artikel blog saya dan banyak hal lainnya.