Home / Programming / Apa itu Rubber Duck Debugging?

Apa itu Rubber Duck Debugging?

Ada sangat sedikit hal yang terasa lebih buruk daripada menjalankan program Anda untuk kesekian kalinya hanya untuk mengetahui bahwa itu tetap tidak akan dimulai. Bahkan programmer terbaik pun tahu seperti apa rasanya.

Anda menatap blok kode yang telah Anda pahat selama berjam-jam. Sintaksnya terlihat benar, jarak Anda konsisten, Anda telah menamai variabel Anda dengan tepat … jadi apa yang memberi?

Mungkin Anda memerlukan metode baru untuk men-debug. Dan Anda akan terkejut menemukan bahwa salah satu cara teruji dan benar untuk melakukannya, anehnya, melibatkan mainan dari jenis bak mandi.

Apa itu Rubber Duck Debugging?

Ini paling baik dijelaskan melalui cerita kecil. Bayangkan ini: Anda seorang programmer yang bekerja dengan sekelompok orang. Anda melakukan pekerjaan harian Anda, mengkodekan apa pun yang Anda butuhkan untuk membuat kode, dan kemudian Anda mengalami masalah. Untuk alasan apa pun, program tersebut tidak berfungsi sebagaimana mestinya.

Jadi Anda memutuskan untuk berjalan menyusuri lorong dan memberi tahu rekan kerja Anda bahwa Anda berurusan dengan serangga yang membandel. Mereka setuju untuk membantu Anda dan menanyakan apa yang sebenarnya salah. Anda mulai menjelaskan masalah secara mendetail dan menemukan bahwa, di tengah penjelasan Anda, Anda telah menemukan solusi.

Ini sebenarnya lebih sering terjadi di dunia nyata daripada yang Anda pikirkan. Anda mungkin bertanya-tanya apa hubungannya dengan bebek karet. Nah, Anda bisa saja curhat kepada teman plastik kuning (atau benda mati lainnya), alih-alih mengganggu orang lain.

Bagian terbaik? Anda dapat menemukan kenyamanan dengan mengetahui bahwa bebek Anda tidak akan menghakimi Anda karena omongan bertele-tele Anda. Jika Anda merasa perlu sering melakukan debug, lihat daftar kesalahan pemrograman dan pengkodean yang paling umum ini.

kesalahan pemrograman

Dari Mana Asal Istilah “Rubber Duck Debugging”?

“Rubber duck debugging” adalah referensi ke sebuah cerita dalam buku pemrograman berjudul The Pragmatic Programmer: From Journeyman to Master oleh Andrew Hunt dan David Thomas. Di dalamnya, seorang programmer akan membawa bebek karet dan men-debug kode mereka dengan memaksa diri mereka sendiri untuk menjelaskannya, baris demi baris, kepada bebek.

Mengapa Debugging Bebek Karet Bekerja?

Seringkali, dalam mendeskripsikan apa yang seharusnya dilakukan kode, Anda mengamati apa yang sebenarnya dilakukan oleh kode tersebut, dan kemudian, menemukan di mana hal-hal yang tidak sejalan. Itulah mengapa dikatakan bahwa mengajar suatu mata pelajaran adalah salah satu cara terbaik untuk mempelajarinya. Anda harus mengevaluasi masalah dari perspektif yang berbeda untuk membantu orang lain memahami, yang membantu Anda memahami.

Bagian terpenting dalam menggunakan metode ini adalah komitmen Anda padanya. Ya, mungkin akan terasa sangat konyol untuk melakukan percakapan sepihak secara menyeluruh. Tetapi mencurahkan begitu banyak upaya untuk mengajak orang lain (nyata, khayalan, atau terbuat dari karet) melalui masalah Anda adalah hal yang akan membuat masalah tersebut tampaknya dapat diselesaikan dengan sendirinya.

Metode ini bekerja dengan sangat baik karena sebagian besar bug dalam kode disebabkan oleh kurangnya penyediaan informasi dan instruksi eksplisit ke perangkat lunak. Komputer tidak dapat memahami instruksi yang tidak jelas. Dengan berasumsi bahwa bebek Anda tidak tahu apa-apa tentang masalah Anda, Anda dipaksa untuk mendeskripsikan semua detailnya. Ternyata Anda tidak memahami segalanya sebaik yang Anda pikirkan.

Bagaimana Saya Menggunakan Metode Bebek Karet?

Hanya ada tiga langkah sederhana untuk merunduk karet:

  1. Asumsikan bebek Anda sama sekali tidak tahu apa-apa tentang masalah Anda. Nyatakan masalahnya, bagaimana keadaan saat ini, dan apa yang ingin Anda capai.

  2. Jelaskan aliran hal-hal. Apa yang terjadi? Ulangi setiap langkah proses tanpa kehilangan satu detail pun.

  3. Tiba di sebuah pencerahan.

Menerapkan Metode pada Masalah Kehidupan Nyata

Metode praktis ini diciptakan oleh programmer, tetapi pasti dapat diterapkan pada masalah di luar pemrograman. Bagaimana? Di sini, mari kita buat skenario imajiner lain: Anda baru saja membeli lemari es baru untuk rumah Anda.

Anda mendapatkan lemari es baru dikirim ke rumah Anda dan meletakkannya di tempatnya di dapur. Anda memindahkan semua barang dari lemari es lama Anda ke dalam lemari es baru dan membuang yang sebelumnya. Hari berakhir dan Anda pergi tidur. Ketika Anda bangun keesokan paginya, Anda membuka pintu lemari es dan menemukan bahwa semua makanan Anda sudah basi dalam semalam!

Anda sangat marah, tentu saja, dan mulai melampiaskan perasaan kepada anggota keluarga. “Bagaimana ini bisa terjadi? Aku membayarnya, membawanya kembali, dan memindahkan semua yang ada di dalam benda ini yang, ketika dinyalakan, seharusnya memiliki kontrol suhu yang luar biasa—”

Oh. Anda lupa mencolokkan benda sialan itu.

Itu agak memalukan, tapi setidaknya Anda tahu masalahnya sekarang. Itu karena Anda meluangkan waktu untuk memikirkan seluruh situasi dari awal hingga akhir. Terkadang, ketika Anda begitu dalam dan terbiasa dengan suatu proses, Anda tidak menyadari bahwa masalah yang paling jelas muncul di benak Anda.

Menerapkan Metode ke Kode

Sebagai contoh, kita akan membahas beberapa contoh kode Python. Seperti yang telah kami tunjukkan, Anda dapat menggunakan bebek karet tepercaya untuk menyelesaikan segala macam masalah yang berbeda. Metode ini dapat diterapkan pada bahasa pemrograman apa pun yang Anda gunakan.

Kami ingin mencetak angka satu sampai lima. Jadi, Anda lanjutkan dan ketik semua kode itu:

for x in range(5):
print(x, end=" ")
Output: 0 1 2 3 4

Hah. Itu aneh. Anda meminta penyusun untuk mencetak lima angka. Apa masalahnya disini? Mari kita bahas semua kemungkinan. Sintaks Anda benar karena kode berjalan tanpa kesalahan. Bukan berarti Anda kehilangan argumen apa pun, karena argumen mulai dan langkah bersifat opsional …

Tunggu sebentar. Itu jarak fungsi mengembalikan urutan angka, bertambah satu (secara default), dan berhenti sebelum batas atas yang Anda tetapkan. Tapi di mana rentang dimulai? Dalam Python, rentang dimulai dari nol kecuali ditentukan.

Sekarang, Anda tahu bahwa Anda seharusnya menulis.

for x in range(5):
print(x+1, end=" ")
Output: 1 2 3 4 5

Terkait: 5 Situs Web Terbaik untuk Mempelajari Pemrograman Python

Teman Pemrograman Anda yang Tidak Mungkin

Meskipun tidak bisa hanya memberi tahu Anda di mana tepatnya Anda salah dalam kode Anda, bebek karet telah membantu programmer di mana-mana. Lain kali Anda mengalami bug saat memprogram, coba ambil bebek karet (atau objek atau orang lain untuk bertindak sebagai satu), dan lihat apakah metode pemecahan masalah ini berhasil untuk Anda.

Siapa sangka bebek karet bisa lebih dari sekadar mainan mandi?

logo hadiah microsoft dengan latar belakang laboratorium
Memerangi COVID Dengan Xbox Anda

Gamer Xbox AS dapat menyumbangkan poin hadiah mereka untuk memerangi pandemi virus korona global.


Tentang Penulis

.

About nomund

Melihat Keluaran KL cepat : Nomor KL Hari Ini Lengkap

Check Also

Cara Membuat Repositori Pertama Anda di Github

Situs Github yang populer bersama dengan alat git menjadikannya sumber yang sangat baik untuk tidak …