惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
C
Cyber Attacks, Cyber Crime and Cyber Security
The Register - Security
The Register - Security
量子位
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
MyScale Blog
MyScale Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
Jina AI
Jina AI
博客园 - 【当耐特】
P
Palo Alto Networks Blog
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
宝玉的分享
宝玉的分享
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
有赞技术团队
有赞技术团队
T
Tor Project blog
H
Hacker News: Front Page
A
Arctic Wolf
NISL@THU
NISL@THU
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
V
V2EX
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
I
InfoQ
D
Docker
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42

博客园 - WinkSky

索引 This is a test post by Windows Live Writer [提问]升级至SQL2005后续问题讨论. [提问]SQL2005关于点对点事务型映射 李开复:21世纪7种人才最抢手 SQL2000中奇怪的NULL值记录问题[求助] SQL2005常见性能问题排错演示代码[收藏] 上海Oracle高峰会感悟 Microsoft® Visual Studio® .NET™ 2003 Service Pack 1 存储过程编写小工具[收藏] 颜色代码表[转] Gmail的图片签名[收藏] 精妙SQL语句收集[转载] [转载]61条面向对象设计的经验原则 需求工程16字方针 SQL各种写法的效率问题-转载自邹建专栏 SQL2000视图问题[请教] 讨论String与string的区别. 一道终身受用的测试题
ASP.NET(C#) 編碼規範[整理讨论]
WinkSky · 2006-08-07 · via 博客园 - WinkSky

ASP.NET(C#) 編碼規範

[WebFlow Team]

Ver1.0

Author:Scott.Fang

1.     目的

2.     範圍

3.     代碼格式

4.     注釋規範

4.1.        注釋規範

4.2.        原始檔案頭註釋

4.3.        類註釋

4.4.        類屬性註釋

4.5.        方法註釋

4.6.        代碼間註釋

5.     命名規範

5.1.        專案命名

5.2.        檔命名

5.3.        變數命名

5.4.        常量命名

5.5.        類命名

1.       目的

為了統一公司軟體發展的設計過程中關於代碼編寫時的編寫規範和具體開發工作時的編程規範,保證代碼的一致性,便於交流和維護,特制定此規範。

2.       範圍

本規範適用於開發組全體人員,作用於軟體專案開發的代碼編寫階段和後期維護階段。

3.       代碼格式

在編寫代碼過程中,建議遵守以下規則。

1).       縮進規則:使用四個空格作爲每層次代碼縮進。

2).       在括弧對對齊的位置垂直對齊左括弧和右括弧,如:

for (i = 0; i < 100; i++)

{

   ...

}

3).       沿邏輯結構行縮進代碼,如:

If ... Then

   If ... Then

   ...

   Else

   ...

   End If

Else

...

End If

4).       爲了防止在閲讀代碼時左右滾動代碼編輯器,每行代碼或註釋不得超過一個顯示屏。

5).       只要合適,每一行放置的語句避免超過一條。例外:循環。

6).       當一行被分為幾行時,通過將串聯運算符放在每一行的末尾而不是開頭,清楚地表示沒有後面的行是不完整的。

7).       在大多數運算符之前和之後使用空格,這樣做時不會改變代碼的意圖,卻可以使代碼更加容易閲讀。

8).       Case規則: default case總應該存在,如果不允許到達,則應該保證:若到達了就會觸發一個錯誤。Case的選擇條件最好使用intstring類型。

9).       對齊規則: 變數的申明和初始化都應對齊。例如:
int          m_iCount;
float       m_fIncome,m_fPay; 
m_iCount       = 0;
m_fIncome    = 0.3;

4.       注釋規範

4.1.   注釋規範

4.2.   原始檔案頭註釋

建議的原始檔案的註釋示例如下:

//--------------------------------------------------------------------------------------

// Copyright (C) 2005-2006 Inventec Appliances Corporation IS&T/ISD

// All rights reserved.

// FileName:      Search.aspx.cs            <檔案名稱(包括檔擴展名)>

// Author:         姓名(Scott)          <創建者(中文名必須,英文名可寫可不寫)>

// CDT:             2006-06-10           <創建日期(格式:YYYY-MM-DD)>

// Version:        1.0.0.0                <創建版本號(第一次為1.0.0.0)>

// Rewriter:       姓名(Vincent)        <修改者(中文名必須,英文名可寫可不寫)>

// UDT:            2006-06-11           <修改日期(格式:YYYY-MM-DD)>

// Version:        1.0.0.1                <修改後版本號(具體參考版本號定義規則)>

// Depiction:      加班單查詢功能     <簡單描述功能>

//--------------------------------------------------------------------------------------

4.3.   類註釋

使用基於XML///註釋,編譯環境會自動帶出,也方面導出幫助文檔。

///<summary>

/// ClassID:    100              <類編號,可以引用系統設計中的類編號>

/// Depiction: 加班查詢       <對此類的描述,可以引用系統設計中的描述>

/// Author:     姓名(Scott)    <創建者(中文名必須,英文名可寫可不寫)>

/// CDT:        2006-06-11    <創建日期(格式:YYYY-MM-DD)>

///</summary>

如果類只進行部分少量代碼的修改時,則每次修改須添加以下注釋:

/// Rewriter:   姓名(Scott)          Rewriter Date:2006-6-12      Start1:        

/*原代碼內容*/

/// End1:                            

將原代碼內容注釋掉,然後添加新代碼使用以下注釋:

/// Added by:       姓名(Scott)         Add Date:     2006-6-12      Start2       

*代碼內容*       <新代碼內容>

/// Depiction:       <對此修改的描述>

/// End2:   

如果模組輸入輸出參數或功能結構有較大修改,則每次修改必須添加以下注釋:

///<summary>

/// LogID:            1                  <Log編號,1開始一次增加>

/// Depiction:        加班查詢       <對此修改的描述>

/// Rewriter:         姓名(Vincent) <修改者(中文名必須,英文名可寫可不寫)>

/// UDT:              2006-06-12    <創建日期(格式:YYYY-MM-DD)>

///</summary>   

4.4.   類屬性註釋

在類的屬性必須以以下格式編寫屬性注釋:

/// <summary>

/// 厰別資訊  <對此屬性的描述資訊>

/// </summary>

public string Plant 

{

      get

      {

             return this.plant;

      }

      set

      {

             this.plant = value;

      }

}

4.5.   方法註釋

在類的方法聲明前必須以以下格式編寫注釋:

/// <summary>

/// depiction:        獲得加班班別                    <對該方法的說明>

/// </summary>

/// <param input=" SysDate">加班日期          <參數說明></param>

/// <param output="AttendanceClass ">班別   <參數說明></param>

/// <returns>

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

/// </returns>

/// Author:     姓名(Scott)    <創建者(中文名必須,英文名可寫可不寫)>

/// CDT:              2006-06-11    <創建日期(格式:YYYY-MM-DD)>

4.6.   代碼間註釋

代碼間注釋分為單行注釋和多行注釋.

單行注釋:           //     單行注釋

多行注釋:         /*    多行注釋1
                           
多行注釋2
                           
多行注釋3     */   
代碼中遇到語句塊時必須添加注釋(if,for,foreach,……,添加的注釋必須能夠說明此語句塊的作用和實現手段(所用演算法等等).

5.       命名規範

  5.1.  專案命名

專案名稱以Plant+SPM開頭加上英文描述

各厰通用的表單以Plant=IAC,其他以廠區簡稱(IACT,IACS,IACP,IASM)

例如:    IACSPMAddWork         <表示公司名称加班單專案>

IACPSPMPurchase        <表示公司名称浦東厰申購單專案>

  5.2.  檔命

第一版(默認)

FormUse.aspx(FormUse.aspx.cs)

WebForm.asxp(WebForm.asxp.cs)

TaskPane001.aspx(TaskPane001.aspx.cs)

第二版:

FormUse002.aspx(FormUse002.aspx.cs)

WebForm002.asxp(WebForm002.asxp.cs)

TaskPane002.aspx(TaskPane002.aspx.cs)

PS:   WebForm命名為表單英文描述

例如:AddWork.aspx(AddWork.aspx.cs)<表示加班單>

Ø          頁面變流程不變:    無需變更FormUse

Ø          頁面不變流程變:    需要新增FormUse002TaskPane002,而且需要在FormUse002.aspx中替換"TaskPane001""TaskPane002"

  5.3.  變數命名

 ...   

  5.4.  常量命名

常量名也應當有一定的意義,格式為名詞或名詞_動詞。常量名均為大寫,字之間用下劃線分隔。

:  private const bool   WEB_ENABLEPAGECACHE_DEFAULT      = true;

private const int    WEB_CACHEEXPIRESINSECONDS_DEFAULT = 3600;

:

變數名和常量名最多可以包含 255 個字元,但是,超過 25 30 個字元的名稱比較笨拙。此外,要想取一個有實際意義的名稱,清楚地表達變數或常量的用途,25 30 個字元應當足夠了。

  5.5.  類命名

w     名字應該能夠標識事物的特性。

w     名字儘量不使用縮寫,除非它是眾所周知的。

w     名字可以有兩個或三個單詞組成,但通常不應多於三個。

w     在名字中,所有單詞第一個字母大寫。例如:IsSuperUser,包含ID的,ID全部大寫,如:CustomerID

w     使用名詞或名詞短語命名類。

w     少用縮寫。

w     不要使用下劃線字元 (_)

  5.6.  程序版本號

主程序的版本號=主版本號+次版本號+Bulid(Fix版本號)

w         主版本號: 表示程序的重大修改[例如,修改或新增了程序的重要功能]

w         次版本號: 表示程序的一般修改[例如,修改或新增了程序的一般功能]

w         Fix版本號:表示程序Bug的修改,以修改的日期縮寫表示,如2006-1-20修改的Fix版本號就是20060120

舉例説明:程序版本號為1.2 Build(20060120)


PS:此规范大部分参照至网上查询所得资料,如果有Copy之处还请原作者见谅.