Saya pikir sebenarnya ada dua hal untuk diatasi, dan saya sebenarnya akan mempertimbangkannya secara terpisah karena mereka tidak dapat didekati dengan cara yang sama, meskipun saya menemukan keduanya penting.
- Aspek teknis: yang bertujuan menghindari kode berisiko atau tidak terbentuk dengan benar (walaupun diterima oleh kompiler / juru bahasa)
- Aspek presentasi: yang berkaitan dengan membuat program menjadi jelas bagi pembaca
Aspek teknis saya memenuhi syarat Standar Pengkodean , seperti halnya Herb Sutter dan Andrei Alexandrescu dengan Standar Pengodean C ++ . Presentasi saya memenuhi syarat dari Coding Style , yang meliputi konvensi penamaan, indentasi, dll ...
Standar Pengkodean
Karena murni teknis, Standar Pengkodean sebagian besar obyektif. Karena itu setiap aturan harus didukung oleh suatu alasan. Dalam buku yang sayaacu setiap item memiliki:
- Judul, sederhana dan to the point
- Ringkasan, yang menjelaskan judul
- Diskusi, yang menggambarkan masalah melakukan sebaliknya dan dengan demikian menyatakan alasannya
- opsional Beberapa contoh, karena contoh yang baik bernilai ribuan kata
- opsional Daftar pengecualian yang aturan ini tidak bisa diterapkan, kadang-kadang dengan kerja di sekitarnya
- Daftar referensi (buku lain, situs web) yang telah membahas poin ini
Alasan dan Pengecualian sangat penting, karena mereka merangkum mengapa dan kapan.
Judul harus cukup eksplisit sehingga selama ulasan orang hanya perlu memiliki daftar judul (lembar contekan) untuk bekerja dengannya. Dan jelas, kelompokkan item berdasarkan kategori untuk membuatnya lebih mudah untuk mencari satu.
Sutter dan Alexandrescu berhasil memiliki daftar hanya seratus item, meskipun C ++ dianggap berbulu;)
Gaya Pengodean
Bagian ini umumnya kurang objektif (dan bisa benar-benar subjektif). Maksudnya di sini adalah untuk menjamin konsistensi, karena ini membantu para pengelola dan pendatang baru.
Anda tidak ingin memasuki perang suci tentang gaya lekukan atau penjepit mana yang lebih baik di sini, ada forum untuk ini: jadi dalam kategori ini Anda melakukan sesuatu dengan konsensus> suara terbanyak> keputusan sewenang-wenang oleh pemimpin.
Untuk contoh pemformatan, lihat daftar opsi Gaya Artistik . Idealnya, aturannya harus jelas dan cukup lengkap sehingga suatu program dapat menulis ulang kode (meskipun tidak mungkin Anda akan pernah kode satu;))
Untuk konvensi penamaan, saya akan mencoba membuat kelas / tipe mudah dibedakan dari variabel / atribut.
Juga dalam kategori ini saya mengklasifikasikan "tindakan" seperti:
- lebih suka metode pendek ke panjang: biasanya sulit untuk menyepakati berapa lama
- lebih suka kembali / melanjutkan / istirahat awal untuk mengurangi lekukan
Lain-lain?
Dan sebagai kata terakhir, ada satu item yang jarang, jika pernah, dibahas dalam Standar Pengkodean, mungkin karena itu khusus untuk setiap aplikasi: organisasi kode. Masalah arsitektur mungkin adalah masalah yang paling menonjol, mengacaukan desain awal dan Anda akan diganggu olehnya bertahun-tahun dari sekarang. Anda mungkin harus menambahkan bagian untuk penanganan file dasar: header publik / pribadi, manajemen ketergantungan, pemisahan masalah, berinteraksi dengan sistem atau perpustakaan lain ...
Tapi itu bukan apa - apa jika tidak benar-benar diterapkan dan ditegakkan .
Pelanggaran apa pun harus diajukan selama ulasan kode, dan tidak ada review kode yang boleh diterima jika pelanggaran terjadi:
- perbaiki kode agar sesuai dengan aturan
- perbaiki aturan sehingga kode tidak menonjol lagi
Jelas, mengubah aturan berarti mendapatkan "jalan terus" dari para pemimpin.