Anda sedang meminta Holy Grail dari rekayasa perangkat lunak, dan belum ada jawaban "" untuk pertanyaan ini.
Yang penting adalah Anda melacak jenis kesalahan yang Anda buat dan kemudian melakukan analisis kesalahan tersebut untuk menentukan apakah ada kecenderungan umum. Analisis akar penyebab adalah nama formal untuk jenis introspeksi ini, dan ada banyak materi di web mengenai hal itu.
Profesional menggunakan sistem pelacakan bug sehingga mereka dapat (1) tahu apa yang perlu diperbaiki, tetapi juga (2) menganalisis apa yang harus diperbaiki setelah fakta. Anda tidak perlu bersikap formal - menyimpan catatan di notebook mungkin baik untuk Anda.
Cacat Tahap Desain
Jika Anda menemukan bahwa sebagian besar kesalahan Anda berasal dari kesalahpahaman tentang pernyataan masalah, atau jika Anda terus menemukan Anda memilih algoritma atau jalur yang salah untuk diikuti dalam menyelesaikan masalah Anda, Anda memiliki masalah dalam tahap desain.
Penting bagi Anda untuk meluangkan lebih banyak waktu di awal proyek dan menulis dengan tepat apa yang perlu dilakukan dan bagaimana seharusnya melakukannya. Tinjau pekerjaan ini dengan hati-hati dan tinjau kembali masalah aslinya dan tentukan apakah Anda benar-benar menanganinya dengan cara yang benar. Satu atau tiga jam ekstra di awal dapat menghemat banyak waktu.
Kesalahan Pengkodean
Jika desain Anda solid, tetapi Anda terus-menerus memperjuangkan bahasa yang Anda kodekan, dapatkan sendiri beberapa alat yang akan menganalisis kode Anda dan memperingatkan Anda sejak dini dan sering kali Anda membuat kesalahan.
Jika Anda memprogram dalam C, aktifkan semua peringatan kompiler, gunakan pemeriksa semantik lint
, dan gunakan alat seperti valgrind
untuk menangkap masalah umum terkait memori dinamis.
Jika Anda pemrograman Perl, menghidupkan strict
dan warnings
dan mengindahkan apa yang dikatakan.
Tidak peduli bahasa apa yang Anda gunakan, mungkin ada banyak alat di luar sana untuk membantu menangkap kesalahan umum jauh sebelum Anda mencapai tahap debugging.
Cacat Tahap Integrasi
Ketika Anda mengembangkan kode Anda mengikuti praktik modularitas yang baik, Anda harus mulai menempelkan bagian-bagian yang terpisah bersama-sama. Misalnya, bagian berbeda dari kode Anda mungkin berkaitan dengan input pengguna, interaksi basis data, tampilan data, algoritme / logika, dan masing-masing dibangun relatif independen satu sama lain (yaitu, Anda cenderung berkonsentrasi pada bagian yang ada di tangan daripada khawatir tentang integrasi dengan yang lainnya).
Di sinilah pengembangan tes driven (TDD) sangat berguna. Setiap modul kode Anda dapat memiliki tes yang memverifikasi bahwa mereka bekerja sesuai dengan bagaimana mereka dirancang. Tes-tes ini harus ditulis terlebih dahulu atau sangat awal dalam proses sehingga Anda dapat memiliki satu set "pembantu" untuk membuat Anda jujur. Ketika Anda mulai membuat semuanya bekerja bersama, dan Anda menemukan bahwa Anda harus mengubah cara ini atau itu diterapkan atau berinteraksi dengan sub-sistem lain, Anda dapat kembali ke tes Anda untuk memastikan bahwa apa yang telah Anda lakukan untuk membuat semuanya bekerja bersama tidak merusak kebenaran kode.
Dan seterusnya...
Ambil beberapa buku tentang rekayasa perangkat lunak dan teknik pengkodean praktis, dan Anda akan belajar banyak cara untuk membuat pengembangan tidak semrawut dan lebih dapat diandalkan. Anda juga akan menemukan bahwa pengalaman lama yang biasa - dapatkan gelar dari sekolah yang keras - akan membuat Anda menjadi bugar juga.
Apa yang hampir semuanya bermuara adalah bahwa sedikit waktu dan pekerjaan di muka terbayar dalam dividen besar kemudian dalam proses pengembangan / rilis.
Fakta bahwa Anda telah memperhatikan masalah ini begitu awal dalam karir Anda berbicara baik untuk masa depan Anda, dan saya berharap yang terbaik untuk Anda.