Delphi編碼標準——一般的原始碼格式規則 (轉)
編碼標準主要是為開發組提供一種時的準則,使專案開發人員在程式設計時有一致格式可遵循。這樣,開發組中每個程式設計人員編寫的程式碼能夠被其他人理解,從而提高程式碼的可維護性,使得一套多人寫的就像一人寫的,使得程式碼更易理解。這要求大家使用一致的程式碼樣式。:namespace prefix = o ns = "urn:schemas--com::office" />
那麼,之所以老生常談介紹這些標準,是因為當新的開發人員加入專案開發組時,有的可能還不熟悉的編碼標準。
在這裡將分以下幾類來介紹這些標準:
1 一般的格式規則
2過程和
3 、窗體與資料模組命名
4 包、命名
一般的原始碼格式規則
縮排
縮排就是每級間有兩個空格。不要在原始碼中放置製表符。這是因為,製表符的寬度隨著不同的設定和程式碼管理實用(列印、文件及版本控制等)而不同。
邊距
邊距設定為80個字元。原始碼一般不會因寫一個單詞而超過邊距,但本規則比較靈活。只要可能,長度超過一行的語句應當用逗號或運算子換行。換行後,應縮排兩個字元。
括號
在左括號與下一字元之間沒有空格。同樣,右括號與前一字元也沒有空格。
下面的例子演示了正確與不正確的空格。
CallProcedure( Parameters ); // 錯!
CallProcedure (Parameters); // 正確!
保留字和關鍵字
Pascal語言的保留字和關鍵字總是完全的小寫。
begin...end
begin語句必須單獨佔一行。
例如,下面第一行是錯誤的,而第二行正確:
for i:=0 to 10 do begin
Statement
end// 錯, begin 與for在同一行
for i:=0 to 10 do //正確! begin 在另外一行中
begin
Statement
end
本規則的一個特殊情況是,當begin為else語句的一部分時。
例如:
if Condition then
begin
Statement
end
else begin
Statement;
end
end語句總單獨一行。當begin不為else語句的一部分時,相應的end語句與begin語句的縮排量相同。
語句
(1) if_then_else語句
最有可能的情況應放在then子句中,不太可能的情況放在else子句中。
為了避免出現許多i f語句,可以使用case語句代替。
如果多於5級,不要使用i f語句。請改用更清楚的方法。
不要在i f語句中使用多餘的括號。在原始碼中,括號只有在確實需要時才使用。
例如:
if (I=42) then // 錯,括號是多餘的
if (I=42) or (J=42) then // 正確,必須使用括號
如果在i f語句中有多個條件要測試,應按照計算的複雜程度從右向左排。這樣,可以使程式碼充分利用的短路估算邏輯。如果Condition1比Condition2快,Condition2比Condition3快,則if語句應這樣構造:if Conditior1 and Condition2 and Condition3 then
(2) case_else語句
case語句中每種情況的常量應當按數字或字母的順序排列。
每種情況的動作語句應當簡短且通常不超過4 ~ 5行程式碼。如果動作太複雜,應將程式碼單獨放在一個過程或函式中。case語句的else子句只用於預設情況或錯誤檢測。
(3) while 語句
建議不要使用exit過程來退出while迴圈。如果需要的話,應當使用迴圈條件退出迴圈。所有對w h i l e迴圈進行初始化的程式碼應當位於w h i l e入口前,且不要被無關的語句隔開。任何業務的輔助工作都應在迴圈後立即進行。
(4) for語句
如果迴圈次數是確定的,應當用for語句代替while語句。
(5) repeat語句
repeat語句類似於while迴圈,且遵循同樣的規則。
(6) with語句
with語句應小心使用。要避免過度使用with語句,尤其是在with語句中使用多個或記錄。
例如:
with Record1,Record2 do
這些情況很容易迷惑程式設計人員,且導致困難。
結構化異常處理
異常處理主要用於糾正錯誤和保護資源。這意味著,凡是分配資源的地方,都必須使用try... finally來保證資源得到釋放。不過,如果是在單元的初始/結束部分或者物件的構造器/析構器中來分配/釋放資源則例外。
(1) try... finally的用法
在可能的情況下,每個資源分配應當與try... finally結構匹配。
例如:
//下面程式碼可能導致錯誤
SomeClass1: = TSomeClass.Create;
SomeClass2: = TSomeClass.Create;
try
{do some code}
finally
SomeClass.Free;
SomeClass.Free;
e n d ;
//上述資源分配的一個方案是:
SomeClass1: = TSomeClass Create;
try
SomeClass2: = TSomeClass Create;
try
{do some code}
finally
SomeClass2.Free;
end;
finally
SomeClass1.Free;
end;
(2) try...except的用法
如果你希望在發生異常時執行一些任務,可以使用try...except。通常,沒有必要為了簡單地顯示一個錯誤資訊而使用try...except,因為Application物件能夠自動根據上下文做到這一點。如果要在子句中啟用預設的異常處理,可以再次觸發異常。
(3) try... except...else的用法
不鼓勵使用帶else子句的try...except,因為這將阻塞所有的異常,包括你沒有準備處理的異常。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998877/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Delphi編碼標準——元件命名 (轉)元件
- Delphi編碼標準——檔案命名 (轉)
- Delphi編碼標準——過程和函式 (轉)函式
- Delphi編碼標準——窗體與資料模組命名 (轉)
- Java原始碼的折行規則(編碼規範)Java原始碼
- 編碼規則指南(轉貼)
- php的編碼規則PHP
- Project JEDI VCL元件編碼標準 (轉)Project元件
- PL/SQL的編碼規則SQL
- 密碼生成常見的編碼規則密碼
- ABAP的程式碼規範標準
- 音訊編解碼標準音訊
- Delphi 6 SOAP 原始碼中的BUG修正 (轉)原始碼
- 【轉】C#3.0編碼習慣與命名規則C#
- 【原始碼解析】AsyncTask的用法與規則原始碼
- 計算機編碼規則之:Base64編碼計算機
- Delphi源程式格式書寫規範 (轉)
- 主資料之編碼規則
- 華為CMPP原始碼delphi6版 (轉)原始碼
- SQLServer的排序規則(字符集編碼)SQLServer排序
- 排序策略 - Swift標準庫原始碼排序Swift原始碼
- [轉]PHP編碼規範PHP
- Java 編碼規範 (轉)Java
- java編碼規範 (轉)Java
- PL/SQL 01 程式碼編寫規則SQL
- Java 程式編碼的規範(轉)Java
- 應遵循的PL/SQL編碼規則 - ORACLE (zt)SQLOracle
- JDBC的XML編碼和Delphi融合時的編碼問題JDBCXML
- [個體軟體過程]之缺陷管理--編碼標準 (轉)
- C標準庫stdio原始碼分析原始碼
- 【iOS 搭建基礎框架】編碼規範 (程式碼格式篇)iOS框架
- 原始碼版本控制的幾條簡單規則原始碼
- PSR-1 Basic Coding Standard 基礎編碼規範 - PHP標準規範PHP
- IDEA如何設定編碼格式,字元編碼,全域性編碼和專案編碼格式Idea字元
- java編碼規範(2) (轉)Java
- Spark原始碼編譯支援Parquet儲存格式Spark原始碼編譯
- go標準庫-log包原始碼學習Go原始碼
- 【字元編碼】Java編碼格式探祕字元Java