İkinci sorunuzla ilgili olarak, yayınlanan herhangi bir çalışmanın veya en iyi uygulamaların farkında değilim. İlk soru ile ilgili olarak, 'iç' ve 'dış' adların bazen farklı olduğu benzer uzun ömürlü bir ürünle kişisel deneyimlerden bazı gözlemler sunabilirim.
Gerçekten düzeltmek istediğim isimler, bir ismin hem dahili hem de harici olarak farklı şeyler için kullanıldığı “sesteş sözcükler” . Bu, özellikle de iki şey tamamen farklı değilse (bağlamın belirsizleşmesine yardımcı olacaksa) gerçekten kafa karıştırıcı olabilir. Kişisel deneyimlerime göre bunun (soyutlanmış) bir örneği, dahili olarak Foo
, birden fazla koleksiyon olan bir şeye benzer bir şeyin olduğu yerdir FooEntity
; harici olarak, sadece ikincisi görünür ve buna "Foo" denir. Müşteri el kitabının birden fazla “Foo” dan bahsederken bunun aslında sizin için bir anlam ifade etmesi durumunda aslında birden fazla FooEntity
(tek olarak Foo
) anlamına geldiğini anlamak için biraz zaman aldı.
İkinci olarak, bazı harici adların dahili olarak kullanıldığı “eş anlamlıları” düzeltmek istiyorum. Değişken adlarında olduğu gibi, yöntem / işlev adlarının parçaları vb. Bu, genellikle geliştiriciler doğrudan bir müşteri gereksinimleri açıklamasından bir şey uyguladığında ve adları “çevirmeyi” unuttuğunda olur. Bu gerçekleştiğinde, 'yanlış' ad da yayılma eğilimindedir, çünkü diğer geliştiriciler, örneğin yeni kod için şablon olarak kullanmak üzere bu kodun bir kısmını kopyalar / yapıştırırlar. Bu eşanlamlılar çok kafa karıştırıcı değildir, ancak rahatsız edici olabilirler, çünkü kodu herhangi bir referans için Bar
arıyorsanız, bazı bölümlerin buna atıfta bulunabileceğini aklınızda bulundurmanız gerekebilir.Qux
, bu yüzden iki kez arama yapmanız gerekir. (Bu, dinamik olarak yazılan dillerde statik olanlardan daha kötü olabilir, çünkü değişkenlerin / işlevlerin adının türlerini türlerinin adından ziyade aramak zorunda olduğunuzdan.) ", Dahili bir ad harici olarak kullanıldığında: bu, müşteri destek çalışanları vb. Genellikle iç adlardan daha az haberdar olduğu için sık sık gerçekleşmeme eğilimindedir, ancak gerçekleştiğinde müşteriler için kafa karıştırıcı olduğunu varsayıyorum.
En azından yukarıdaki iki durumu önleyebilir veya düzeltebilirseniz, tüm dahili adları harici olanlarla aynı hale getirmek için gidip gitmemeniz gerektiğinden emin değilim. Dış ad ilk etapta iç addan farklı hale getirildiğinde, iç adların da değiştirilmemesinin iyi bir nedeni olabilir. Kişisel deneyimime göre, bunun iyi bir nedeni ürünün eski sürümlerini destekleme gereğidir; çok sayıda kodun değiştirilmesi gerekiyorsa, ad düzeltmeden önceki sürümden en son sürüme bir hata düzeltmesini birleştirmek zor olabilir.