Başka bir geliştiriciden devraldığım bir programda aşağıdaki koşulla karşılaştım:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
Bu kod gereksiz ve çirkin olduğuna inanıyorum, bu yüzden bir karşılaştırma dayalı basit bir boole atama olduğunu düşündüm ne değiştirdim:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
Bunu gördükten sonra, kodumu inceleyen biri, değişikliğimin işlevsel olarak doğru olmasına rağmen, başka birisinin ona baktığını karıştırabileceğini söyledi. Üçlü bir operatör kullanmanın bu atamayı daha açık hale getirdiğine inanıyor, oysa daha fazla kod eklemeyi sevmiyorum:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
Onun akıl yürütmesi, başka bir geliştiricinin tam olarak ne yaptığınızı durdurup bulması gerektiğine neden olursa, bir şeyi en özlü bir şekilde yapmaya değmez.
Buradaki asıl soru, boole değer atamak için kullanılan bu üç yöntemden hangisinin obj.NeedsChange
en açık ve en sürdürülebilir olmasıdır.