Daftar Isi:
- Aktifkan semua peringatan dan pesan kesalahan
- Menulis kode C ++ Anda dengan gaya yang jelas dan konsisten tidak hanya meningkatkan keterbacaan program Anda, namun juga menghasilkan kesalahan pengkodean yang lebih sedikit. Keadaan keadaan yang agak mengejutkan ini berawal dari kenyataan bahwa otak kita hanya memiliki sejumlah daya komputasi terbatas.
- Anda dapat menghindari kesalahan jika Anda mengomentari kode Anda saat Anda menulisnya, daripada menunggu sampai semuanya bekerja dan kemudian kembali dan menambahkan komentar.
- Sebagai programmer, Anda harus mengerti apa yang sedang dilakukan program Anda. Tidak cukup program mengeluarkan nilai yang diharapkan. Anda perlu memahami semua hal yang sedang dilakukan program Anda. Tidak ada yang memberi Anda nuansa yang lebih baik untuk apa yang terjadi di bawah tenda daripada menjalankan program dengan benar, menjalankannya selangkah demi selangkah dengan debugger yang bagus (seperti kode yang datang dengan Code:: Blocks).
- Melacak memori tumpukan
- Jika memungkinkan, MyClass harus melacak pointer memori tersebut dengan sendirinya dan menghapusnya di destruktor.
- Gunakan pengecualian untuk menangani kesalahan
- Deklarasikan destruktor virtual
- bisa menjadi kelas dasar di masa depan. Kecuali Anda memiliki beberapa alasan bagus untuk tidak mendeklarasikan destructor virtual, maka lakukanlah saat Anda pertama kali membuat kelas.
Video: cara menghapus program/aplikasi yang tidak bisa di uninstall lewat control panel 2024
Ini adalah fakta yang tidak menguntungkan bahwa Anda akan meluangkan lebih banyak waktu untuk mencari dan menghapus bug daripada yang Anda habiskan untuk benar-benar menulis program C ++ Anda di tempat pertama. Saran di sini dapat membantu Anda meminimalkan jumlah kesalahan yang Anda perkenalkan ke program Anda untuk membuat pemrograman menjadi pengalaman yang lebih menyenangkan.
Aktifkan semua peringatan dan pesan kesalahan
Sintaks C ++ memungkinkan banyak pengecekan kesalahan. Ketika kompilator menemukan sebuah konstruk yang tidak dapat diuraikan, tidak ada pilihan selain mengeluarkan pesan. Ia mencoba untuk menyelaraskan kembali dengan kode sumber (terkadang kurang berhasil), namun tidak akan menghasilkan eksekusi. Ini memaksa programmer untuk memperbaiki semua pesan error.
Menonaktifkan atau mengabaikan peringatan adalah gagasan yang sangat buruk. Ini seperti mencabut lampu "mesin cek" di dasbor mobil Anda karena ini mengganggu Anda. Mengabaikan masalah tidak membuatnya hilang.
Menulis kode C ++ Anda dengan gaya yang jelas dan konsisten tidak hanya meningkatkan keterbacaan program Anda, namun juga menghasilkan kesalahan pengkodean yang lebih sedikit. Keadaan keadaan yang agak mengejutkan ini berawal dari kenyataan bahwa otak kita hanya memiliki sejumlah daya komputasi terbatas.
Bila Anda membaca kode yang bersih dan rapi dan mengikuti gaya yang Anda kenal, Anda menghabiskan sedikit kekuatan otak untuk mengurai sintaks pernyataan C ++. Ini membuat lebih banyak daya CPU otak untuk memecahkan kode program apa yang coba dilakukan dan bukan bagaimana melakukannya.
Bedakan antara nama kelas, nama objek, dan nama fungsi
-
Pahami apa kelas, fungsi, atau objek yang digunakan untuk, berdasarkan namanya
-
Membedakan simbol preprocessor dari simbol C ++ (yaitu, #define objek harus menonjol)
-
Identifikasi blok kode C ++ pada tingkat yang sama (ini adalah hasil dari indentasi yang konsisten)
-
In Selain itu, Anda perlu membuat format standar untuk header modul Anda yang memberikan informasi tentang fungsi atau kelas di setiap modul, penulis, tanggal, versi, dan sesuatu tentang sejarah modifikasi.
Semua pemrogram yang terlibat dalam satu proyek harus menggunakan gaya pengkodean yang sama. Sebuah program yang ditulis dengan tambal sulam dengan gaya pengkodean yang berbeda membingungkan dan terlihat tidak profesional.
Beri Komentar kode saat Anda menuliskannya
Anda dapat menghindari kesalahan jika Anda mengomentari kode Anda saat Anda menulisnya, daripada menunggu sampai semuanya bekerja dan kemudian kembali dan menambahkan komentar.
Merumuskan komentar memaksa Anda untuk mencatat apa yang sedang Anda coba lakukan. Komentar singkat mencerahkan, baik saat Anda membacanya nanti dan saat Anda menuliskannya. Tuliskan komentar seolah-olah Anda sedang berbicara dengan programmer lain yang berpengetahuan luas.
Single-step setiap path di debugger setidaknya sekali
Sebagai programmer, Anda harus mengerti apa yang sedang dilakukan program Anda. Tidak cukup program mengeluarkan nilai yang diharapkan. Anda perlu memahami semua hal yang sedang dilakukan program Anda. Tidak ada yang memberi Anda nuansa yang lebih baik untuk apa yang terjadi di bawah tenda daripada menjalankan program dengan benar, menjalankannya selangkah demi selangkah dengan debugger yang bagus (seperti kode yang datang dengan Code:: Blocks).
Di luar itu, saat Anda men-debug sebuah program, Anda memerlukan bahan baku untuk mengetahui beberapa perilaku aneh yang mungkin muncul saat program berjalan. Tidak ada yang memberi Anda materi itu lebih baik daripada melangkah tunggal melalui setiap fungsi saat mulai beroperasi. Akhirnya, ketika sebuah fungsi selesai dan siap ditambahkan ke program ini, setiap jalur logis perlu dijalani setidaknya satu kali. Bugs jauh lebih mudah ditemukan saat Anda memeriksa fungsinya dengan sendirinya daripada setelah dilempar ke dalam panci dengan sisa fungsinya - saat itu, perhatian Anda telah beralih ke tantangan pemrograman baru. Batasi keterlihatan
Membatasi jarak pandang internal kelas ke dunia luar adalah landasan pemrograman berorientasi objek. Kelas harus bertanggung jawab atas keadaan internalnya - jika ada sesuatu yang kacau di kelas, maka itu adalah kesalahan pemrogram kelas. Pemrogram aplikasi harus khawatir memecahkan masalah yang ada.
Secara khusus, visibilitas terbatas berarti bahwa anggota data tidak boleh diakses di luar kelas - artinya, mereka harus ditandai sebagai dilindungi. Selain itu, fungsi anggota yang perangkat lunak aplikasi tidak perlu diketahui juga harus ditandai terlindungi. Jangan lagi memaparkan kelas internal daripada yang diperlukan untuk menyelesaikan pekerjaan.
Melacak memori tumpukan
Kehilangan jejak memori tumpukan adalah sumber kesalahan fatal yang paling umum terjadi pada program yang telah dilepaskan ke lapangan - dan, pada saat bersamaan, masalah yang paling sulit dilacak dan dihapus. (Karena kelas kesalahan ini sangat sulit ditemukan dan dihapus, ini lazim dalam program yang Anda beli.) Anda mungkin harus menjalankan program berjam-jam sebelum masalah mulai muncul (tergantung seberapa besar kebocoran memori).
Sebagai aturan umum, programmer harus selalu mengalokasikan dan melepaskan tumpukan memori pada tingkat yang sama. "Jika fungsi anggota MyClass:: create () mengalokasikan blok memori tumpukan dan mengembalikannya ke pemanggil, maka harus ada anggota MyClass:: release () yang mengembalikannya ke heap.Secara khusus, MyClass:: create () seharusnya tidak memerlukan fungsi induk untuk melepaskan memori.
Jika memungkinkan, MyClass harus melacak pointer memori tersebut dengan sendirinya dan menghapusnya di destruktor.
Nol keluar petunjuk setelah menghapus apa yang mereka arahkan ke
Pastikan Anda tidak memberi petunjuk setelah tidak lagi berlaku; Anda melakukannya dengan menugaskan mereka nilai nullptr. Alasan untuk tindakan ini menjadi jelas dengan pengalaman: Anda dapat terus menggunakan blok memori yang telah dikembalikan ke tumpukan dan bahkan tidak mengetahuinya. Sebuah program bisa berjalan dengan baik 99 persen dari waktu, sehingga sangat sulit untuk menemukan 1 persen kasus dimana blok tersebut dialokasikan kembali dan program tidak berjalan.
Jika Anda menghapuskan petunjuk yang tidak lagi valid dan Anda mencoba menggunakannya untuk menyimpan nilai (Anda tidak dapat menyimpan apapun di atau dekat lokasi null), program Anda akan segera mogok. Teriakan terdengar buruk, tapi bukan kalau itu menimbulkan masalah. Masalahnya ada; Ini hanya pertanyaan apakah Anda menemukannya atau tidak sebelum memasukkannya ke dalam produksi.
Gunakan pengecualian untuk menangani kesalahan
Mekanisme pengecualian di C ++ dirancang untuk menangani kesalahan dengan mudah dan efisien. Secara umum, Anda harus membuang indikator kesalahan daripada mengembalikan bendera kesalahan. Kode yang dihasilkan lebih mudah ditulis, dibaca, dan dipelihara. Selain itu, programmer lain telah datang untuk mengharapkannya, dan Anda tidak ingin mengecewakan mereka, bukan?
Batasi penggunaan pengecualian untuk kesalahan sebenarnya. Tidak perlu membuang pengecualian dari fungsi yang mengembalikan indikator "tidak berhasil" jika ini adalah bagian dari kehidupan sehari-hari untuk fungsi itu.
Deklarasikan destruktor virtual
Jangan lupa membuat penghancur untuk kelas Anda jika konstruktor mengalokasikan sumber daya seperti memori tumpukan yang perlu dikembalikan saat objek mencapai akhir kematiannya. Setelah membuat destructor, jangan lupa nyatakan itu virtual.
"Tapi," katamu, "kelas saya tidak mewarisi dari apapun, dan itu bukan subclass oleh kelas lain. "Ya, tapi
bisa menjadi kelas dasar di masa depan. Kecuali Anda memiliki beberapa alasan bagus untuk tidak mendeklarasikan destructor virtual, maka lakukanlah saat Anda pertama kali membuat kelas.
Berikan konstruktor copy dan operator tugas yang kelebihan muatan
Jika kelas Anda membutuhkan penghancur, hampir pasti memerlukan konstruktor salinan dan operator tugas yang kelebihan muatan. Jika konstruktor Anda mengalokasikan sumber daya seperti memori tumpukan, konstruktor salin dan operator penugasan default tidak akan berbuat apa-apa selain membuat malapetaka dengan menghasilkan beberapa petunjuk ke sumber yang sama. Bila penghancur salah satu benda ini dipanggil, maka akan mengembalikan aset tersebut. Ketika destruktor untuk salinan lainnya muncul, itu akan mengacaukan semuanya.