代碼設計規範

代 碼 設 計 規 範html

1、註釋規範 算法

一、自建代碼文件註釋           數組

對於本身建立的代碼文件(如函數、腳本),在文件開頭,通常編寫以下注釋: ide

/************************************************* 函數

做者: 測試

說明: 優化

建立日期: ui

版本號: this

**********************************************/  編碼

二、標準註釋 

在模塊、類、屬性、方法前一行添加註釋,以便調用的時候提示用戶,下以方法聲明作例子:

       ///<summary>

      ///<對該方法的說明>

      ///</summary>

      ///<paramname="<參數名稱>"><參數說明></param>

   ///<returns>

     ///<對方法返回值的說明,該說明必須明確說明返回的值表明什麼含義>

     ///</returns>

三、代碼中的註釋

  代碼間註釋分爲單行註釋和多行註釋:

  單行註釋:

      //<單行註釋>

            

多行註釋:

             /*多行註釋1

            多行註釋2

            多行註釋3*/

         

代碼中遇到語句塊時必須添加註釋(if,for,foreach,……),添加的註釋必須可以說明此語句塊的做用和實現手段(所用算法、循環條件、不一樣分支的意義等等)。

           

         

2、異常處理

一、數據層服務層異常必需要記錄到服務日誌中

try

{ }

catch (DbEntityValidationException ex)

{ throw new SerivceException ("");}

catch (SerivceException ex)

{throw ex; }

catch (Exception ex)

{throw new SerivceException (""); }

二、業務層客戶端異常要記錄在文件中

原則異常msg描述清楚所發生錯誤緣由、關鍵必要的參數,已便於客戶端使用者、測試人員及相關研發人員明白錯誤起因。

3、Web頁面

一、出現超出半屏幕的html標籤時須要加註釋 例:<!-- BEGIN 描述 --> <body></body> <!-- End 描述 -->

         

2Js命名規則

函數: fn 例: fnMethod

事件: on例: eventBeforeSave

三、單行的 IF - ELSE,WHILE 或者 FOR 語句也 必須 加入括號,不過他們能夠這樣寫:

if (condition){ statement; }

while (condition){ statement; }

for (intialization; condition; update){ statement; }

四、

foreach(var item in list){

foreach(var item1 in list){

foreach(var item2 in list){

            }

    }

}

         

3、命名規範

 一、程序集命名、命名空間、類(所有爲中文名)

1)程序集:項目域名+項目名稱+模塊名 例:六月版.供應商.業務層

2)命名空間:六月版.供應商.業務層.單據管理 (業務邏輯後綴'管理')

3)類名:訂單

二、方法命名

1)業務層、服務方法命名

以混合命名法爲主,經常使用動詞單詞+中文詞描述+'_'+精確描述

        Get***        //'獲取***'

        Create***    //'建立***'

        Update***   //'更新***'

        Del***        //'刪除***'

        Save***      //'建立或修改***'

        Fill***         //'填充***'  多用於業務邏輯處理

            Add***         //'添加***' 多用於業務邏輯處理

            Remove***   //'移除***' 多用於業務邏輯處理 

        例:public VM.訂單 Get訂單信息(string 訂單編號)

            public void Update訂單狀態_已出庫(string 訂單編號, string 操做人)

             對於獲取多條記錄的方法名要加以 '集'結尾

            例:public List<VM.訂單> Get訂單信息(string 關鍵字)

  1. Mvc Controllers 方法命名(全英文) 開頭大寫,文件名開頭大寫

    3)     方法參數所有爲中文名,Mvc Controllers方法參數(全英文)//開頭字母小寫

4)        MVC 分佈視圖 _開頭加開頭大寫單詞

三、變量命名

命名空間引用縮寫

業務層: 例:using BS供應商=六月版.供應商.業務層 ;

數據層: 例:using DAO供應商=六月版.供應商.數據層 ;

服務層: 例:using Server供應商=六月版.供應商.服務 ;

視圖模型: 例:using VM供應商=六月版.供應商. 視圖模型

公共類庫: 例:using Comm=DotNet.Common;

變量命名以混合命名法爲主

Sbyte: sbte

Char: chr

Short: sht

Object: obj

Int: int

String: str

Long: lng

DateTime: dte

Byte: bte

IntPtr: intptr

Ushot: usht

臨時變量: tmp

Uint: uint

Guid: g

Ulong: ulng

(s、dao)實體模型: model    

Float: flt

類的私有變量: m

Double: dbl

靜態變量: st

Decimal: dcl

常量: const

Bool: is

全局: p

StringBulider: sb

List:lst

Array: arr

枚舉: e

數組: a

對象來自視圖:vm

 DbContext:db

     

整體原則以中文表示所要表示的內容,以變量類型作爲前綴。變量類型作爲前綴是爲了索引方便,使用中文名是爲了意義容易理解。

注:方法的參數變量命名不使用以上規則,返回值變量使用以上規則

Html命名規則

命名

說明

標準命名舉例

doc

Document

      

wnd

Window

      

frm

Form

      

btn

input type=button

      

ckb

input type=checkbox

      

file

input type=file

      

hid

input type=hidden

      

img

input type=image|img

      

pwd

input type=password

      

rdb

input type=radio

      

rst

input type=rest

      

smt

input type=submit

      

txt

input type=text

      

sel

select

      

tar

textarea

     

Table

tbl

      

         

         

經常使用命名規則

登陸條:loginBar

加入:joinus

主導航:mainNav

標誌:logo

指南:guild

頂導航:topnav

側欄:sidebar

服務:service

邊導航:sidebar

廣告:banner

熱點:hot

左導航:leftsideBar

導航:nav

新聞:news

右導航:rightsideBar

子導航:subNav

下載:download

標語:banner

菜單:menu

註冊:register

菜單內容1:menu1Content

子菜單:subMenu

狀態:status

菜單容量:menuContainer

搜索:search

按鈕:btn

子菜單:submenu

滾動:scroll

投票:vote

邊導航圖標:sidebarIcon

頁面主體:main

合做夥伴:partner

註釋:note

內容:content

版權:copyright

容器:container

標籤頁:tab

外套:wrap

登錄:login

文章列表:list

主導航:mainNav

購物車:shop

提示信息:msg

子導航:subnav

當前的curren

小技巧:tips

商標:label

     

頁腳:footer

整個頁面:content

     

友情連接:friendLink

頁眉:header

     

     

標題:title

     

 定製:Customized

   ID:Id 

    編號:Number

      

     

     

     

4、編碼優化

1.使用String.Compare()字符串比較
不要使用UpperCaseLowerCase轉換字符串的大小寫,再進行比較
使用String.Compare()可忽略字符串大小寫進行比較
String  strTemp = "Active";
If(String.Compare(strTemp,"active",true)==0){
         Consolt.Write("Equal");
}

2.避免在循環體裏聲明變量,應該在循環體外聲明變量,在循環體內初始化變量
//
避免
For(int i=0;i<10;i++){
       SomeClass obj = new SomeClass();
       //…
}
//
推薦
SomeClass obj = null;
For(int i=0; i<10; i++){
       obj = new SomeClass();
       //…
}

3.關於this的使用

this可讓人直接看出來調用的是參數或局部變量,仍是類的成員

3.設計原則

  • 單一職責原則(SRP - 就一個類而言,應該僅有一個引發它變化的緣由
  • -閉原則(OCP- 軟件實體(類,模塊,函數等)應該是能夠擴展的,可是不能夠修改
  • 里氏替換原則(LSP- 子類必須可以替換它們的基類型
  • 依賴倒置原則(DIP- 抽象不該該依賴於細節。細節應該依賴於抽象。
  • 接口隔離原則(ISP- 不該該強迫客戶依賴於它們不用的方法。接口屬於客戶,不屬於它所在的類層次結構。
  • 重用發佈等階原則(REP- 重用的粒度就是發佈的粒度。
  • 共同封閉原則(CCP- 包中的全部類對於同一類性質的變化應該是共同封閉的。一個變化若對一個包產生影響,則將對該包中的全部類產生影響,而對於其餘的包不形成影響。
  • 共同重用原則(CRP-  一個包中全部類應該是共同重用的。若是重用了包中的一個類,那麼就要重用包中的全部類。
  • 無環依賴原則(ADP- 在包的依賴關係圖中不容許存在環。
  • 穩定依賴原則(SDP- 朝着穩定的方向進行依賴。
  • 穩定抽象原則(SAP- 包的抽象程度應該和其穩定程度一致。
  • 合成/聚合複用原則(CARP要儘可能使用合成/聚合,儘可能不要使用繼承

補充:

2014/10/08

關於項目中Id或編號的變量、參數等 命名須要注意結名稱尾要加上 **Id  **編號    例: 商品Id   商品編號

相關文章
相關標籤/搜索