Ekibimde birkaç yazılım mimarıyla yakın çalışıyoruz. Projelerimizin tüm tasarım kararlarını onaylıyor, bazı kod incelemeleri yapıyorlar vb.
Projelerimiz esas olarak Symfony 2 çerçevesi kullanılarak PHP'de uygulanan arka uç işlevlerinden oluşmaktadır. Sözdizimsel olarak, kod, adlandırma kuralları ve proje yapısı Java'nın nasıl görüneceğiyle neredeyse aynı görünmektedir (Symfony 2 bu yapıyı teşvik eder). Bu durumdan bahsediyorum çünkü Java'ya özgü kurallar da bizim durumumuzda geçerlidir (mümkünse).
Son zamanlarda, çok garip bulduğum bir şey önerdiler: tüm yöntemlerin kendi adlarında bağlaçları olmalıdır getEntityOrNull
, setValueOrException
vb.
Böyle bir adlandırma kuralı benim için çok yanlış geliyor, ancak özellikle buna meydan okuyan somut argümanlar veya çevrimiçi makaleler / sayfalar bulamıyorum.
Ortaya koyduğum tek şey:
- bu tür bilgiler, yöntemin ek açıklamalarında
@return
veya@throws
- yöntem adlarında bağlaçların ("ve", "veya" vb.) kullanılması genellikle Tek Sorumluluk İlkesine tam olarak uyulmadığını gösterir
Bu adlandırma kuralına karşı başka somut argümanlar nelerdir?
the use of conjunctions ("and", "or" etc.) in method names usually suggest that the Single Responsibility Principle is not properly respected
Bu, listelenen örnekler için geçerli değildir; burada, bağlantı, bir şey veya başka bir şey yapabileceğini belirtmek için, hataları işlemek için kullanılan mekanizmayı açıklamak için kullanılır. En dar biçimde tanımlanmış fonksiyonun bile meşru hata durumları olabilir, örneğin boş bir yığının haşlanması.
Int32.TryParse
ve Int32.Parse
- her ikisi de bir dizeyi bir tamsayıya ayrıştırır, ancak birincisi başarılı gösteren bir Boole döndürür ve ikincisi başarısızlığa neden olur.
Try...
, ...OrNull
, ...OrDefault
. @EricLippert .net'teki tek kural bu değildir. Düşünün Single
VS. SingleOrDefault
çok yakın olduğunu, OrNull
önerilen OP.