DBPO代码规范.docx
《DBPO代码规范.docx》由会员分享,可在线阅读,更多相关《DBPO代码规范.docx(23页珍藏版)》请在冰豆网上搜索。
DBPO代码规范
FTIプロジェクトコーディング仕様書
タイプ:
A–Add(追加),M–Modify(修正),D–Delete(削除)
日付
バージョン
タイプ
担当者
2010-5-16
1.0
A
Deiva
2010-6-12
1.1
M
Deiva
1DBコーディング(SQL)
テーブル(Table)
1)テーブルを英語フォントの小文字で、下線で繋いで命名する。
(project_module_item)
例えば、プラットホームにてのシステム・アカウント・テーブルplf_sys_accountの場合は、
名
メモ
plf
プラットホームモジュール或はプロジェクトに属す。
sys
システムモジュールに属す。
account
ストアする場所。
2つ又はそれ以上のモジュールがあれば、命名は、project_module1_module2_itemだ。
2)テーブル間の関係
カラム(Column)
1)カラムの命名は、英語の単語でカラムの意味を一見ですぐ分かるようにする。
(数字、符号、スペース、中国語、ピンインなどの文字が禁止)。
例えば、クライエントの名前というカラムは、ClientNameと命名する。
2)パブリックに定義したカラムの命名
名
カラム名
ソートID(SortingID)
SortId或はTypeId
ソートネーム(SortName)
SortName或はTypeName
親ID(Parent’ID)
ParentId(ツリーディレクトリのテーブル構造に使用)
並び順ID(OrderingID)
OrderId
時間の追加
AddDateTime
時間の更新
UpdateDateTime
時間の最後更新
LastDateTime
有効期日
ValidDateTime
オーバー期日
ExpireDateTime
訪問回数
Hits(クリック回数を記録)
メッセージ(内容)タイトル
Title
テーマ
Subject
メッセージ詳細
Content(Titleとツインで)
訪問するIP
ClientIP
審査状態ID
ConfirmId
サムネイルアドレス
ThumbSrc
単一アタッチメントアドレス
AttachmentSrc
単一アタッチメント名称
AttachmentName
ファイルアドレス
FileSrc
ファイル名
FileName
外部リンクアドレス
LinkUrl
有効するか(アクティブにする)
IsActivity
BOOLフィールド
boolen
フィールドは、必ずIsが先頭、例えば
表示するかIsShow;
トップに置くかIsTop;
返事するかIsReply;
リードしたかIsRead
プライマリー・キー(PrimaryKey)
INT
DBで自動的に増加する。
String(Varchar)
バリューのフォーマットは、yyyyMMddHHmmssfff+IP(Host)+QueueIdで、全部で38digitだ。
名
メモ
yyyyMMddHHmmssfff
カレントシステムのDateとTime、ミリセカンドも含まれ、全部で17digitだ。
yyyy–年は4digit
MM–月は2digit
dd–日は2digit
HH–時は2digit
mm–分は2digit
ss–秒は2digit
fff–ミリ秒は3digit
IP(Host)
カレントマシンが使用しているIPは、V4で、全部で12digit。
中には「.」がないこと。
例えば、IPは、172.31.9.1で、バリューは172031009001べきだ。
QueueId
カレントマシンのキュー・ライン番号(或はIP)は、データごとの開始処で再計算すべきで、全部で9digitだ。
itshouldbere-calculatedatbeginningofeachdate.0000000001から開始する。
Index
デフォルトは、システムに定義されたものだ。
プロシージャ(Procedure)
1)プレフィックスネーム(prefixname)+マスタネーム(maintable)+アクション(action)で命名する。
ルールは、p_project_module_item_actionのようだ。
例えば、プラットホームにてのシステム・アカウント・テーブルへの更新アクションの場合は、p_plf_sys_account_updateで命名する。
名
メモ
p
プレフィックスネーム。
プロシージャのことだ。
plf_sys_account
このプロシージャのマスタテーブルの名。
update
アクション。
アクションのコードは、
アクションコード
メモ
update
insert
delete
count
Calculatesometables
2)DBにて定義された全てのキーワードは、大文字で、SELECT,UPDATE,DELETE,IN,NOT,LIKE,AND,OR,ASC,DESC,ORDER,BY等のようだ。
3)英語でパラメータに命名する。
頭文字を大文字にする。
例えば、
4)実行するSQLへのコメント
5)実行するSQLへのフォーマット化
ビュー(View)
プレフィックスネーム(prefixname)+マスタネーム(maintable)+アクション(action)で命名する。
ルールは、v_project_module_item_actionのようだ。
例えば、プラットホームにてのシステム・アカウント・テーブルの関連バリューをリストしようとする場合は、v_plf_sys_account_listで命名する。
名
メモ
v
プレフィックスネーム。
ビューのことだ。
plf_sys_account
このプロシージャのマスタテーブルの名。
list
アクション
トリガー(Trigger)
プレフィックスネーム(prefixname)+テーブルネーム(tablename)+トリガー(trigger)で命名する。
ルールは、g_project_module_item_triggerのようだ。
1つのテーブルには、1つのトリガーしかない。
SQLコーディング
1)DBにて定義された全てのキーワードは、大文字で、SELECT,UPDATE,DELETE,SET,IN,NOT,LIKE,AND,OR,ASC,DESC,ORDER,BY等のようだ。
例えば、
2)「=」でバリューをセットする場合には、「=」の両辺ごとには、1つのスペースが必要だ。
3)「0」或は「1」で、ブールカラム(BooleanColumn)にバリューをセットする。
例えば、
2ページ コーディング(PageCoding)
HTMLページ、ASPXページ、JSファイル、CSSファイルのためだ。
ファイル フォルダ(FileFolder)
ProjectModuleTable のようなパスでフォルダに命名する。
ASPXファイルネーム(ASPXFileName)
英語で命名する。
頭文字を大文字にする。
ファイルページ
ルール
サンプル
データリストページ
DataListingPage
MainTable+s+.aspx
Accounts.aspx
データディテールページDataDetailPage
MainTable+Info+.aspx
AccountInfo.aspx
データインサート或はアップデートページ
DataorUpdatePage
MainTable+Act+.aspx
AccountAct.aspx
データインサートページ
DataInsertPage
MainTable+Add+.aspx
AccountAdd.aspx
データアップデートページ
DataUpdatePage
MainTable+Edit+.aspx
AccountEdit.aspx
データデリートページ
DataDeletePage
MainTable+Delete+.aspx
AccountDelete.aspx
データオーダーページ
DataOrderPage
MainTable+Order+.aspx
AccountOrder.aspx
データベリファイページ
DataValidatePage
MainTable+Checker+.aspx
AccountChecker.aspx
データピックアップページ
DataPickupPage
MainTable+Picker+.aspx
AccountPicker.aspx
データ非同期ロードページ
DataSYNCLoadPage
MainTable+Loader+.aspx
AccountLoader.aspx
コントロールネーム(ControlName)
プレフィックスネーム(小文字)+カラムネーム(或はアクションネーム)でページ内のコントロールごとに命名する。
「カラムネーム」は、自分のカラムにセーブするインプットボックスのバリューだ。
ControlType
Prefixname
input(text)
textarea
asp:
TextBox
tb
Input(check,radio)
cb
select
asp:
DropDownList
dd
asp:
Label
lb
Hiddencontrol
hd
例えば、
多数のコントロールは、「/>」でコントロールをエンドする。
例えば、
(正しくないサンプル)
(正しいサンプル)
HTMLコンテンツ(HTMLContent)
全てのHTMLコードは、小文字だ。
1)
の後ろにある、HTMLの一番目のエレメントは、インデントしないこと。
2)親とサブの関係があるエレメントは、[Tab](キーボードの「Tab」キー)でインデントする。
例えば、
,,。 | に、ただ1つのエレメントしかないなら、一行にする。全部Tabでのインデントが必要だ。 | に、ただ1つのエレメント(一種類の文字或は、1つのHTMLラベル)だったら、直接 | で終わる。3) Javaスクリプト(JavaScript) 全てのスクリプトブログは、[type]プロパティを宣言すべきだ。 [text/javascript]のようだ。 関数又は、メソッドの後ろに「{」を置く。 Toreferenceordeclaresomestrings,ituses''(singlequotes),nottouses""(doublequotationmarks).文字列を参照或は宣言する時、シングルクオートだけ使え、ダブルクオートが使ってはいけない。 3CSコーディング(CSCoding) システム開発は、3つのレイヤー構造に従うべきだ。 UI、BLLとDALだ。 構造は、 UI-ページ(UI-Pages) 1)ファイルネームのルールは、ASPXのと同じです。 2) .NETシステムが持っている参照は前に、非.NETシステムの参照は後ろに、最後は第三者参照です。 A-Z順序で並べること。 プログラムで使用していない参照はUsing部分に出てはいけません。 Using参照とプロジェクトの名前空間の間は一行空くこと。 3)名前空間、クラスとメソッドの名前は、英語の単語を使って、頭文字は大文字で命名します。 ファンクションの意味を易しく理解できるためです。 4)HTMLにより、データをバックグラウンドプログラムへバックさせます。 こそにより、データを差し出します。 ButtonID="btnSubmit"runat="server"/>ではない。 だから、ページCSコードは以下のようにです。 PageHttpPostBack()というメソッドを使って、バックしたデータをプロセスします。 5)ページCSコードにASP.netコントロールを宣言します。 ASPXページには、 TextBoxid="tbParamAppSettingTypeId"runat="server"/> TextBoxid="tbItemKey"class="tbItemKey"runat="server"/> StaffPickerID="tbStaffPicker"runat="server"/> CSページには、 (全てのASP.netコントロールは、protected且つfullNameSpaceに宣言すべきです。 ) UI-コントロール(UI-Controls) 1)ファイルネームのルールは、MainTable+ValueType+ControlType+.cs. 2)ValueTypeは、ある時は使いません、ある時は要求によって使います。 3)ControlTypeは、下記のように宣言します。 ControlType Prefixname Default継承 List 全てのデータをリストします。 pagerbarが使いません。 Repeater SingleList 一部のデータをリストします。 pagerbarが使いません。 Repeater PagerList pagerbarを使ってデータをリストします。 BaseDataList Dropdown DropDownListcontrolを実施します(select) DropdownBase CheckBox CheckBoxcontrolを実施します(type=”check”). CheckBox Name column’snameを表示します。 例えばSortName. Literal Inherit BelongsTo Repeater System.Web.UI.WebControls.Repeater BaseDataList LT.Components.Web.Controls.BaseDataList CheckBox System.Web.UI.WebControls.CheckBox Literal System.Web.UI.WebControls.Literal (サンプル1、pagerlistingを取るため、ifinheritfromBaseDataListから継承すれば、OnLoadのオーバーライドが必要はありません。 ) (サンプル2、listingを取るために、repeaterのみから継承されば、OnLoadのオーバーライドが必要です) BLL 1)ファイルネームのルールは、MainTable+.csです。 2)普通は、staticclassと定義されます。 3)全てのシステムのロジックは、ここで実施します。 4)標準化メソッドは、この名前はIDAL、DALと同じべきです。 MethodName Memo GetPagerList pagerbarを使い、データを取ります。 IList<>でアウトプットします。 GetDictionary ディクショナリからデータを取ります。 GetList GetSingleList GetSingle このオブジェクトの一行データを取ります。 Get「内容」 多数種類のデータを取ります。 例えば、ネーム(GetName). Insert Update Delete Order データを再orderします。 IsExist 多数種類のデータが存在するかをチェックします。 IDAL 1)ファイルネームのルールは、I+MainTable+.csです。 2)Classは、インタフェースで飾るべきです。 Model 1)ファイルネームのルールは、MainTable+Model+.csです。 2)GETとSETだけ実行されます。 DAL 1)ファイルネームのルールは、MainTable+DAL+.csです。 2)何のロジックも含んではいけなくて、DBからデータのリードとDBへのアップデートだけです。 Other 1)パラメータのネーム a)グローバルパラメータ publicと宣言し、頭文字を大文字にします。 proectedと宣言し、頭文字を小文字にします。 privateと宣言し、m_+小文字の頭文字の形です。 b)メソッドにての内部パラメータ。 頭文字が小文字です。 2)if、for、foreach、while コードが一行だけあっても、「{}」ブロックで括る必要があります。 3)Boolean型パラメータは、リテラルには必ずtrueとfalseの2つがあって、Yes/No又は1/0ではありません。 4)「Length」により、エンプティかどうかをチェックします。 5)Delegate 6)thread. 4言語パッケージ(LanguagePackage) システムが全ての言語パッケージを1つのテーブルに格納すべきです。 テーブルが下記のような型となります。 ParamLanguageId zh_ch en_us ja_jp pub_lbl_identity 主键 Identity 主キー pub_btn_save 保存 Save 保存 システムが主キーにより、言語値をDBから取ります。 言語主キーの定義されるルールは、project_type_itemです。 例えば、あるリスティングページにて、トランザクションのバーコードの場合は、主キーはtrans_lbl_barcodeとすます。 「project」の定義されたコードは、下記のようになります。 Project Code public Ifwoulduseinanyothermodules pub Platform plf Transaction trans StaffManagement sm 「Type」の定義されたコードは、下記のようになります。 Type Memo lbl ラベル。 テキストの表示用 btn ボタン msg メッセージ。 警告メッセージ或は、ページのタイトルのため menu メニューのナビゲーション 「Type」の定義されたコードは、 英語のワードで言語の意味を定義します。 複数ワードがある場合には、一番目のワードは小文字にして、次のワードが頭文字を大文字にします。 例を挙げては、pub_msg_inputNotEmptyのようです。 5ProgramRemark 全てのプログラムのremarkの意味を定義する用のものです。 プロシージャもSQLもCSコードとJSコードも。 Name Memo ADD プロジェクトロケーションも含まれてファイルネーム 02 この操作、ファンクションに関する記述 03 このファイルの操作者 04 このファイルの操作日 05 このファイルのカレントのバージョン。 フォーマットは、yyyyMMdd-01です。 yyyyMMdd–カレントの日付 01–ある日のキュー番号 06 関連するモジュール 07 00 コードに初めて入れたコメント MOD 修正に関しての初めてのメモ ファイルの開始部分 これは、ASPXファイルとCSコーディングファイルとJSコーディング向けるだけです。 この3つが主な情報を宣言する用で、修正の詳細が含まれません。 フォーマットは下記のようです。 /*************************************************************************** *FL#: WF0010001 *VER: 1.00 *REF: CM0020004 *ADD: --------------------------------------------------------------------- *DES: thedescriptionofthisfunction *ATU: theauthor(whooperatesthisfile) *DTE: whenoperatesthisfile(yyyy-MM-dd) *VER: thecurrentversionofthisfile(yyyyMMdd-01) ***************************************************************************/ 1)ASPXファイルには、「<%%>」でメモを括ります。 2)CSファイルをJSファイルには、「/**/」でメモを括ります。 メソッド又はプロシージャのヘッダ サンプル1 /* *ADD: --------------------------------------------------------------------- *DES: thedescriptionofthisfunction *ATU: theauthor(whooperatesthisfile) *DTE: whenoperatesthisfile(yyyy-MM-dd) *VER: 1.00 *MOD: --------------------------------------------------------------------- *DES: thedescriptionofthisfunction *ATU: theauthor(whooperatesthisfile) *DTE: whenoperatesthisfile(yyyy-MM-dd) *VER: 1.01 *
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
-
DBPO
代码
规范
冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
|