コードの腐敗を防ぐ、たった一つのシンプルな命名テクニック

クラスに Service、Manager、Handler といった名前をつけるのはやめましょう。

これらの名前は曖昧です。それらは、悪い設計を許容してしまう「免罪符」として機能してしまいます。

もしクラスに UserService という名前をつけると、ユーザーに関連することなら何でもその中に入れてしまうことができます。パスワードのリセット、ロールの割り当て、割引の計算などを追加してしまうかもしれません。これらはすべてユーザーに関わることなので、その名前は正しく感じられてしまいます。

しかし、これらのタスクはそれぞれ異なるルールと依存関係を持っています。単一の UserService は、巨大な混乱の塊になってしまいます。

代わりに、エージェンティブな命名(agentive naming)を試してみてください。特定の動作を表す名前を使用します。

• UserRegistrar • PasswordResetter • RoleAssigner • DiscountCalculator

これらの名前は「摩擦」を生みます。もし PasswordResetter が突然、請求書を発行するためのツールを必要としたとしたら、その間違いは一目瞭然です。名前があることで、悪い設計を無視することが難しくなるのです。

UserService のような曖昧な名前は、プログラミングにおける "any" 型のようなものです。何でも受け入れてしまいます。精密な名前は、境界線を作り出します。

AIの登場により、このことは以前よりも重要になっています。

AIコーディングエージェントは、新しいロジックをどこに配置するかを決めるために、既存のコードを参照します。もしAIに UserService を渡すと、AIはその同じ乱雑なクラスに新しい機能を追加してしまいます。しかも、それを非常に高速に行います。

もしAIに PasswordResetter を渡せば、AIはその特定の境界内に留まってくれます。

あなたのコードベースは、AIに対するプロンプトです。曖昧な名前は、曖昧な設計を学習させてしまいます。

名前が優れたアーキテクチャを作るわけではありません。名前は、悪いアーキテクチャを可視化するのです。

すべての責務に対して、無関係なコードが不誠実に見えるほど精密な名前を与えてください。

Source: https://dev.to/caeus/one-simple-naming-trick-that-keeps-vibe-coded-code-from-rotting-5hf5

Optional learning community: https://t.me/GyaanSetuAi