Saya sudah pemrograman dalam C dan C ++ untuk beberapa waktu, meskipun saya akan mengatakan saya jauh dari menjadi ahli. Untuk beberapa waktu, saya telah menggunakan berbagai strategi untuk mengembangkan kode saya seperti tes unit, desain uji coba, ulasan kode dan sebagainya.
Ketika saya menulis program pertama saya di BASIC, saya mengetik di blok panjang sebelum menemukan mereka tidak akan berjalan dan itu adalah mimpi buruk untuk debug. Jadi saya belajar menulis sedikit dan kemudian mengujinya.
Hari-hari ini, saya sering menemukan diri saya berulang kali menulis sedikit kode kemudian menggunakan kompiler untuk menemukan semua kesalahan. Tidak apa-apa jika mengambil kesalahan ketik tetapi ketika Anda mulai menyesuaikan jenis parameter dll hanya untuk membuatnya kompilasi Anda dapat mengacaukan desain. Tampaknya juga kompiler masuk ke dalam proses desain padahal seharusnya hanya digunakan untuk memeriksa sintaksis.
Ada bahaya di sini karena terlalu mengandalkan kompiler untuk membuat program saya lebih baik. Apakah ada strategi yang lebih baik dari ini?
Samar-samar saya ingat beberapa waktu lalu sebuah artikel di sebuah perusahaan yang mengembangkan jenis kompiler C di mana file header tambahan juga menentukan prototipe. Idenya adalah bahwa inkonsistensi dalam definisi API akan lebih mudah ditangkap jika Anda harus mendefinisikannya dua kali dengan cara yang berbeda.
Jawaban:
Jangan sesuaikan hal untuk membuatnya dikompilasi. Sesuaikan segala sesuatunya menjadi benar . Jika "dirancang" sehingga tipe parameter tidak cocok, maka perancang tidak tahu apa yang mereka lakukan.
Jika Anda tidak ingin bergantung pada kompiler, maka tingkatkan pengetahuan bahasa Anda. Pelajari struktur definisi dan deklarasi, dan periksa kesalahan apa yang Anda tulis sebelum kompilasi. Dan gunakan ulasan kode.
Gagasan prototipe ekstra itu terdengar buruk. Jika Anda salah mendesain, apa yang membuat desain kedua salah? Dan dengan menggunakan berbagai format / paradigma / dll untuk hal yang sama, Anda cenderung membingungkan orang. Saya akan memastikan semua orang memahami format utama sehingga Anda dapat fokus pada mendapatkan desain yang benar pertama kali, daripada menggandakan pekerjaan desain untuk menangkap kesalahan. Seperti yang lainnya, desain harus di-refactored, tetapi saya tidak berpikir melakukannya dua kali untuk memulai dengan sangat masuk akal.
sumber
Jujur, saya percaya tujuan Anda SELALU adalah untuk menulis sebuah program yang dikompilasi pertama kali. Saya menyadari bahwa ini sulit dan mungkin tidak akan sering terjadi, tetapi itu tetap harus menjadi tujuan Anda. Pikirkan perangkat lunak sebagai perangkat keras. Buatlah diri Anda percaya bahwa mahal untuk mengkompilasi ulang kode Anda (seperti membuat ulang papan). Complier bukan debugger dan tidak seharusnya diperlakukan seperti itu.
sumber
Kompiler tidak dapat menemukan semua kesalahan sehingga tidak ada gunanya berpura-pura bisa. Yang dapat ditemukan hanyalah kesalahan sintaks dan kesalahan ketik. Sudah cukup baik sehingga saya membiarkannya melakukan bagian dari pekerjaan itu (meskipun hari ini lingkungan menangkap 99% dari mereka sendiri sebelum Anda mencapai kompilasi) tetapi saya sangat tahu itu bukan semua kesalahan.
Satu-satunya waktu saya mengandalkan informasi semacam itu untuk memberi tahu saya apa yang harus ditulis adalah ketika saya mendapatkan hal-hal seperti itu mengatakan kepada saya itu tidak dapat secara otomatis mengubah ganda menjadi float - jika di mana Anda mengirim data mengharapkan mengapung (dan karena apa yang saya lakukan saat ini adalah bermain dengan pustaka XNA yang melakukan hal ini) dan sumber mengembalikan dua kali lipat (seperti halnya pustaka matematika C #) maka Anda hanya perlu mengonversi.
sumber
Kompiler adalah alat. Seperti semua alat, mereka bisa disalahgunakan.
Saat pertama kali memulai dengan bahasa, tidak ada salahnya menggunakan kompiler secara membabi buta untuk menguji program Anda. Begitulah cara belajar bekerja, tebak, dan periksa. Namun, itu tidak berarti Anda harus terus kode seperti itu.
Adalah kepentingan terbaik Anda untuk memahami bahasa dengan cukup baik sehingga Anda dapat menyusun program di kepala Anda. Maka Anda akan menghabiskan lebih sedikit waktu menunggu kompiler selesai.
Saya mengatakan itu mungkin yang terbaik bahwa program selalu dalam beberapa baris / blok kode yang dapat dikompilasi.
sumber
Kebanyakan IDE modern menangkap banyak masalah kompiler dan saya kira saya telah menjadi sangat bergantung pada ini juga.
Mungkin kembali ke file teks dan kompiler baris perintah?
sumber