Önce TÜM ÜSTÜN bir göze çarpması olduğunu ve minimize edilmesi gerektiğini kabul edelim.
Bu nedenle C ve C ++ 'da makrolar ve makrolar için bir kural olarak kullanılır, çünkü makrolar kötülük demek değil, aynı derecede çirkindir.
Erken C'nin sabiti yoktu, bu nedenle sabitlerin makro olarak ifade edilmesi gerekiyordu. Ayrıca, bu ilk günlerde programlar çok daha kısaydı, bu yüzden bugün ungood olan uygulamalar kullanılabilirdi (örneğin IIRC Brian Kernighan, çok sayıda büyük harf olmayan makro ile kod yazdı). Ayrıca, o günlerde küçük harfleri olmayan klavyeler vardı; Norveç Tandberg EC-10 bilgisayarında, 1980 veya 1979 yıllarında böyle bir şey kullandım.
Java, C başından itibaren sabitler için büyük konvansiyonu aldı. Bu arada, ve belki de ondan önce (burada kronolojiden emin değilim), C sabitleri aldı. Bununla birlikte, elbette bazı / birçok C programcısı, büyük harf makroları olarak sabitlerin daha önceki gerekliliklerine bağlı kalırken, C ++ programcıları daha mantıklıydı.
Günümüzde en büyük sorun, insanlara önce Java veya önce C (orta çağdan kalma sözleşmelerle) öğretildikten sonra C ++ 'a gelip, o büyük büyük konvansiyonu onlarla almaktır.
Yani,
int const answer = 42; // Nice, good, OK.
const int ANSWER = 0x2A; // Ouch!
#define COMPANYNAME_ANSWER 052 // Oh kill me, please.
Jestte sadece büyük harfli klavyelerden bahsettiğimi düşünmüş olabilirsiniz. Oh hayır. Çünkü bu sadece adlandırma kurallarını yönlendiren veya en azından ne kadar yanlış / doğru göründüklerini etkileyen en eski, en arkaik teknoloji sınırlamasıdır. Daha sonra, kullanılan karakter kodları (gazete karakter kodlamaları) ile ilgili sorunlara neden olan 7 bit seri iletim sorunu vardı, bu da kendinizi A'dan Z'ye kadar İngiliz alfabesinin harfleriyle sınırlamanız gerektiği anlamına geliyordu.
Aslında bunu hala tavsiye ederim. İşte buradayız! Daha ileri gitmedik.
Şu anda, 2011'den itibaren standart C ++, genel Unicode'u adlarda destekliyor (ve 1998'den beri yapıyor), ancak gerçek C ++ uygulamaları desteklemiyor. Özellikle g ++ derleyicisi ulusal karaktere meydan okuyor. O karanlık çağlardan teknolojik sınırlama kaynaklanıyor.
Yani,
double blueberryJamViscosity = 0.0; // OK
double blåbærsyltetøyViskositet = 0.0; // Ouch!
Son olarak, alt çizgi harfleri ve serpiştirilmiş büyük harflerle ilgili olarak,
- Tür adları için kolayca tanınan bir form ayırın.
- TÜM ÜSTÜNÜ makrolar için ayırın.
- Tutarlı olun.
Gerçekten, "genel olarak tek harfli addan kaçının (loop, template param, blah blah)" ve "l ile kolayca karıştırmayın, 1 ile kolayca karıştırın" ve "büyük O harfinden kaçının, kolayca karıştı" gibi kurallar dışında olduğunu düşünüyorum. 0 "ile. Ayrıca, elbette, alt çizgi ile başlayıp ardından büyük harfle, ardışık iki alt çizgi içeren veya alt çizgiyle başlayıp genel ad alanında olmak gibi ayrılmış adları kullanmaktan kaçının.
Şerefe ve hth