Saya bertanya-tanya apa sajakah teknik untuk menemukan kode mana yang menerapkan fitur spesifik, pada aplikasi desktop.
Saya adalah pengembang junior, dengan hanya pengalaman pemrograman profesional di seputar pemrograman web. Di Web lebih mudah untuk melakukan itu. Misalnya, Anda "memeriksa" tombol dengan alat peramban, dan Anda dapat melihat apa yang sedang dilakukan ketika Anda mengkliknya. Dan kemudian, dengan anggapan Anda memiliki kode sumber lengkap, Anda dapat menelusuri hierarki panggilan.
Tetapi bagaimana Anda melakukan ini di aplikasi desktop? Setidaknya, tanpa harus menyelam ke basis kode lengkap?
debugging
desktop-application
py_script
sumber
sumber
Jawaban:
Tracing kembali
Back tracing adalah menemukan titik akhir ke peristiwa yang terkait dengan fitur (lihat di bawah). Sesampai di sana, breakpoint ditempatkan di debugger. Fitur ini dipicu dan ketika debugger berhenti. Tumpukan panggilan ditinjau untuk melacak jejak jalur panggilan. Saat berjalan menumpuk tumpukan panggilan Anda dapat membuat catatan pada negara variabel, atau menempatkan breakpoints baru untuk memeriksa acara lagi.
Fitur ini terpicu lagi dan debugger berhenti di breakpoints baru. Anda kemudian dapat mengulangi pelacakan kembali atau melakukan pelacakan maju sampai tujuan ditemukan.
Pro kontra
Penemuan Titik Akhir
Untuk men-debug fitur Anda harus tahu di mana dalam kode sumber tujuan akhir tercapai. Hanya dari titik ini Anda dapat melacak kembali untuk melihat bagaimana kode sampai di sana. Sebuah contoh; Untuk memahami bagaimana membatalkan dilakukan. Anda tahu di mana dalam kode semuanya dibatalkan, tetapi Anda tidak tahu bagaimana hal-hal itu sampai di sana . Ini akan menjadi kandidat untuk penelusuran balik untuk mengetahui cara kerja fitur.
Tracing Maju
Tracing ke depan adalah menemukan titik awal untuk peristiwa yang terkait dengan fitur (lihat di bawah). Sesampai di sana, pesan logging dimasukkan ke dalam kode sumber atau breakpoints diatur. Proses ini diulangi saat Anda berkembang lebih jauh dari titik awal hingga Anda menemukan tujuan untuk fitur tersebut.
Pro kontra
Mulai Point Discovery
Anda dapat menggunakan kata kunci, pengidentifikasi antarmuka pengguna (ID tombol, nama jendela) atau mudah menemukan pendengar acara yang terkait dengan fitur tersebut. Misalnya, Anda dapat memulai dengan tombol yang digunakan untuk memicu fitur undo .
Proses Eliminasi
Anda dapat menganggap ini sebagai titik tengah dibandingkan dengan posisi titik awal dan titik akhir . Anda melakukan proses eliminasi ketika Anda sudah tahu sepotong kode digunakan dalam suatu fitur, tetapi itu bukan awal atau akhir dari fitur.
Arah yang Anda ambil dari titik tengah tergantung pada jumlah entri dan keluar. Jika potongan kode digunakan di banyak tempat, maka melacak kembali dari posisi ini bisa sangat memakan waktu karena mereka semua harus diperiksa. Anda kemudian menggunakan proses eliminasi untuk mengurangi daftar ini. Alternatif, Anda dapat melakukan jejak maju dari titik ini, tetapi sekali lagi jika kode memotong cabang ke banyak tempat ini juga bisa menjadi masalah.
Anda harus mengurangi arah posisi dengan tidak mengikuti jalur yang jelas tidak akan dieksekusi untuk fitur ini. Bergerak melewati kode ini dan hanya menempatkan breakpoint di mana kemungkinan terkait dengan fitur.
Debugging titik tengah sering membutuhkan fitur IDE lebih lanjut. Kemampuan untuk melihat hierarki kode dan dependensi. Tanpa alat-alat itu sulit dilakukan.
Pro kontra
sumber
Dengan asumsi bahwa fitur ini terkait dengan beberapa UI UI, seperti Button atau Menu, apa yang saya cenderung lakukan berikut (sangat membosankan tetapi berfungsi). Ini mencari melalui Kode Sumber, tidak menggunakan debugger .
SUPER_BUTTON_3 = "Super Feature X3"
. Untuk referensi di masa mendatang, ingat nama file ini.Seperti yang dicatat @amon, terkadang Debugger lebih sederhana ...
sumber
Jika Anda dapat menemukan kode terkait sama sekali, Anda dapat menggunakan perangkat lunak kontrol sumber Anda untuk menunjukkan kepada Anda seluruh komit atau komit terdekat yang menambahkannya. Itu akan menunjukkan kepada Anda segala yang diperlukan untuk mengimplementasikan fitur itu.
Salah satu cara mudah untuk menemukan beberapa titik awal untuk dilihat adalah dengan memeriksa basis kode Anda mencari teks pada tombol.
Seringkali, orang-orang akan memasukkan id masalah dari pelacak masalah mereka dalam pesan komit mereka. Jika Anda dapat menemukan masalah yang menggambarkan permintaan fitur, maka Anda dapat mencari komit dengan id masalah itu.
sumber