2011-12-16 10 views
1

タイプ名と有効な名前は省略形の使用を避けることを推奨します。現代のワイドスクリーンモニターを使用していても、ソースラインの幅は80または最大120文字にすることをお勧めします。ここで略称または完全な名前ですか?

は、私たちの本当のprjectからラインです:

final PimAuthoringApplicationMappingReader pimAuthoringApplicationMappingReader = 
     new PimAuthoringApplicationMappingReader(pimAuthoringApplicationMappingFile); 

簡単な新しい操作は、我々は(PIM = ProIntralinkマージ)すでにここ略語を使用しているにもかかわらず、少なくとも2行を占めていました。

このように各単語を理解するのは簡単ですが、単純な方法をはるかに長くして、1つの方法を画面に収めるのが難しくなります。

質問:このケースに対処するより良い方法は何ですか? 「合理的」略語が推奨されていますか?たとえば、

final PimAuthAppMapReader pimAuthAppMapReader=new PimAuthAppMapReader(pimAuthAppMapFile); 

+0

IDEでプロポーショナルフォントを使用しているため、画面全体で約180文字になります。この時点で私はコードをラップします。しかし、Javaコード規約では80文字が示唆されており、大部分の開発者がおそらくこれに従わなくてもこの提案が変わるとは思われません。 –

答えて

3

これはおなじみの問題です。私が取り組んでいるJavaプロジェクトでは、同じ理由で私の頭を傷つけるいくつかのクラスがあります。私はクラス名を短縮する前にローカル変数名を短くしますが、結果が合理的であればクラス名を短縮することに問題はありません。

ローカル変数をその型と同じ名前にするという規則を破ると、これらの場合にかなりのスペースが解放されます。より多くのスペースが必要な場合は、タイプ名も短縮する可能性があります。

あなたの例では、アプリケーションへのアプリケーションを短縮しても問題はありませんが、マッピングのマップを短縮することについては、Javaでは異なる主な意味(最初の関連付け)があるため、

2

私は常に、実装されたクラス(またはインターフェイス)と同じ名前の変数の名前を付けるという奇妙なことを発見しました。短縮名にも同じ。

宣言の文脈でオブジェクトの実際の目的に関する情報を提供しません。複数のものや星がある場合は、接尾辞として数字を使用すると悪化することがよくあります。

代わりに、コンテキスト内のオブジェクトの意図が何であるかを記述する名前を使用します。数か月後にコードを確認すると、より簡単になります。

+0

これは、変数に目的/意図が記述されている場合などに意味があります。文字列string = user.getName();意味がありませんし、String userName = user.getUserName();しかし、変数を使用しているものを記述するクラス名を持つClassを参照する変数がある場合は、次のようになります。User user = new User();変数の名前をクラスと同じにすることは意味があります。 – devo

2

とりわけ、コードはの明瞭度のために努力する必要があります。一般的に、これは、ではなく、を省略することを意味するが、ある場合には、一般的な略語が、の明瞭度を改善することを意味する。しばしば頭字語は綴られていませんが、頭字語の頭文字を維持するのではなく、頭字語を単語として扱うようにしてください。ここ
は、私が話しているかの例です:

HtmlRequest (not HTMLRequest) 
App instead of Application 
XmlProcessr instead of XMLProcessor 
etc 

ページ幅を心配しないでください。読みやすさを心配しています!

+0

ページ幅は自由に変更できません。そうしないと、異なるバージョンを比較してCVSの変更を見つける際に問題が発生します。 – chance

+0

+1の長さより先に明瞭さを置くため –

2

私はクラス名を冗長に保ち、あなたの変数名をより賢明なものに短縮します。

final PimAuthoringApplicationMappingReader pimMappingReader = 
     new PimAuthoringApplicationMappingReader(pimMappingFile); 

あなたのコードを読む人はあなたが

  1. あなたのクラスを定義したときに簡単に変数の型を参照することが可能であることに注意してください:あなたの例を見て私は、これはresonable努力だと思います特定の目的のために
  2. を簡単にあなたの方法をしてください、彼らが使用されているあなたの変数を宣言し

上記の例は、他のタイプが非常に似た名前で定義されていない場合に意味があります。あなたも、同じ方法で起こっている他の多くはありません場合、これはまた、まだ理にかなっていると変数がローカルに何もせずにそれらを読んですることができるので、私はクラス名を短くしないでしょう

final PimAuthoringApplicationMappingReader pimReader = 
     new PimAuthoringApplicationMappingReader(pimFile); 

をスコープと主張している可能性がありコンテキスト(例:APIドキュメント、設定ファイルなど)

しかし、ほとんどの場合、一貫してコードを作成しようとします。スタイルが既に使用されている場合は、誰もがそれを変更することに同意するまで、それに従ってください。

関連する問題