Saya sering menggunakan debugger, karena saya bekerja pada sistem yang besar dan karenanya saya payah.
http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html
Tidak peduli seberapa pendek dan sering membaca kode Anda, selalu ada kemungkinan bahwa ia akan memiliki bug. http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html
Untuk berbuat salah adalah manusia dan orang tidak pernah dapat membuktikan bahwa suatu program benar, jadi mengapa tidak menggunakan alat seperti debugger / pengujian otomatis untuk membantu diri kita sendiri dalam bisnis yang sulit ini?
Jika kodenya cukup pendek, maka tes sederhana akan dilakukan. Juga, jika pendek dan Anda tahu sifat bug, membaca kode bisa cukup. Namun, begitu basis kode besar, melibatkan beberapa bahasa yang dicampur bersama, ditambah 3 tingkatan, maka Anda harus memiliki cakupan pengujian yang baik pada banyak tingkatan plus debugger yang sangat baik - jika tidak, Anda akan menghabiskan banyak waktu.
Jadi, kapan saya tidak perlu debugger?
Saya bukan pembuat kode yang paling pintar, juga bukan yang paling berpengalaman, tapi tetap saja, terkadang saya tidak perlu menggunakan debugger. Saat itulah:
- Kode ini milik saya atau ditulis dengan baik
- Itu ditulis dalam bahasa yang dapat dibaca DAN
- Keseluruhan proyek kecil.
Kapan saya sangat mengandalkan debugger?
- Jawaban Singkat: sering .
- Saat aplikasi mogok. Khususnya ketika digunakan. Memiliki VS2010 yang diinstal pada komputer itu dapat membuat perbedaan antara "Kesalahan Tidak Diketahui" dan
FileNotFoundException
.
- Ketika pustaka pihak ke-3 crash atau bertingkah buruk.
- Ketika kode ditulis dengan buruk. Terutama jika file yang sama disentuh oleh 10 orang yang berbeda dalam 10 tahun terakhir, 7 di antaranya tidak lagi bersama perusahaan.
- Ketika proyek besar
- Ketika kode agak monolitik.
- Ketika ada beberapa tingkatan (GUI, SQL, BL) yang terlibat.
Perhatikan bahwa "debugger" dapat merujuk ke lebih dari satu alat. Saya menggunakan Visual Studio debugger, SQL debugger (kebanyakan untuk procs tersimpan) dan SQL profiler juga (untuk mencari tahu SP mana yang dipanggil). Apakah saya memerlukan alat kaliber ini saya sedang menulis skrip Python sysadmin-ish cepat? Tidak. Jika saya membuat alat kecil berbasis GUI sendiri? Tergantung. Jika. WinForms Net -. Mungkin tidak Jika WPF - ya.
Apa yang mendefinisikan programmer "nyata"? Yang cepat? berpengetahuan luas? Apakah pandai algoritma? Menulis dokumentasi yang bagus? Kapan tepatnya seseorang lulus ke gelar baru ini? Kapan seseorang melewati garis magis?
Saya akan mengatakan bahwa seorang programmer yang tidak mendapatkan tangannya kotor dalam upaya 100 + man-tahun yang ada belum memiliki kesempatan untuk direndahkan oleh kompleksitas dan keterbatasan sendiri (serta frustrasi dengan kualitas kode).
Saya pribadi mencoba menggunakan debugger terbaik yang tersedia untuk saya, dan saya cenderung sering menggunakannya. Jika tugas cukup sederhana dan tidak memerlukan debugger - Saya tidak menggunakannya. Tidak butuh waktu terlalu lama untuk menentukan apakah saya membutuhkannya atau tidak.
...
Sekarang, secara teori saya bisa membaca basis kode begitu lama, sehingga saya akan mendapatkannya. Namun, pendekatan langsung bekerja paling baik, ditambah lagi saya sering ingin menulis ulang kode bodoh yang saya lihat. Sayangnya butuh 10+ tahun untuk membersihkan basis kode yang saya gunakan. Jadi, menggunakan debugger adalah langkah pertama yang jelas. Hanya ketika saya mengetahui salah satu dari 5 juta baris kode mana yang bekerja, saya akan memindai file naik dan turun untuk mencoba mencari tahu apa yang dilakukan kelas itu.