2017-01-05 10 views
0

これは私が最近働いているレガシーコードで直面した単純なベストプラクティスの問題です。私はこの特定の問題のために良い基準を見つけることができませんでした。なぜなら、これを達成するための複数の方法があるからです。しかし、これを達成する最も効果的な方法を知りたいと思います。以下は私の発見の一部を作成したもので、同様の参照を持つ異なる内容の名前を付ける最も良い方法は他の人に意見を求めたいと考えています。類似した参照(例:文字列とバイト)の名前を付けるベストプラクティス

例1

String name = "Thushara"; 
byte[] nameByte = toBytes(name); 

例2

String nameStr = "Thushara"; 
byte[] nameByte = toBytes(nameStr); 

例3

String strName = "Thushara"; 
byte[] byteName = toBytes(strName); 

IがWILを知りますこれを達成するための標準ではありません。したがって、これを私が知らない保守性やその他の視点で行う最良の方法を知りたいと思います。


更新

  • これまでのところ、ベストソリューション
String name = "Thushara"; 
byte[] nameBytes = toBytes(name); 
+1

私は最後に 's'で配列名を付けたいので、' nameBytes'となるでしょう – 4castle

+1

最後に 'z'で配列名を付けたいので、この投稿を閉じて投票しています*主に意見ベース* –

+1

変数のスコープは異なりますか?たとえば、文字列がクラスレベルのメンバであるがバイト配列がクラスのメソッドに対してローカルである場合、直感的な名前(この場合は 'name')をより重要なメンバ(文字列より重要なローカル変数には、より分かりやすい名前( 'nameBytes'のようなもの)を与えてください。私はまた、 "名前"が文字列であるという考えに基づいて同じ提案をするでしょう。そのため、文字列は 'name'としてより適切に記述されますが、バイト配列はその概念の変更表現であり、その( 'nameBytes')。 – David

答えて

1

最高PRACTそのような決定から逃れることです。

同じエンティティを表す異なるタイプのオブジェクトの名前を変更する必要がある場合は、コードを再考する必要があります。ほとんどの場合、設計上の問題があります。なぜあなたは両方を同じ範囲で必要としていますか?別のメソッド/クラスにbyte[]が必要なロジックを抽出できませんか?あなたは多型を使ってそれを解決できますか?あなたは単に電話をインラインにすることができますか?

一般的なルールは、あなたが持っているドメインモデルに近い名前の変数です。 byteNameには貴重な情報は含まれておらず、何かが間違っていると伝えるべきです。

唯一の例外は単体テストです。明らかに、toBytes()メソッドの単体テストを書くと、この問題に直面します。しかし、この場合でも、あなたは、オブジェクトinputoutputexpectedactualに名前を付けることができますなど

あなたはこの質問に考えてたら、あなたはこのを取り除く方法についてのアイデアが付属しています。