WEBVTT

00:00.360 --> 00:07.160
Mari kita bicara tentang topik yang sangat penting jika Anda ingin menjadi programmer yang hebat, dan itu disebut

00:07.710 --> 00:13.290
debugging, Anda melihat tidak ada yang menulis program yang sempurna, sejujurnya itu tidak mungkin.

00:13.500 --> 00:15.120
Kami akan selalu membuat kesalahan.

00:15.120 --> 00:17.270
Dan program terus ditingkatkan.

00:17.820 --> 00:25.350
Kami terus meningkatkan kode kami saat kami menemukan lebih banyak kesalahan karena program penuh dengan kesalahan atau yang

00:25.380 --> 00:28.590
kami sebut bug atau pengecualian saat runtime.

00:28.590 --> 00:36.810
Saat kode berjalan, Anda melihat tindakan menemukan dan menghapus bug atau kesalahan ini dari kode kami

00:37.020 --> 00:38.610
disebut debugging.

00:39.120 --> 00:46.500
Dan sebagian besar waktu kita sebagai programmer adalah men-debug kode, apakah itu kode kita sendiri atau kode orang lain dan

00:46.500 --> 00:49.410
mencari tahu, hei, kenapa ini tidak berhasil?

00:50.070 --> 00:54.540
Dan pengembang senior benar-benar hebat dalam debugging.

00:55.520 --> 01:01.370
Jadi, mari kita bahas di video ini tentang beberapa rekomendasi saya untuk debugging dan apa saja praktik yang

01:01.370 --> 01:02.210
baik itu.

01:02.960 --> 01:07.400
Sekarang, perlu diingat bahwa Anda mendapatkan kode debug yang lebih baik saat Anda membuat kode lebih banyak dan lebih banyak lagi.

01:07.400 --> 01:11.990
Jadi hal terbaik yang dapat Anda lakukan adalah terus berlatih, terus menulis kode Python.

01:13.370 --> 01:14.870
Jadi apa beberapa tips saya?

01:15.050 --> 01:22.250
Pertama, Anda pasti ingin menggunakan beberapa LINTANG dan apa yang membatasi apa yang telah kita

01:22.250 --> 01:30.500
bicarakan saat kita menyiapkan lingkungan pengembang kita, membatasi memungkinkan kita untuk mendeteksi saat kita mengkodekan beberapa masalah dengan kode

01:30.500 --> 01:31.050
kita.

01:31.430 --> 01:40.340
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

01:40.340 --> 01:46.150
pemberitahuan bahkan sebelum saya menjalankan kode saya, itu, hei, ada nomor bernama yang tidak ditentukan.

01:46.640 --> 01:51.380
Jadi Lintang memungkinkan kita untuk menemukan kesalahan ini bahkan sebelum kita menjalankan kode kita.

01:51.980 --> 01:59.570
Dan kami melihat bahwa kami dapat menggunakan ID seperti Pisar yang sudah memiliki Lanting atau menggunakan teks luhur atau

01:59.570 --> 02:06.850
kode visual studio dan menginstal paket dan ekstensi seperti Pellant untuk benar-benar memiliki LINTANG dalam kode kami.

02:07.160 --> 02:09.410
Itu adalah alat yang sangat, sangat penting.

02:09.740 --> 02:15.290
Selanjutnya, saya sarankan selalu menggunakan semacam ID atau.

02:16.370 --> 02:22.970
Ed, karena editor dan ID ini, terutama yang khusus untuk Python, seperti Pixar, memiliki

02:23.210 --> 02:30.050
semua alat bawaan ini untuk kita gunakan, seperti pemformatan otomatis berdasarkan Pep delapan, ingat panduan

02:30.170 --> 02:34.190
gaya resmi gaya yang komunitas Python memiliki?

02:34.700 --> 02:42.440
Ini memungkinkan kita untuk mendeteksi kesalahan dalam kode kita dengan, katakanlah, menyorot dan memformat kode kita.

02:43.570 --> 02:47.510
Jadi, menjadi mudah bagi kami untuk mendeteksi kesalahan apa pun bahkan sebelum kami menjalankan kodenya.

02:48.340 --> 02:51.880
Terakhir, Anda ingin bisa belajar membaca kesalahan.

02:52.420 --> 02:58.720
Dan ini adalah sesuatu yang saya coba praktikkan dengan Anda seperti yang telah kita pelajari Python, misalnya, jika

02:58.930 --> 03:04.060
saya melakukan untuk plus, katakanlah omong kosong di sini dan saya klik jalankan.

03:06.310 --> 03:15.850
Segera, saya mengerti, hei, pada baris enam, ada udara di file DCPI utama saya, ada tipe udara dan saya melihat di sini

03:15.850 --> 03:23.860
bahwa saya mencoba menambahkannya dan string sehingga kami dapat membaca kesalahan dan memahami apa yang mereka maksud.

03:25.520 --> 03:29.570
Mungkin saya melakukan sesuatu seperti ini jika saya mengklik run.

03:30.470 --> 03:31.700
Saya mendapatkan kesalahan sintaks.

03:33.130 --> 03:40.750
Dan kesalahan sintaks yang saya tahu berarti bahwa, hei, juru bahasa Python mencoba membaca kode saya, tetapi yang baru saja

03:40.750 --> 03:42.460
dia tulis bukanlah Python.

03:42.470 --> 03:43.750
Saya tidak tahu apa yang Anda lakukan.

03:45.490 --> 03:51.310
Di sini saya melihat bahwa itu adalah akhir baris saat memindai string literal, jadi saya mencoba membaca

03:51.310 --> 03:55.510
string ini dan tiba-tiba program berakhir seperti Anda seharusnya mengakhiri string, ingat?

03:56.880 --> 04:03.330
Jadi kemampuan membaca udara ini sangat, sangat penting, dan kami telah membahas beberapa di antaranya dalam kursus ini, beberapa

04:03.330 --> 04:08.640
yang paling umum seperti kesalahan sintaks, di mana Anda hanya menulis sesuatu yang tidak dimengerti

04:08.640 --> 04:10.250
oleh juru bahasa Python.

04:10.920 --> 04:16.530
Kami memiliki sesuatu seperti kesalahan, benar, di mana kami menggunakan variabel yang tidak ada.

04:17.780 --> 04:22.640
Jadi Python tidak mengerti, hei, saya tidak tahu apa nama itu apa nilai nama?

04:24.160 --> 04:31.330
Kami memiliki hal-hal seperti tipe udara, yaitu ketika kami tidak mencocokkan tipe data dan melakukan, katakanlah string ditambah empat.

04:32.320 --> 04:34.540
Kami memiliki hal-hal seperti nilai er.

04:35.550 --> 04:41.760
Kami memiliki hal-hal seperti Kierra, di mana kami mencoba mengakses kunci yang tidak ada atau kesalahan atribut,

04:41.880 --> 04:46.860
di mana kami mencoba mengakses metode objek dan metode itu tidak ada.

04:47.840 --> 04:53.430
Sekarang, kesalahan ini adalah sesuatu yang telah kita lihat sepanjang kursus, dan kita akan melihat

04:53.430 --> 04:55.350
beberapa lagi di luar itu.

04:55.350 --> 05:02.160
Ada sekitar 15 sampai 20 kesalahan yang benar-benar umum yang muncul 90 persen dari waktu.

05:03.340 --> 05:08.380
Dan jika Anda ingat, Anda selalu dapat membuka dokumentasi Python untuk mempelajarinya, tetapi ini hanya

05:08.380 --> 05:09.390
disertai dengan latihan.

05:09.820 --> 05:14.440
Jika Anda melihat kesalahan yang belum pernah Anda lihat sebelumnya, saya sarankan untuk pergi ke dokumentasi dan

05:14.440 --> 05:14.950
membacanya.

05:15.370 --> 05:19.320
Setelah Anda melihatnya biasanya cenderung mengingat kapan muncul berikutnya.

05:20.200 --> 05:23.800
Tapi izinkan saya menunjukkan cara favorit saya untuk men-debug kode.

05:25.100 --> 05:34.910
Dan itu disebut PDB atau Python Debugger, dan PDB adalah modul bawaan dengan Python di sini.

05:36.230 --> 05:43.130
Sekali lagi, ingat, modul bawaan kami adalah bagian dari pustaka standar yang disertakan dengan Python dan PDB

05:43.130 --> 05:46.040
adalah debugger Python untuk penerjemah interaktif.

05:47.410 --> 05:51.010
Dan Anda dapat membacanya di sini, tetapi izinkan saya menunjukkan kepada Anda apa fungsinya.

05:52.510 --> 06:00.130
Soalnya, PTB sangat berguna karena memungkinkan kita untuk berinteraksi dengan kode, jadi sebelumnya ketika

06:00.130 --> 06:10.000
kita memiliki fungsi, katakanlah kita memiliki fungsi tambah dan kita memiliki nomor satu, nomor dua, dan kemudian fungsi

06:10.000 --> 06:14.470
ini hanya mengembalikan Namwon plus nomor dua .

06:15.760 --> 06:18.940
Sekarang, sebelumnya, jika kita ingin, katakanlah, men-debug kode ini.

06:19.830 --> 06:24.780
Dan katakanlah kita menambahkan empat ditambah beberapa omong kosong dan itu memberi kita suasana.

06:26.840 --> 06:34.160
Langkah pertama yang akan saya ambil kemungkinan besar adalah menambahkan cetakan di sini sehingga saya bisa mengatakan cetak, hei, apa

06:34.160 --> 06:35.170
yang terjadi?

06:35.180 --> 06:37.940
Biarkan saya melihat nomor satu dan nomor dua dan apa yang memberi saya.

06:38.950 --> 06:43.010
Dan print adalah cara yang sangat, sangat cepat dan cara mudah untuk men-debug kode Anda.

06:43.630 --> 06:48.340
Saya menggunakannya sepanjang waktu, tetapi PDB memberi kami sedikit dorongan ekstra.

06:49.920 --> 06:58.080
Jadi kita bisa menggunakannya seperti ini, kita cukup mengimpor PDB dan alih-alih menggunakan sesuatu seperti fungsi cetak, kita bisa

06:58.620 --> 07:06.840
mengatakan biarkan saya luar angkasa di sini, kita cukup mengatakan PDB untuk debugger Python dan kemudian mengatakan set, lacak

07:06.870 --> 07:14.850
dan lacak, saya akan mengatakan adalah metode paling berguna yang kami miliki pada objek PDB ini yang kami

07:14.850 --> 07:15.300
impor.

07:16.500 --> 07:18.690
Anda lihat, ketika saya menjalankan metode set.

07:22.290 --> 07:28.920
Sekarang memberi saya debugger python interaktif sehingga saya sekarang dapat mengetik perintah di sini dan benar-benar menguji kode

07:28.920 --> 07:29.430
saya.

07:30.310 --> 07:37.300
Dan inilah bagian yang menarik sekarang di PDB ini, saya berada tepat di dalam baris delapan, jadi kode saya mencoba

07:37.450 --> 07:41.660
untuk dijalankan, tetapi kemudian berhenti segera setelah tertulis PDB, kata Trace.

07:41.680 --> 07:47.530
Dan sekarang saya di dunia ini dan saya dapat menguji apa yang terjadi sehingga saya benar-benar dapat mengatakan, hei, Namwon, ada

07:47.560 --> 07:48.040
apa?

07:48.280 --> 07:50.250
Nah, nomor satu adalah untuk bagaimana dengan nomor dua?

07:50.860 --> 07:52.570
Nah, nomor dua adalah string.

07:52.570 --> 07:56.410
Dan saya bisa seperti, oh, saya mencoba menambahkan string dan mengakhiri ini.

07:56.620 --> 07:57.340
Ini tidak bekerja.

07:57.670 --> 07:59.890
Jadi saya bisa mendeteksi kesalahan dengan cara ini juga.

08:00.760 --> 08:06.070
Sekarang, interaktif PDB ini sebenarnya memiliki banyak hal yang bermanfaat.

08:06.250 --> 08:08.110
Jadi jika saya mengetik bantuan di sini.

08:09.760 --> 08:17.890
Anda melihat bahwa saya memiliki perintah yang dapat saya gunakan di PDB, jadi saya punya banyak akses di sini, yang saya asumsikan akan

08:17.890 --> 08:22.870
membuat saya bersemangat keluar dari debugger Python PDB ini, tetapi saya juga punya.

08:23.790 --> 08:24.540
Hal-hal seperti.

08:25.460 --> 08:31.280
Katakanlah daftar, mari kita lihat daftar apa yang dilakukan ketika saya mengetik daftar di sini dan sekarang, situs webnya

08:31.280 --> 08:31.760
benar-benar.

08:32.900 --> 08:35.780
Tidak menunjukkan saya terlalu banyak, tapi mudah-mudahan masih bisa melihat daftar.

08:37.210 --> 08:44.350
Dan saya kira semacam output, saya melihat bahwa saya mendapatkan daftar kode saya dan OK, tetapi katakanlah saya tidak tahu

08:44.350 --> 08:45.820
persis apa daftar itu.

08:45.850 --> 08:46.240
Sehat.

08:47.350 --> 08:50.830
PDB memungkinkan kita untuk mengetik bantuan dan kemudian daftar.

08:51.770 --> 08:57.530
Dan ketika kami melakukannya, itu benar-benar memberi kami dokumentasi, seperti yang kami miliki di sini.

08:58.730 --> 09:00.650
Jika kita pergi ke, katakanlah, daftar.

09:03.300 --> 09:10.530
Mari kita lihat, mari kita daftar listless di sini, itu memberi saya dokumentasi di sini, jadi dikatakan list source

09:10.530 --> 09:11.760
untuk saat ini.

09:12.640 --> 09:12.900
Benar.

09:12.910 --> 09:15.750
Jadi itu hanya mencantumkan kode sumber yang kami tulis.

09:16.080 --> 09:16.990
Oke, itu pergi.

09:17.130 --> 09:18.030
Apalagi yang ada disana?

09:19.160 --> 09:25.160
Yah, kami juga memiliki sesuatu seperti Step atau S untuk singkatan dan stepnya sangat, sangat keren.

09:27.090 --> 09:33.150
Mari kita benar-benar menggunakan Clear untuk membawa ini ke atas, jadi saya akan mengatakan clear sehingga menghapus semua

09:33.150 --> 09:33.540
jeda.

09:35.450 --> 09:36.050
Mari lakukan.

09:37.420 --> 09:40.920
Mari kita buat ini sedikit lebih besar sehingga Anda bisa melihatnya, itu lebih baik, bukan?

09:40.950 --> 09:47.140
Jadi sekarang saya benar-benar dapat melakukan sesuatu seperti Langkah dan Langkah akan memungkinkan kita untuk pergi ke baris berikutnya.

09:47.170 --> 09:49.660
Jadi, sekali lagi, jika kita membuat ini sedikit lebih besar.

09:50.950 --> 09:55.510
Langkah akan mengatakan, hei, pergi ke baris sembilan, jadi mari kita lihat apa yang terjadi, saya akan mengetikkan langkah.

09:57.530 --> 09:59.750
Oh, dan aku ditikam dua kali langkah yang diperlukan.

10:01.780 --> 10:08.740
Dan lihat itu, saya pergi ke baris berikutnya di mantel saya dan itu membuat saya, hei, Anda mendapatkan kesalahan ketik, kesalahan yang

10:08.740 --> 10:09.450
kami dapatkan.

10:09.640 --> 10:11.280
Jadi mari kita tambahkan baris lain di sini.

10:11.290 --> 10:19.660
Katakanlah kita mencoba menambahkan empat tambah lima di sini atau empat kalikan dengan lima

10:19.660 --> 10:22.180
dan menetapkannya ke variabel.

10:24.220 --> 10:26.260
Jika saya menghentikan ini dan menjalankan ini lagi.

10:28.590 --> 10:30.660
Aku sekarang di dalam sini.

10:32.670 --> 10:40.350
Jika saya mengetik T, saya mendapatkan penamaan T tidak ditentukan karena, yah, saya di dalam kode di sini pada baris delapan, tetapi

10:40.350 --> 10:42.480
kami memiliki garis merah sembilan belum.

10:42.750 --> 10:44.010
Jadi mari kita lakukan langkah.

10:45.190 --> 10:46.620
Dan sekarang saya berada di sisi berikutnya.

10:48.040 --> 10:56.680
Jadi jika saya melakukannya sekarang saya mendekati 20, luar biasa, jadi langkah saya dapat melangkah melalui kode, yang sangat, sangat

10:56.680 --> 10:57.380
berguna.

10:58.120 --> 11:03.130
Saya juga memiliki hal-hal seperti lanjutkan, yang memungkinkan saya melanjutkan kode sampai saya mengembalikan sesuatu

11:03.490 --> 11:06.790
dan saya melanjutkan dan keluar dari PDB dan melihatnya.

11:06.790 --> 11:07.450
Saya mendapatkan UGD.

11:10.150 --> 11:17.260
Mari kita jalankan ini lagi, perintah lain yang berguna adalah a dan A benar-benar memberi saya semua argumen dari fungsi saat ini

11:17.260 --> 11:18.500
yang kita gunakan.

11:18.640 --> 11:19.720
Jadi lihat itu.

11:19.720 --> 11:22.460
Saya mendapatkan semua argumen, yang, sekali lagi, sangat berguna.

11:23.380 --> 11:25.000
Ada juga perintah W.

11:26.000 --> 11:30.890
Yang menunjukkan kepada saya konteks dari baris saat ini yang dijalankannya.

11:32.310 --> 11:35.520
Jadi Anda dapat melihat di sini di mana kita berada, kita berada di dalam iklan.

11:36.320 --> 11:36.860
Fungsi.

11:38.270 --> 11:43.610
Kami menyebutnya dengan argumen ini dan kami sekarang akan menjalankan baris ini.

11:46.050 --> 11:51.450
Dan akhirnya, saat kita memperdebatkan ini, baiklah, saya pikir saya akhirnya melihat

11:51.450 --> 11:59.300
bahwa kita memiliki kesempatan, kita seharusnya memberinya nomor jadi sekarang saya bisa keluar dari sini dan memperbaikinya menjadi lima.

11:59.790 --> 12:05.280
Jadi sekarang saya bisa menghapus PDB saya dan semuanya akan berfungsi dengan baik dengan kode saya.

12:06.670 --> 12:07.070
Luar biasa.

12:07.900 --> 12:14.020
Jadi PDB luar biasa untuk melangkah melalui kode Anda dan men-debug dan mencoba hal-hal yang berbeda,

12:14.020 --> 12:20.420
itu memang membutuhkan sedikit latihan, tetapi setelah seharian bermain-main dengan PDB, Anda akan menjadi sangat, sangat pandai.

12:21.100 --> 12:28.750
Jadi setelah video ini, saya sarankan Anda menulis PDB dan semoga Anda memiliki file Python yang cukup besar.

12:28.750 --> 12:35.500
Mereka hanya dapat melangkah dan bereksperimen dengan perintah yang berbeda, menggunakan bantuan, menggunakan daftar untuk melihat apa yang

12:35.530 --> 12:36.840
tersedia untuk Anda.

12:37.960 --> 12:44.010
Saya sebenarnya ingin menunjukkan satu hal terakhir, jadi katakanlah kita kembali ke kode kita, PDB kita mengatakan Trace, saya

12:44.830 --> 12:45.640
klik run.

12:47.720 --> 12:56.390
Bisakah saya melakukan sesuatu seperti ini di mana saya perhatikan bahwa saya mengetik dan saya telah menulis semua, kode saya berfungsi, tetapi bisakah

12:56.390 --> 13:00.160
saya mengubah nomor dua menjadi sekarang sama dengan omong kosong?

13:02.310 --> 13:04.140
Nah, mari kita lihat apakah saya lakukan selanjutnya sekarang.

13:06.060 --> 13:08.550
Dan mari kita lakukan selanjutnya untuk menjalankan baris terakhir ini.

13:10.140 --> 13:18.810
Saya masuk ke sana, jadi saya juga dapat mengubah variabel di sini dan menulis kode Python untuk menguji fungsi

13:18.810 --> 13:19.570
saya.

13:19.770 --> 13:21.180
Ini sekarang bekerja.

13:21.180 --> 13:25.140
Saya dapat menguji, hei, apa yang terjadi jika kita mengubah variabel ini ke nilai lain?

13:26.180 --> 13:27.890
Sekali lagi, sangat, sangat berguna.
