• ベストアンサー

命名規約は連番でいいのか?

私はWeb開発者です。 下請け開発の場合に必ず命名規約に疑問を感じます。 原因は「ソースファイル名や画面名、テーブル名などに連番をつける」命名規約が多いからです。 自社で開発する場合は連番は使いません。 連番を付ける理由はいくつか考えられますが、どれも全て単なる慣習としてしか見えないのです。 ・COBOL時代にそうしていた ・管理がしやすい。(Excelで扱いやすい) 連番ではなく、各ソースの役割で命名するほうが、理にかなっていると思います。 1、他に理由があれば教えてください。 2、大規模なシステムでも連番では命名したりしないよ、という実例をご存知の方は教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>2、大規模なシステムでも連番では命名したりしないよ、という実例をご存知の方は教えてください。 大規模とはどの程度なのか定義が不明確ですが、とりあえず、万人月越え・億以上規模と考えることにします。万人月越えのPJは今まで3つ経験しましたが、3つともどこかしらに連番を採用でした。 しかし、現在かかわっているPJも万人月越え見通しですが、ここでは連番は使用していません。このPJではサブシステムごとにJarに分割されていて、ソース管理は比較的よく管理されていると思います。しかし、開発ツールにエクリプスを使用しているのですが、コードアシストでクラスを検索する際に、他のサブシステムとぶつかり同名のファイルが複数存在するので、少しだけ戸惑います。 あと種類ごとに分けるとこんな感じです 画面系:ほとんどが連番採用 ビジネスロジック:連番採用例あり DBアクセス:連番採用例なし 私もNo3さんとそれほど大きく変わる規模の会社ではないのですけどね…。いろいろあるのでしょうか。 ちなみに社員数700で、ユーザー系システム会社ということもあって自社請けも4割くらいありますが、私の部は8割が大手SIerからのおこぼれです。

drdr
質問者

お礼

画面系が連番採用、というのはどういう理由なのでしょうか?非常に参考になります。DB系はやはり意味を重視するのですね。

その他の回答 (3)

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.3

連番のクラス名を使うという話は、雑誌等で呼んだことはありますが、私の周りでは本当にそうしているという話は聞いたことがないですねぇ。みんなクラスの役割で名前を付けています。 (ちなみに私は主に大手SIerから一次請け開発する社員数300人程度の会社の者です。) ところで連番をつけるって言うのは、PKG0012みたいに連番だけなんですか?それともEmployeeManager003のように、役割をあらわす名前に連番を付加するのですか? 後者であれば、クラス名から役割も推測できるので、管理上連番も必要であれば仕方ないと思いますが、もし前者だとクラス名から役割が全くわからないので、困りますね。

drdr
質問者

お礼

PKG0012とか、そういう連番です。 役割は全く分からないんです。。。しばらく経つと忘れるから、仕様書見て思い出して、の繰り返しです。

回答No.2

私も何年か前にそういう議論をした覚えがあります。 大規模なシステム開発の際、収拾がつかなくなるため、効率を重視して連番を使用することが多いですね。理由としてはやはり「管理がしやすい」ということだと思いますが、それは非常に重要なことだと思います。 ソースを触る人間が、PG作成・保守・拡張開発とフェーズが変わるごとに変わるのであれば、管理のしやすさを重視するほうが理にかなっているといえると思います。また、処理の流れと管理番号の増加が一致していると何かと直感的にもわかりますから。また処理の流れに沿ってソースをソートできるということも大きなメリットです。 あと、両者の違いはプログラムの質を重視する考え方と、システム全体の質を重視する考え方の違いでもあるのではないかと思います。 sunが推奨する命名規則でも「名詞にしろ」といっているし(あ、Javaを前提に書いてます)、プログラム単体で見た場合、意味のある名前にしたほうが理にかなっていると思えます。 しかし、数百、数千もしくはそれ以上の単位のシステムの場合、同名のクラス名のものも出現するし、それを防ぐために後から作るクラス名が無茶な名称になってしまうこともあると思います。ので、命名に間違いが無く均一な質で作れる記号連番を採用することが多いのだと思います。 DAOは連番にはしないけど…

drdr
質問者

お礼

arakororinさんのように理解したうえで連番を採用されているのならいいのですが、、、。連番にするときは、DAOであろうがなんであろうが、全て連番にしろ、というのが多いです。 私としては間をとって、サブシステム単位の接頭辞をつけるようにしたいのですが。。。

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.1

COBOLっていうか、IBM360/370のコンパイラ、リンカのシンボルテーブルが6文字しか識別しなかったことの名残ですね。 たった6文字の識別子を自由に命名させていたら、名前がぶつかりまくるので連番にしちゃったわけです。 例えばANSI-Cでも外部リンクを持つ識別子は先頭6文字が【保証】されることになっており、言語仕様として保証しているのはいまだに6文字です。 実際には処理系依存で32文字とか64文字なのですが… で、外部シンボルが連番ならファイルも連番だろう(昔のCOBOLやFORTRANは1ファイルに1手続きが基本)ということで、なし崩し的に全ての命名規則が連番になったわけです。 本来は、シンボルがバッティングしなきゃいいわけなんですけどね。 スコープの種類も少なく、ネームスペースの概念もない昔のシステムの規約を守らされるのは嫌気がさします。 一応、発言(提案?)できる立場であれば「開発手法が劇的に進化しているのに対して、管理手法が追いついていない状況はいびつだ。今こそ管理手法を改革するべき!!」と力説しています。 最近では汎用を経験していない人が管理職につくことが多くなってきているので、記号的でない命名が許されることが増えてきています。

drdr
質問者

お礼

なるほど、そういう歴史があるのですね。汎用機が専門の会社からWebの仕事を請けることが多いんです。 汎用を経験していない人が管理職、、、どころか、開発経験0の人が上につくのはウンザリしてます。

関連するQ&A