Diğer cevapların neyi kavradığının zirvesi, “sihirli değerlerin” kötü olduğu değil, olmaları gerektiğidir:
- tanınabilir olarak sabitler olarak tanımlanır;
- tüm kullanım alanları içerisinde yalnızca bir kez tanımlanmış (eğer mümkünse);
- Bir şekilde ilişkili bir sabitler dizisi oluştururlarsa birlikte tanımlanırlar;
- kullanıldığı uygulamada uygun bir genellikte tanımlanmış; ve
- uygunsuz bağlamlarda kullanımlarını sınırlayacak şekilde tanımlanır (örn. kontrol tipine uygun).
Tipik olarak kabul edilebilir "sabitleri" "sihirli değerlerden" ayıran şey, bu kuralların bir veya daha fazlasının ihlalidir.
İyi kullanıldığında, sabitler kodumuzun belirli aksiyomlarını ifade etmemize izin verir.
Bu da beni son bir noktaya getiriyor; yukarıdaki kriterlere uymasa bile, sabit değerlerin aşırı kullanımı (ve dolayısıyla değerler açısından ifade edilen aşırı sayıda varsayım ya da kısıtlama), (özellikle onlardan sapması durumunda), Bu, tasarlanan çözümün yeterince genel veya iyi yapılandırılmamış olduğu anlamına gelebilir (bu nedenle artık sabitlerin artıları ve eksileri hakkında değil, iyi yapılandırılmış kodun artıları ve eksileri hakkında gerçekten konuşmuyoruz).
Yüksek seviyeli diller, sabit seviyelerde çalışmak zorunda kalacak olan düşük seviyeli dillerdeki kalıplar için yapılara sahiptir. Aynı paternler üst seviye bir dilde de kullanılabilir, ancak kullanılmaması gerekir.
Ancak bu, tüm koşulların izlenimine ve bir çözümün neye benzemesi gerektiğine ve bu kararın tam olarak nasıl haklı çıkacağına dayanan bir uzman kararı olabilir. Gerçekten de, "Aşina olduğum, daha iyi yaptığım bu tür işleri görecek kadar yaşlandım" iddiası dışında, genel ilkeler açısından haklı bulunmayabilir!
EDIT: bir düzenlemeyi kabul etmiş, bir başkasını reddetmiş ve şimdi kendi düzenlememi yaptım, şimdi bir kez ve tüm haha için çözülecek olan kural listemin biçimlendirme ve noktalama stilini düşünebilir miyim?