サービス名を意識しユニークなものにする
.proto ファイル内の service キーワードの後の部分であるサービス名は、サービスのクラス名を生成するだけでなく、驚くほど多くの場所で使用されます。
そのため、この名前は思っている以上に重要です。
厄介なのは、サービス名がネットワーク全体で一意であるという暗黙の仮定をしていることです。
さらに悪いことに、それらが使用するサービス名は、修飾されていないサービス名(たとえば、MyService)であり、修飾されたサービス名(たとえば、my_package.MyService)ではありません。
このため、特定のパッケージ内に定義されている場合でも、サービス名の命名衝突を防ぐための措置を講じるのが理にかなっています。
たとえば、Watcher という名前のサービスは問題を引き起こす可能性が高いため、MyProjectWatcher のような名前の方が適しています。
メッセージには、パッケージ名が付けられるため、メッセージ名はパッケージ内で一意である必要はありません。
冗長性を避けるために、メッセージ名は短く保つことが一般的です。