Küçük bir kelime asla uzun bir kelime kullanmaz.
"Yöntem adının uzunluğu yöntem uzunluğuyla orantılı" tezinizin gerçekten su tuttuğunu sanmıyorum.
Verdiğiniz örneği alın: "getNumberOfSkinCareEligibleItemsWithinTransaction". Bu bana sadece bir şey yaptığı gibi geliyor: bir işlemdeki belirli bir kategoriye giren öğelerin sayısını sayar. Tabii ki yöntemin gerçek kodunu görmeden yargılayamıyorum, ama bu benim için iyi bir yöntem gibi geliyor.
Öte yandan, "processSale" veya popüler olan "doStuff" gibi çok işe yarayan çok kısa ve özlü isimlere sahip birçok yöntem gördüm.
Yöntem adı uzunluğu hakkında zor ve hızlı bir kural vermek zor olacağını düşünüyorum, ancak amaç şöyle olmalıdır: fonksiyonun ne yaptığını iletecek kadar uzun, okunabilir olacak kadar kısa. Bu örnekte, "getSkinCareCount" muhtemelen yeterli olacağını düşünürdüm. Soru, ayırt etmeniz gereken şey. İşlemlerde cilt bakımı için uygun öğeleri sayan bir işleviniz ve başka bir şeydeki cilt bakımı için uygun öğeleri sayan başka bir işleviniz varsa, "withinTransactions" değer katar. Ancak, bir işlemin dışındaki bu tür öğeler hakkında konuşmak için bir şey ifade etmiyorsa, adı bu kadar gereksiz bilgilerle karıştırmanın bir anlamı yoktur.
İkincisi, bence herhangi bir yönetilebilir uzunlukta bir adın, işlevin en önemsiz durumlar hariç tümünde tam olarak ne yaptığını söyleyeceğini varsaymak çok gerçekçi değil. Gerçekçi bir hedef, okuyucuya ipucu veren ve daha sonra hatırlanabilecek bir isim yapmaktır. Örneğin, çözgü hızına ulaşmak için ne kadar antimadde tüketmemiz gerektiğini hesaplayan kodu bulmaya çalışıyorsam, işlev adlarına bakar ve "calibrateTransporter", "firePhasers" ve "calcAntimatterBurn" ifadelerini görürsem, ilk ikisi değil ama üçüncüsü olabilir. Gerçekten aradığım kişi olup olmadığını kontrol edip bulursam, bu sorun üzerinde çalışmak için yarın geri döndüğümde biraz daha hatırlamak kolay olacaktır. Yeteri kadar iyi.
Benzer üç, uzun isimler kısa isimlerden daha kafa karıştırıcıdır. "CalcSalesmanPay" ve "calcGeekPay" adında iki fonksiyonum varsa, hızlı bir bakışta iyi bir tahmin yapabilirim. Ancak "calculateMonthlyCheckAmountForSalesmanForExportToAccountingSystemAndReconciliation" ve "calculateMonthlyCheckAmountForProgrammersForExportToAccountingSystemAndReconciliation" olarak adlandırılırlarsa, hangilerinin hangisi olduğunu görmek için adları incelemeliyim. İsimdeki ekstra bilgi, bu gibi durumlarda muhtemelen tersine verimlidir. Yarım saniyelik bir düşünceyi 30 saniyelik bir düşünceye dönüştürür.