Mengumpulkan praktik C++ terbaik

Dec 28 2022
Membaca artikel kami, Anda mungkin bertanya-tanya: mengapa mereka selalu membicarakan hal-hal buruk? Kode ini mengandung bug; ada bau kode di sini; ini adalah antipattern — jangan membuat kode seperti itu. Jadi, maukah Anda membantu saya untuk melihat sisi terang dari pemrograman C++? Jangan ragu untuk meninggalkan komentar.

Membaca artikel kami, Anda mungkin bertanya-tanya: mengapa mereka selalu membicarakan hal-hal buruk? Kode ini mengandung bug; ada bau kode di sini; ini adalah antipattern — jangan membuat kode seperti itu. Jadi, maukah Anda membantu saya untuk melihat sisi terang dari pemrograman C++? Jangan ragu untuk meninggalkan komentar.

Baru-baru ini saya menemukan sebuah diskusi di Reddit “ Repo yang bagus untuk pemula untuk menelusuri yang mengikuti praktik C++ modern terbaik (termasuk pengujian, analisis statis, dll…) ”. Utasnya bukan yang terpanjang, tapi masih cukup menarik. Kemudian, sebuah ide muncul di kepala saya — mengapa saya tidak memposting survei di Habr.com? Saya melakukan hal yang sama dengan tip pengkodean yang buruk.

Omong-omong, ide untuk menulis artikel tentang tip pengkodean yang buruk sedang berkembang. Segera saya berencana untuk menerbitkan buku dengan 60 anti-pola di C++. Berlangganan buletin bulanan kami, jika Anda tidak ingin ketinggalan publikasi paling menarik.

Jadi, topik tip pengkodean yang buruk dibahas :). Saatnya berbicara tentang praktik yang baik!

Aku pergi dulu. Kemudian, saya mengundang Anda untuk bergabung dengan saya dan menulis di komentar:

  • alat apa yang Anda rekomendasikan;
  • perpustakaan yang menarik dan bermanfaat apa yang Anda gunakan;
  • proyek apa yang berguna dalam mempelajari C++;
  • praktik apa, standar pengkodean yang dapat Anda sarankan;
  • dan seterusnya.
  1. ModernCppStarter . Mulai C++ Anda! Templat untuk proyek C++ modern menggunakan CMake, CI, cakupan kode, format dentang, manajemen ketergantungan yang dapat direproduksi, dan banyak lagi.
  2. gui_starter_template . Ini adalah template GitHub Praktik Terbaik C++ untuk memulai dan menjalankan C++ dengan cepat.

Catatan untuk diri sendiri. Jika saya menulis artikel tentang informasi yang dikumpulkan nanti, saya perlu memeriksa ini dan proyek lain yang diusulkan dengan PVS-Studio. Perpustakaan berbeda, Anda tahu… Saya tidak ingin merekomendasikan sesuatu yang berpotensi bermasalah sebagai contoh untuk diikuti.

  1. Mesin Rajin . Pustaka Grafik 3D Tingkat Rendah Lintas Platform Modern dan Kerangka Kerja Rendering.
  2. JSON untuk C++ Modern . Sintaks intuitif. Integrasi sepele. Pengujian serius. Efisiensi memori. Kecepatan.
  3. Stroika adalah framework aplikasi C++ yang modern, portabel, paham thread. Itu membuat penulisan aplikasi C++ berkinerja tinggi lebih mudah dengan menyediakan blok bangunan modular yang aman, fleksibel.
  4. setuju . Konkurensi modern untuk C++. Tugas, pelaksana, penghitung waktu, dan coroutine C++20 untuk mengatur semuanya.
  5. mengagumkan-hpp . Daftar pustaka C++ khusus tajuk yang dikuratori.
  1. Di sini saya mengundang Anda untuk membaca artikel rekan saya “ Mempercepat pembangunan proyek C dan C++ ”.
  2. Ada berbagai diskusi lama dan baru tentang topik ini. Saya senang belajar tentang hal-hal baru yang menarik tentang topik ini dari Anda. Terima kasih sebelumnya.
  1. Pedoman Inti C++ adalah upaya kolaboratif yang dipimpin oleh Bjarne Stroustrup, seperti halnya bahasa C++ itu sendiri. Mereka adalah hasil dari diskusi dan desain selama bertahun-tahun di sejumlah organisasi.
  2. Kumpulan Kolaborasi Praktik Terbaik C++ . Sumber daya online ini adalah bagian dari kumpulan sumber daya Praktik Terbaik C++ Jason Turner. Omong-omong, karena saya menyebut Jason, inilah tautan ke saluran C++ Weakly -nya.
  3. Panduan Gaya Google C++ . Tujuan dari panduan ini adalah untuk mengelola kompleksitas ini dengan menjelaskan secara rinci apa yang boleh dan tidak boleh dilakukan dalam menulis kode C++. Aturan-aturan ini ada untuk menjaga agar basis kode tetap dapat dikelola sambil tetap memungkinkan pembuat kode untuk menggunakan fitur bahasa C++ secara produktif.
  1. AddressSanitizer menemukan kesalahan memori.
  2. LeakSanitizer mencari kebocoran memori.
  3. ThreadSanitizer mendeteksi balapan data dan kebuntuan.
  4. MemorySanitizer mencari memori yang belum diinisialisasi.
  5. HWASAN , atau Hardware-assisted AddressSanitizer, varian baru dari AddressSanitizer yang menggunakan lebih sedikit memori.
  6. UBSan menemukan perilaku yang tidak ditentukan dalam suatu program.
  1. Di sini saya akan bermain bodoh dan hanya menyebutkan PVS-Studio kami. Nah, kenapa tidak? Ini adalah penganalisa kode statis yang luar biasa dan kuat . Alat ini membantu menemukan banyak kesalahan dan potensi kerentanan bahkan pada tahap penulisan kode C++.
  2. MELAKUKAN. Saya juga senang mendengar tentang pengalaman sukses Anda menggunakan penganalisa kode statis lainnya.
  1. Saya selalu menyarankan semua orang untuk membaca Code Complete oleh Steve McConnell (ISBN 0–7356–1967–0).
  2. Praktik Terbaik C++ (2019) .
  3. Pertanyaan Utama tentang Pemrograman, Pemfaktoran Ulang, dan Segalanya .
  4. Standar Pengodean C++: 101 Aturan, Panduan, dan Praktik Terbaik .
  5. Scott Meyers. C++ Efektif: 55 Cara Spesifik untuk Meningkatkan Program dan Desain Anda (edisi ke-3).
  6. Scott Meyers. C++ Modern yang Efektif: 42 Cara Spesifik untuk Meningkatkan Penggunaan Anda atas C++11 dan C++14".

Silakan bagikan semua yang Anda anggap berguna untuk pemrogram C++!