C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 業務アプリでの命名のコツ


(過去ログ 127 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■75424 / inTopicNo.1)  業務アプリでの命名のコツ
  
□投稿者/ ainax (20回)-(2015/03/24(Tue) 10:58:54)

分類:[設計/仕様] 

C# VS2013 Community

お世話になります。

業務アプリケーションでの命名について悩んでおります。

英語に訳しにくい単語は基本ローマ字で書いているのですが、
例えば 「日付別得意先別納品先別バラ商品の集計」 を処理する
関数名などはどのような命名がいいのでしょうか?

TotalItemByNouhinsakiByTokuisakiByDate とか考えるのですが
英語とローマ字が混ざっていることや、関数名が長いこと等が気になってしまいます。
(そもそもTotal?それともAggregate?
バラ商品が Item だと、セット商品は Items ?いや何か違う。
とか考えているとどんどん時間が…)

なにかうまい解決法などをアドバイス頂けないでしょうか?

現在考えているのは、

・ローマ字英語混在は気にしない
・関数名が長くなっても仕方ないと割り切る
・つけた名前が間違っていても途中で直さない
・バラ商品を Item と名付けて、セット商品が Product という名前でも気にしない
・バラ商品:Item、セット商品:Product、・・・という対応表を作る

というぐらいしか思いつきません。

よろしくお願い致します。




引用返信 編集キー/
■75425 / inTopicNo.2)  Re[1]: 業務アプリでの命名のコツ
□投稿者/ Hongliang (298回)-(2015/03/24(Tue) 11:24:49)
そこまで複雑ならもう漢字表記で良いんじゃないですかね。
GetとかSearchとかの動詞だけ先頭につけて。
海外展開とかは考えなくて良さそうだし。
引用返信 編集キー/
■75426 / inTopicNo.3)  Re[2]: 業務アプリでの命名のコツ
□投稿者/ ainax (21回)-(2015/03/24(Tue) 11:47:53)
No75425 (Hongliang さん) に返信
ご返信ありがとうございます。

> そこまで複雑ならもう漢字表記で良いんじゃないですかね。
漢字表記は以前から気になっていました。

ちょっと真剣に考えて見ようかと思います。

命名を考えるのもさることながら、命名したものを読み解くのも大変なので・・・

海外展開は大丈夫です。
社内の専用プログラムですし、しかも1人で組んでますので好きにし放題。
好きにし放題なので、荒れ放題でもあるのですが・・・
(設計できるようになりたいデス・・・)
引用返信 編集キー/
■75427 / inTopicNo.4)  Re[3]: 業務アプリでの命名のコツ
□投稿者/ WebSurfer (533回)-(2015/03/24(Tue) 12:05:41)
No75426 (ainax さん) に返信

> 社内の専用プログラムですし、しかも1人で組んでますので好きにし放題。

今は開発・保守すべてが個人プレーでも、将来は組織として複数の人間が
開発・保守に当たる可能性があるから悩んでいると理解してレスします。
(そうでなければ悩む必要はなさそうですし、ここで聞く必要もなさそう
ですので)

まず、そもそもの日本語での命名ですが、それにしたって(後から保守な
どをする)第三者から見れば正確な意味は分からないです。

> 「日付別得意先別納品先別バラ商品の集計」

とありますが、私のような第三者から見れば「日付」「得意先」「納品先」
「バラ商品」「集計」の正確な意味は分かりません。(日付って何の日付?
集計って何を集計したの? って感じです)

質問者さんが意味が分かるもしくは用が足りているということは、質問者
さんの組織内での決め事とか、明示的にはそういうものはなくても暗黙の
了解とかがあるからではないですか?

とすると、まず日本語の命名規則を作り、次にそれを英語に変換するルール
を作って文書化する必要がありそうな気がします。

バラ商品を Items セット商品を Products と名付けるなら組織内でそう決
めて変換表でも作れば、少なくとも組織内では通用すると思いますが。

引用返信 編集キー/
■75428 / inTopicNo.5)  Re[3]: 業務アプリでの命名のコツ
□投稿者/ WebSurfer (534回)-(2015/03/24(Tue) 12:10:46)
【追伸】

No75426 (ainax さん) に返信

今思い出しましたが、ainax さんは以前別スレッドで ASP.NET MVC アプリで
モデルのプロパティ名を日本語化することに関して質問された方ではないで
すか?

であれば、そのとき私がレスした副作用の話(言語仕様上許されているからと
言って安易に使うと思わぬ副作用がありそうという話)は覚えておられるでし
ょうか?


引用返信 編集キー/
■75429 / inTopicNo.6)  Re[4]: 業務アプリでの命名のコツ
□投稿者/ hihijiji (1回)-(2015/03/24(Tue) 13:16:25)
私も似たような立場で、ainax さんと似たような物を書いてるかも知れません。
気持ちがよくわかる気がします。

そこで オレオレルールを晒します。

名前空間、クラス、メソッドは英語 その他はプロジェクト内で英語か日本語か統一する
命名は3文節以内が理想、5文節以内に抑える
命名より、XML Document を充実させる
エセ英語もOK ただし public な物は恥ずかしいから気を付ける
後任者が現れたときカッコ悪いからローマ字は使わない

拡張メソッドだとこんな感じで、
public static IEnumerable<DailyItem> GetDailyItems(this IEnumerable<Shipment> shipments)
{…}
さすがに DailyItemクラスは短すぎかもしれませんが、かぶらなければOK位の気持ちで十分だと思います。
引用返信 編集キー/
■75431 / inTopicNo.7)  Re[4]: 業務アプリでの命名のコツ
□投稿者/ ainax (22回)-(2015/03/24(Tue) 19:57:05)
お返事ありがとうございます。

WebSurfer 様
> 開発・保守すべてが個人プレーでも、将来は
これについては、将来も個人での開発になると思います。
個人での開発を通して、変数やメソッド・クラス名等の命名についての問題と
思っていただけるとありがたいです。

>日本語の命名規則を作り、次にそれを英語に変換するルール
> を作って文書化する
これは確かにそうですね。いままでは場当たり的にその時の直感で
命名しておりましたので、同じ意味の言葉でも別の単語を使ったりしています。
(受注→Juchu・Order)
これは直さないといけないなと痛感しております。

> モデルのプロパティ名を日本語化することに関して質問された方ではないで
> すか?
そうです。その節はお世話になりました。
今回の件に関しては、すみません、開発環境に書き漏れているのですが
Windows Form アプリケーションになります。
前回お聞きした副作用の件は Asp.net 依存の件だったと思っていまして、
また、Windows Form アプリでも同様な副作用があったとしても
それ以上のメリットを得られるのでは、と思い漢字の利用を考えています。

hihijiji 様
オレオレルールありがとうございます。

オレオレルール…使いこなせるかなぁ。
適用するとしたら、日英対応表に、日付別得意先別納品先別バラ商品 = TotalA として
TotalAForm に TotalADataGirdView とか感じになるのかな。
Xml Document については、そうですね。充実していきたいと思います。
今は手抜きで単にコメントで 1 〜 2 行で説明文を入れているだけなので。

WebSurfer様、hihijiji様ともにやはりルールの策定は必要ですよね。
なんとか守れるルール策定を考えて見たいと思います。

引用返信 編集キー/
■75472 / inTopicNo.8)  Re[5]: 業務アプリでの命名のコツ
□投稿者/ ふるふる (4回)-(2015/03/27(Fri) 14:17:21)
>「日付別得意先別納品先別バラ商品の集計」
これは、(1) バラ商品を集計する (2) バラ商品は日付別である (3)バラ商品は得意先別である。(4)バラ商品は納品先別である。
をまとめたものではないでしょうか?
すると、やることは「バラ商品の集計」であって、(2)〜(4)はその集計に対する修飾ですよね。
であるなら(2)〜(4)のような修飾部分は引数の中で指定することではないか、と思います。
ということで関数名としては
TotalBulkItems
かな?
何の集計かわかりませんがたとえば
Currency TotalBulkItems(Date d, Customer cust,Delivery deliv)
みたいな。


引用返信 編集キー/
■75498 / inTopicNo.9)  Re[6]: 業務アプリでの命名のコツ
□投稿者/ ainax (23回)-(2015/03/31(Tue) 09:04:18)
No75472 (ふるふる さん) に返信
返信が遅れてしまって申し訳ありません。

ふるふる様、ご返信ありがとうございます。
> Currency TotalBulkItems(Date d, Customer cust,Delivery deliv)

この考え方はすごいですね。
日付、得意先、納品先を修飾とし、それを引数で表すとは思いつきませんでした。
これですと、修飾にバリエーションが出ても関数名は同一でも引数を変えることで
表現できますね!
(言われてみると「これしかない」というような実装ですね。なぜ思いつかなかったのか・・・)


とりあえずこの先は
1.俺ルール策定
2.日本語命名メソッドの実験
3.名詞等の変換ルールも試す
4.ふるふるさんの言われた引数の活用を意識する

その他ほかのサイトにてメソッド命名には名詞・動詞を意識しようと
あったので、これも考えていこうかと思います。
http://qiita.com/jnchito/items/459d58ba652bf4763820

ひとまずここで解決済みとさせて頂きたいと思います。
いろいろなご意見ありがとうございました。






解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -