Rumah Keuangan Pribadi 10 Cara untuk menghindari bug di C ++ - dummies

10 Cara untuk menghindari bug di C ++ - dummies

Daftar Isi:

Video: cara menghapus program/aplikasi yang tidak bisa di uninstall lewat control panel 2024

Video: cara menghapus program/aplikasi yang tidak bisa di uninstall lewat control panel 2024
Anonim

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.

Mengadopsi gaya pengkodean yang jelas dan konsisten

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.

Gaya pengkodean yang baik memungkinkan Anda melakukan hal berikut dengan mudah:

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.

10 Cara untuk menghindari bug di C ++ - dummies

Pilihan Editor

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Jika Anda ingin membuat sesuatu di Word yang hanya akan menyilaukan seseorang, coba tangan Anda dengan kartu ucapan yang disesuaikan. Untuk mengatur Word agar membuat kartu ucapan dari satu lembar kertas ukuran standar, ikuti langkah-langkah ini: 1. Pilih File -> Page Setup. 2. Klik tab Margins. 3. Pilih Landscape ...

Membuat Index of Word 2007 Document - dummies

Membuat Index of Word 2007 Document - dummies

Jika Anda ingin membuat indeks untuk Word Anda Dokumen 2007, tugas pertama adalah menandai kata atau frasa yang ingin Anda sertakan dalam indeks. Cara yang paling umum untuk melakukannya adalah dengan memasukkan penanda indeks dalam dokumen pada setiap kemunculan setiap item yang ingin Anda tampilkan ...

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Menulis adalah seni yang sepi ... yaitu , sampai editor muncul. Mereka akan membuat revisi dengan menambahkan karya tulis Anda dengan hati-hati, memindahkan barang-barang, dan menghapus teks (Aduh!). Tidak ada cara untuk mengidentifikasi teks asli Anda dari teks yang dimodifikasi - kecuali jika Anda menggunakan alat Pelacakan Lagu Word 2007. Pelacakan perubahan sebagai ...

Pilihan Editor

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Saat Anda melakukan pemeliharaan situs, kemungkinan besar Anda ingin menonaktifkan halaman situs Anda yang sedang dibangun. Squarespace memungkinkan Anda untuk dengan mudah menonaktifkan dan mengaktifkan kembali halaman. Bagaimana cara menonaktifkan halaman di Squarespace Jika Anda ingin menonaktifkan halaman di situs Anda, Anda dapat melakukannya di ...

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Template yang Anda pilih di Squarespace mendikte berbagai area navigasi yang Anda miliki di situs Anda. Template Anda mungkin menyediakan area navigasi berikut di Pengelola Konten: Atas / Utama: Semua template memiliki navigasi teratas atau utama. Sekunder: Halaman yang ditambahkan ke area navigasi ini bukan fokus utama situs Anda. Footer: Beberapa template memiliki ...

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Anda menggunakan Editor Gaya di Squarespace kapan saja Anda perlu memodifikasi desain situs Anda atau elemen tertentu di situs Anda. Style Editor adalah bagian dari mode Style, yang Anda akses di area Preview. Ikuti langkah-langkah ini untuk memuat Editor Gaya di browser Anda: Masuk ke situs web Anda. Anda ...

Pilihan Editor

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Jika Anda tidak menyukai tata letak dari slide Anda dalam presentasi PowerPoint 2016, hubungi Master Slide dan lakukan sesuatu tentang hal itu, seperti yang ditunjukkan pada langkah-langkah ini: Buka Slide Master View dengan membuka tab View pada Ribbon dan kemudian klik tombol Slide Master, yang terdapat dalam Presentasi Grup tampilan Sebagai alternatif, ...

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Setelah membuat grafik SmartArt dalam presentasi PowerPoint Anda, Anda mungkin ingin mengubahnya. Modifikasi dapat mencakup perubahan jenis atau tata letak grafis, menambah atau menghapus bentuk, dan mengubah urutan bentuk bentuk. Pada slide 1, klik bingkai grafis SmartArt untuk memilih keseluruhan grafik. Klik SmartArt Tools ...