Mari kita bicara tentang topik yang sangat penting jika Anda ingin menjadi programmer yang hebat, dan itu disebut
debugging, Anda melihat tidak ada yang menulis program yang sempurna, sejujurnya itu tidak mungkin.
Kami akan selalu membuat kesalahan.
Dan program terus ditingkatkan.
Kami terus meningkatkan kode kami saat kami menemukan lebih banyak kesalahan karena program penuh dengan kesalahan atau yang
kami sebut bug atau pengecualian saat runtime.
Saat kode berjalan, Anda melihat tindakan menemukan dan menghapus bug atau kesalahan ini dari kode kami
disebut debugging.
Dan sebagian besar waktu kita sebagai programmer adalah men-debug kode, apakah itu kode kita sendiri atau kode orang lain dan
mencari tahu, hei, kenapa ini tidak berhasil?
Dan pengembang senior benar-benar hebat dalam debugging.
Jadi, mari kita bahas di video ini tentang beberapa rekomendasi saya untuk debugging dan apa saja praktik yang
baik itu.
Sekarang, perlu diingat bahwa Anda mendapatkan kode debug yang lebih baik saat Anda membuat kode lebih banyak dan lebih banyak lagi.
Jadi hal terbaik yang dapat Anda lakukan adalah terus berlatih, terus menulis kode Python.
Jadi apa beberapa tips saya?
Pertama, Anda pasti ingin menggunakan beberapa LINTANG dan apa yang membatasi apa yang telah kita
bicarakan saat kita menyiapkan lingkungan pengembang kita, membatasi memungkinkan kita untuk mendeteksi saat kita mengkodekan beberapa masalah dengan kode
kita.
Sebagai contoh, jika saya melakukan NUM ditambah empat di sini dan saya mendapatkan garis bawah merah dan Anda melihat di sini bahwa linta serpihan kue
pemberitahuan bahkan sebelum saya menjalankan kode saya, itu, hei, ada nomor bernama yang tidak ditentukan.
Jadi Lintang memungkinkan kita untuk menemukan kesalahan ini bahkan sebelum kita menjalankan kode kita.
Dan kami melihat bahwa kami dapat menggunakan ID seperti Pisar yang sudah memiliki Lanting atau menggunakan teks luhur atau
kode visual studio dan menginstal paket dan ekstensi seperti Pellant untuk benar-benar memiliki LINTANG dalam kode kami.
Itu adalah alat yang sangat, sangat penting.
Selanjutnya, saya sarankan selalu menggunakan semacam ID atau.
Ed, karena editor dan ID ini, terutama yang khusus untuk Python, seperti Pixar, memiliki
semua alat bawaan ini untuk kita gunakan, seperti pemformatan otomatis berdasarkan Pep delapan, ingat panduan
gaya resmi gaya yang komunitas Python memiliki?
Ini memungkinkan kita untuk mendeteksi kesalahan dalam kode kita dengan, katakanlah, menyorot dan memformat kode kita.
Jadi, menjadi mudah bagi kami untuk mendeteksi kesalahan apa pun bahkan sebelum kami menjalankan kodenya.
Terakhir, Anda ingin bisa belajar membaca kesalahan.
Dan ini adalah sesuatu yang saya coba praktikkan dengan Anda seperti yang telah kita pelajari Python, misalnya, jika
saya melakukan untuk plus, katakanlah omong kosong di sini dan saya klik jalankan.
Segera, saya mengerti, hei, pada baris enam, ada udara di file DCPI utama saya, ada tipe udara dan saya melihat di sini
bahwa saya mencoba menambahkannya dan string sehingga kami dapat membaca kesalahan dan memahami apa yang mereka maksud.
Mungkin saya melakukan sesuatu seperti ini jika saya mengklik run.
Saya mendapatkan kesalahan sintaks.
Dan kesalahan sintaks yang saya tahu berarti bahwa, hei, juru bahasa Python mencoba membaca kode saya, tetapi yang baru saja
dia tulis bukanlah Python.
Saya tidak tahu apa yang Anda lakukan.
Di sini saya melihat bahwa itu adalah akhir baris saat memindai string literal, jadi saya mencoba membaca
string ini dan tiba-tiba program berakhir seperti Anda seharusnya mengakhiri string, ingat?
Jadi kemampuan membaca udara ini sangat, sangat penting, dan kami telah membahas beberapa di antaranya dalam kursus ini, beberapa
yang paling umum seperti kesalahan sintaks, di mana Anda hanya menulis sesuatu yang tidak dimengerti
oleh juru bahasa Python.
Kami memiliki sesuatu seperti kesalahan, benar, di mana kami menggunakan variabel yang tidak ada.
Jadi Python tidak mengerti, hei, saya tidak tahu apa nama itu apa nilai nama?
Kami memiliki hal-hal seperti tipe udara, yaitu ketika kami tidak mencocokkan tipe data dan melakukan, katakanlah string ditambah empat.
Kami memiliki hal-hal seperti nilai er.
Kami memiliki hal-hal seperti Kierra, di mana kami mencoba mengakses kunci yang tidak ada atau kesalahan atribut,
di mana kami mencoba mengakses metode objek dan metode itu tidak ada.
Sekarang, kesalahan ini adalah sesuatu yang telah kita lihat sepanjang kursus, dan kita akan melihat
beberapa lagi di luar itu.
Ada sekitar 15 sampai 20 kesalahan yang benar-benar umum yang muncul 90 persen dari waktu.
Dan jika Anda ingat, Anda selalu dapat membuka dokumentasi Python untuk mempelajarinya, tetapi ini hanya
disertai dengan latihan.
Jika Anda melihat kesalahan yang belum pernah Anda lihat sebelumnya, saya sarankan untuk pergi ke dokumentasi dan
membacanya.
Setelah Anda melihatnya biasanya cenderung mengingat kapan muncul berikutnya.
Tapi izinkan saya menunjukkan cara favorit saya untuk men-debug kode.
Dan itu disebut PDB atau Python Debugger, dan PDB adalah modul bawaan dengan Python di sini.
Sekali lagi, ingat, modul bawaan kami adalah bagian dari pustaka standar yang disertakan dengan Python dan PDB
adalah debugger Python untuk penerjemah interaktif.
Dan Anda dapat membacanya di sini, tetapi izinkan saya menunjukkan kepada Anda apa fungsinya.
Soalnya, PTB sangat berguna karena memungkinkan kita untuk berinteraksi dengan kode, jadi sebelumnya ketika
kita memiliki fungsi, katakanlah kita memiliki fungsi tambah dan kita memiliki nomor satu, nomor dua, dan kemudian fungsi
ini hanya mengembalikan Namwon plus nomor dua .
Sekarang, sebelumnya, jika kita ingin, katakanlah, men-debug kode ini.
Dan katakanlah kita menambahkan empat ditambah beberapa omong kosong dan itu memberi kita suasana.
Langkah pertama yang akan saya ambil kemungkinan besar adalah menambahkan cetakan di sini sehingga saya bisa mengatakan cetak, hei, apa
yang terjadi?
Biarkan saya melihat nomor satu dan nomor dua dan apa yang memberi saya.
Dan print adalah cara yang sangat, sangat cepat dan cara mudah untuk men-debug kode Anda.
Saya menggunakannya sepanjang waktu, tetapi PDB memberi kami sedikit dorongan ekstra.
Jadi kita bisa menggunakannya seperti ini, kita cukup mengimpor PDB dan alih-alih menggunakan sesuatu seperti fungsi cetak, kita bisa
mengatakan biarkan saya luar angkasa di sini, kita cukup mengatakan PDB untuk debugger Python dan kemudian mengatakan set, lacak
dan lacak, saya akan mengatakan adalah metode paling berguna yang kami miliki pada objek PDB ini yang kami
impor.
Anda lihat, ketika saya menjalankan metode set.
Sekarang memberi saya debugger python interaktif sehingga saya sekarang dapat mengetik perintah di sini dan benar-benar menguji kode
saya.
Dan inilah bagian yang menarik sekarang di PDB ini, saya berada tepat di dalam baris delapan, jadi kode saya mencoba
untuk dijalankan, tetapi kemudian berhenti segera setelah tertulis PDB, kata Trace.
Dan sekarang saya di dunia ini dan saya dapat menguji apa yang terjadi sehingga saya benar-benar dapat mengatakan, hei, Namwon, ada
apa?
Nah, nomor satu adalah untuk bagaimana dengan nomor dua?
Nah, nomor dua adalah string.
Dan saya bisa seperti, oh, saya mencoba menambahkan string dan mengakhiri ini.
Ini tidak bekerja.
Jadi saya bisa mendeteksi kesalahan dengan cara ini juga.
Sekarang, interaktif PDB ini sebenarnya memiliki banyak hal yang bermanfaat.
Jadi jika saya mengetik bantuan di sini.
Anda melihat bahwa saya memiliki perintah yang dapat saya gunakan di PDB, jadi saya punya banyak akses di sini, yang saya asumsikan akan
membuat saya bersemangat keluar dari debugger Python PDB ini, tetapi saya juga punya.
Hal-hal seperti.
Katakanlah daftar, mari kita lihat daftar apa yang dilakukan ketika saya mengetik daftar di sini dan sekarang, situs webnya
benar-benar.
Tidak menunjukkan saya terlalu banyak, tapi mudah-mudahan masih bisa melihat daftar.
Dan saya kira semacam output, saya melihat bahwa saya mendapatkan daftar kode saya dan OK, tetapi katakanlah saya tidak tahu
persis apa daftar itu.
Sehat.
PDB memungkinkan kita untuk mengetik bantuan dan kemudian daftar.
Dan ketika kami melakukannya, itu benar-benar memberi kami dokumentasi, seperti yang kami miliki di sini.
Jika kita pergi ke, katakanlah, daftar.
Mari kita lihat, mari kita daftar listless di sini, itu memberi saya dokumentasi di sini, jadi dikatakan list source
untuk saat ini.
Benar.
Jadi itu hanya mencantumkan kode sumber yang kami tulis.
Oke, itu pergi.
Apalagi yang ada disana?
Yah, kami juga memiliki sesuatu seperti Step atau S untuk singkatan dan stepnya sangat, sangat keren.
Mari kita benar-benar menggunakan Clear untuk membawa ini ke atas, jadi saya akan mengatakan clear sehingga menghapus semua
jeda.
Mari lakukan.
Mari kita buat ini sedikit lebih besar sehingga Anda bisa melihatnya, itu lebih baik, bukan?
Jadi sekarang saya benar-benar dapat melakukan sesuatu seperti Langkah dan Langkah akan memungkinkan kita untuk pergi ke baris berikutnya.
Jadi, sekali lagi, jika kita membuat ini sedikit lebih besar.
Langkah akan mengatakan, hei, pergi ke baris sembilan, jadi mari kita lihat apa yang terjadi, saya akan mengetikkan langkah.
Oh, dan aku ditikam dua kali langkah yang diperlukan.
Dan lihat itu, saya pergi ke baris berikutnya di mantel saya dan itu membuat saya, hei, Anda mendapatkan kesalahan ketik, kesalahan yang
kami dapatkan.
Jadi mari kita tambahkan baris lain di sini.
Katakanlah kita mencoba menambahkan empat tambah lima di sini atau empat kalikan dengan lima
dan menetapkannya ke variabel.
Jika saya menghentikan ini dan menjalankan ini lagi.
Aku sekarang di dalam sini.
Jika saya mengetik T, saya mendapatkan penamaan T tidak ditentukan karena, yah, saya di dalam kode di sini pada baris delapan, tetapi
kami memiliki garis merah sembilan belum.
Jadi mari kita lakukan langkah.
Dan sekarang saya berada di sisi berikutnya.
Jadi jika saya melakukannya sekarang saya mendekati 20, luar biasa, jadi langkah saya dapat melangkah melalui kode, yang sangat, sangat
berguna.
Saya juga memiliki hal-hal seperti lanjutkan, yang memungkinkan saya melanjutkan kode sampai saya mengembalikan sesuatu
dan saya melanjutkan dan keluar dari PDB dan melihatnya.
Saya mendapatkan UGD.
Mari kita jalankan ini lagi, perintah lain yang berguna adalah a dan A benar-benar memberi saya semua argumen dari fungsi saat ini
yang kita gunakan.
Jadi lihat itu.
Saya mendapatkan semua argumen, yang, sekali lagi, sangat berguna.
Ada juga perintah W.
Yang menunjukkan kepada saya konteks dari baris saat ini yang dijalankannya.
Jadi Anda dapat melihat di sini di mana kita berada, kita berada di dalam iklan.
Fungsi.
Kami menyebutnya dengan argumen ini dan kami sekarang akan menjalankan baris ini.
Dan akhirnya, saat kita memperdebatkan ini, baiklah, saya pikir saya akhirnya melihat
bahwa kita memiliki kesempatan, kita seharusnya memberinya nomor jadi sekarang saya bisa keluar dari sini dan memperbaikinya menjadi lima.
Jadi sekarang saya bisa menghapus PDB saya dan semuanya akan berfungsi dengan baik dengan kode saya.
Luar biasa.
Jadi PDB luar biasa untuk melangkah melalui kode Anda dan men-debug dan mencoba hal-hal yang berbeda,
itu memang membutuhkan sedikit latihan, tetapi setelah seharian bermain-main dengan PDB, Anda akan menjadi sangat, sangat pandai.
Jadi setelah video ini, saya sarankan Anda menulis PDB dan semoga Anda memiliki file Python yang cukup besar.
Mereka hanya dapat melangkah dan bereksperimen dengan perintah yang berbeda, menggunakan bantuan, menggunakan daftar untuk melihat apa yang
tersedia untuk Anda.
Saya sebenarnya ingin menunjukkan satu hal terakhir, jadi katakanlah kita kembali ke kode kita, PDB kita mengatakan Trace, saya
klik run.
Bisakah saya melakukan sesuatu seperti ini di mana saya perhatikan bahwa saya mengetik dan saya telah menulis semua, kode saya berfungsi, tetapi bisakah
saya mengubah nomor dua menjadi sekarang sama dengan omong kosong?
Nah, mari kita lihat apakah saya lakukan selanjutnya sekarang.
Dan mari kita lakukan selanjutnya untuk menjalankan baris terakhir ini.
Saya masuk ke sana, jadi saya juga dapat mengubah variabel di sini dan menulis kode Python untuk menguji fungsi
saya.
Ini sekarang bekerja.
Saya dapat menguji, hei, apa yang terjadi jika kita mengubah variabel ini ke nilai lain?
Sekali lagi, sangat, sangat berguna.