Isi kandungan:
Video: Section: Debugging with Dan Armendariz 2025
Ruby adalah bahasa yang sangat fleksibel, dan ia memberi anda banyak alat untuk menulis program yang luar biasa dengan kerja yang sangat sedikit. Walau bagaimanapun, ahli Ruby baru dengan cepat mempelajari bahawa dengan semua kuasa itu sedikit tanggungjawab untuk menguji dan menyahpepijat kod anda dengan teliti. Nasib baik, terdapat beberapa teknik mudah yang anda boleh gunakan untuk membantu masalah root dalam kod anda.
Semak terminal
Kebanyakan program Ruby dijalankan dari baris perintah menggunakan platform atau program konsol platform anda. Ruby adalah bahasa yang ditafsirkan, yang bermaksud bahawa semasa anda menjalankan program ini, Ruby melihat kodu anda untuk kali pertama dan mencari isu ketika mereka muncul. Ini berbeza dengan beberapa bahasa lain yang mempunyai langkah yang dipanggil kompilasi , yang sering dapat mencari masalah sebelum program dijalankan.
Oleh kerana program anda diterjemahkan dengan cepat, anda perlu menguji semua bahagian dengan teliti. Jika Ruby mendapati masalah, ia akan mencetak mesej amaran atau ralat ke terminal. Kebanyakan masa, mesej ralat itu akan menyertakan huraian masalah dan lokasi anggaran di mana masalah itu berlaku.
Maklumat dalam mesej ralat itu ialah petunjuk pertama anda tentang tempat mencari bug.
Ruby cuba membantu
Mesej ralat Ruby memaparkan datang dalam pelbagai jenis. Apabila anda memahami kategori asas, lebih mudah untuk mengesan masalah:
-
NameError messages sangat umum dan biasanya ditemui apabila anda mempunyai typo dalam program anda. Jika anda cuba menggunakan pemboleh ubah atau kaedah, tetapi taipkan nama yang salah, Ruby tidak akan dapat menemuinya dan akan memaparkan ralat ini. Lihat dengan teliti dalam kod anda untuk sebarang kesilapan menamakan. Ingat bahawa Ruby adalah sensitif huruf, maka pemboleh ubah anda mungkin dieja dengan betul tetapi secara tidak sengaja mempunyai huruf kecil atau huruf besar di dalamnya.
-
Mesej SyntaxError berlaku jika anda secara tidak sengaja membuat kesilapan dalam kod Ruby anda, biasanya saya hilang atau menyalahgunakan kata kunci Ruby. Sebagai contoh, jika anda terlupa kata kunci akhir pada akhir keadaan, Ruby akan memberitahu anda. Lihat di dalam kawasan ralat sintaks untuk kod atau kod yang hilang yang telah digigit semasa mengedit.
-
Mesej NoMethodError bermaksud bahawa anda cuba menggunakan kaedah objek, tetapi tidak ada di sana, mungkin kerana anda dieja dengan salah. Apabila anda menerima mesej ini, semak kaedah itu ada di kod sumber anda dan ejaan anda betul.
Terdapat beberapa kesilapan lain yang mungkin, tetapi ketiga-tiga ini adalah antara yang paling biasa.
Gunakan "meletakkan" untuk membuat serbuk roti
Kadang-kadang program anda bertindak aneh tetapi Ruby tidak memaparkan mesej ralat. Ini adalah yang paling kerap disebabkan oleh kesilapan pengkod yang menyebabkan pengaturcara memanggil ralat logik. Ini bermakna kod tidak melakukan apa yang anda mahu lakukan.
Masalah logik sukar untuk dikesan, tetapi satu alat mudah adalah untuk mencetak mesej debug dari program anda di pelbagai titik di sepanjang jalan kod anda. Jika anda menggunakan kaedah Ruby meletakkan, mesej anda akan dipaparkan ke terminal semasa anda menjalankan program. Mesej ini boleh memberi anda beberapa petua di mana kod tersebut berjalan pada bila-bila masa dan apa pemboleh ubahnya. Anda boleh menulis baris seperti meletakkan "sekarang dalam kaedah saya" atau meletakkan "contoh variable = # {@ my_variable}" untuk mendapatkan rasa cepat untuk tingkah laku program.
Minta bantuan
Kadang-kadang anda boleh menatap program untuk masa yang lama dan tidak melihat kesilapan yang paling mudah di hadapan anda. Teknik percubaan dan kesilapan dalam kes ini adalah untuk mengetepikan program dan kembali kepadanya kemudian dengan set mata yang baru.
Jika itu tidak berfungsi, terdapat komuniti Ruby programmer yang meriah di Internet, dan melakukan beberapa carian Google yang cepat akan sering menyebabkan jawapannya.
Jika semuanya gagal, mencari seorang pengaturcara lain yang anda boleh bertanya kepada, secara peribadi atau dalam talian, adalah pendekatan yang hebat.
