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.

[] 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 asserti 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.

results matching ""

    No results matching ""