ちっぽけな単語で十分な場合は、長い単語を使用しないでください。
「メソッド名の長さがメソッドの長さに比例する」というあなたの論文は、本当に水を持っているとは思いません。
「getNumberOfSkinCareEligibleItemsWithinTransaction」の例を見てみましょう。これは、1つのことだけを行うように思えます。特定のカテゴリに分類されるトランザクション内のアイテムの数をカウントします。もちろん、メソッドの実際のコードを確認せずに判断することはできませんが、それは私には良い方法のように思えます。
一方、「processSale」や今まで人気の高い「doStuff」のように、多くの作業に役立つ非常に短くて簡潔な名前を持つ多くのメソッドを見てきました。
メソッド名の長さに関して厳格な規則を与えるのは難しいと思いますが、目標は、関数が何を実行するかを伝えるのに十分長く、読みやすいように十分に短くすることです。この例では、おそらく「getSkinCareCount」で十分だったと思います。問題は、何を区別する必要があるかです。スキンケア対象アイテムをトランザクションでカウントする関数と、スキンケア対象アイテムを別のアイテムでカウントする関数がある場合、「withinTransactions」は価値を追加します。しかし、トランザクションの外でそのようなアイテムについて話すことが何の意味もないのであれば、そのような余分な情報で名前を混乱させる意味はありません。
2つ目は、管理しやすい長さの名前から、関数が何を行うかを、非常に些細な場合を除いて正確に説明できると考えるのは、非常に非現実的だと思います。現実的な目標は、読者に手掛かりを与え、後で思い出せる名前を付けることです。たとえば、ワープ速度に到達するために消費する必要がある反物質を計算するコードを見つけようとしている場合、関数名を見て「calibrateTransporter」、「firePhasers」、および「calcAntimatterBurn」を見ると、かなり明らかです。最初の2つはそうではありませんが、3つ目はそうかもしれません。確認し、それが本当に探しているものであることがわかった場合、明日この問題に取り組むために戻ってきたときに、それを思い出すのは簡単です。それで十分です。
類似した3つの長い名前は、短い名前よりも混乱します。「calcSalesmanPay」と「calcGeekPay」という2つの関数がある場合、どれがどれであるかが一目でわかります。しかし、それらが「calculateMonthlyCheckAmountForSalesmanForExportToAccountingSystemAndReconciliation」および「calculateMonthlyCheckAmountForProgrammersForExportToAccountingSystemAndReconciliation」と呼ばれている場合、どちらがどれかを確認するために名前を調べる必要があります。名前の追加情報は、おそらくそのような場合には逆効果です。0.5秒の思考を30秒の思考に変えます。