Bakımyapılabilirlik
Derleyici Macro'larını Kullanma
Derleyici tanımlamaları ve macro'lar, derleyici çalışmadan evvel önişlemcilerle değiştirilir. Bu debug işlemini çok zorlaştırabilir çünkü debugger kaynağın nerden geldiğini bilmez.
// Kötü Fikir
#define PI 3.14159;
// Iyi Fikir
namespace my_project {
class Constants {
public:
// yukarıdaki macro genişletildiğinde, aşağıdaki satır derleme-zamanı hatasına
// neden olur. Bazen bu hataları anlamak çok zordur.
// static const double 3.14159 = 3.14159;
static constexpr double PI = 3.14159;
};
}
Boolean Parametreleri Kullanmamaya Çalış
Bool parametreler kodu okurken fazladan bir anlam sağlamaz. Daha anlamlı bir isme sahip ayrı bir fonksiyon oluşturabilir veya anlamı daha açık kılan enumeration kullanabilirsin.
Daha fazla bilgi için bknz http://mortoray.com/2015/06/15/get-rid-of-those-boolean-function-parameters/ .
Ham Döngüler Kullanma
Mevcut C++ standard algoritmalarını anlayıp öğren ve onları kullan.
- Gözat cppreference
- İzle C++ Seasoning
[]
kullanımını potansiyel olarak kokan bir kod olarak düşünün, bu bir algoritmanın kullanılabileceği ama kullanılmadığını gösterir.
Yan Etkisi Olan assert
i Asla Kullanma
// Kotu Fikir
assert(set_value(something));
// Daha Iyi Bir Fikir
[[maybe_unused]] const auto success = set_value(something);
assert(success);
assert()
release build'lerde kaldırılacaktır, bu durumda 'set_value` çağrısı hiçbir zaman olmaz.
Bu yüzden ikinci versiyon daha az çirkindir, birincisi ise doğru değildir.
'override' ve 'final'i Düzgünce Yerleştir
Bu anahtar kelimeler, diğer geliştiricilere virtual fonksiyonların nasıl kullanıldığını, bir virtual fonksiyonun imzası değiştiğinde olası hataları yakalayabildiğini ve muhtemelen gerçekleştirilebilecek optimizasyon için derleyiciye ipucu verilmesini sağlar.