
項目名にこだわる
2022年09月06日 大橋 可也
開発手法
項目名の重要性
私たちが開発するシステムでは、業務に用いられる項目をDBや画面、帳票の項目として用います。
項目の名称の定義が不十分な場合、ユーザーと開発者間の仕様の齟齬が生じ、プログラムレベルのバグの原因ともなります。
特にアクアが得意とするGeneXusの開発においては、項目名を厳密に定義することによって、効率よく高い品質のシステムを開発することができます。
アクアでは、項目名にこだわった開発を進めています。
項目名整理のポイント
項目名を整理する際は、以下の点に注意します。
- 業務で用いられる用語を整理、統一する。
- 意味と名前を一致させる。
- 同音異義語は用いない。
- 略語は極力用いない。
項目名の命名ルール
以下のルールにしたがって、項目名を定義します。
サブジェクト+修飾語+属性
- サブジェクト
- 項目が属する業務データを表します。
- システムが扱う業務に依存します。
- DBのテーブル名の候補になります。
- 修飾語
- 項目の意味を表し、項目を特定するための任意の単語です。
- 必要に応じて複数の修飾語を用います。
- 省略する場合もあります。
- 属性
- 項目の型や特性を表します。
- 特定の業務に依存しません。
属性の例
代表的な属性には以下のものがあります。
- ID
- データを一意に特定する項目
- システムが自動採番する
- コード
- データを論理的に特定する項目
- ユーザーが任意に付与する、または、特定のルールに基づいて採番する
- 名
- 名称を表す項目
- 区分
- システム上の分類、振る舞いを決定する項目
- 種別
- 区分に似た特性を持つが、データ発生時点から変更されることない項目
- ステータス
- データの状態を表す項目
- フラグ
- 真偽値を表す項目
- 項目名が真の状態を表す
- 例)
- 「有効フラグ」は値が真のとき、有効
- 「無効フラグ」は値が真のとき、無効
- 例)
項目名の例
得意先の担当者の名称を表す項目の場合
- サブジェクト=得意先
- 修飾語=担当者
- 属性=名
項目名は「得意先担当者名」となります。
物理名
項目の物理名(テーブルの項目名、プログラムの変数名)は、システムの特性に応じて、英語とするか、日本語(ローマ字)とするか決定します。
上記の例で物理名を英語とした場合、「customer_officer_name」とすることが考えられます。
物理名に関して、以下の点に注意が必要です。
- 単語ごとに物理名との対応関係を整理し、同じ単語で異なる物理名を使用しないようにします。
- 物理名に英語を用いる場合、物理名を考慮した単語の区切りになるよう項目名を定義します。
- 物理名の区切り文字を統一します。
- 「_」(アンダースコア)を用いることが多い。
項目名の管理、システムへの反映
定義した項目名は、システムごとに作成する「データ項目辞書」を用いて一元的に管理します。
アクアでは「データ項目辞書」からGeneXusあるいは他の言語へ、システム(DB項目等)に反映させるためにツールを用いており、管理している内容とシステムの実装に乖離がない開発を実現しています。
項目名の管理にあたっては、管理する仕組みとシステムへ反映させる仕組み、両方を整備しておく必要があります。
項目名に関する考え方に対応した仕組みを持っていることが、アクアの強みと言えるでしょう。