第一篇:域代碼編寫總結
word域代碼詳解
域的基本操作
Ctrl+F9 插入域
Ctrl+Shift+F9把域轉為純文本 Shift+F9 切換為域代碼顯示
十個特殊指令(域開關)
1、數組a
2、括號b
3、平移d
4、分式f
5、積分i
6、列表l
7、重疊o
8、根號r
9、上下標s
10、框x
域代碼: {EQ a(100,2,31)}
講解: {EQ列表(100,2,31排成一列)}
可用參數:
al左對齊;ac居中;ar右對齊;con元素排成 n 列;vsn行間增加 n 磅;hsn列間增加n磅
al左對齊
域代碼: {EQ aal(100,2,31)}
講解: {EQ 列表左對齊(100,2,31)}
ac居中
域代碼:{EQ aac(100,2,31)}
講解:{EQ 列表居中對齊(100,2,31)}
ar右對齊
域代碼:{EQ aar(100,2,31)}
講解:{EQ 列表右對齊(100,2,31)}
con元素排成n列
域代碼:{EQ aco3(10,2,31,0,1,0,14,3,55)}
講解:{EQ 列表元素排成3列(10,2,31,0,1,0,14,3,55)}
vsn 行間增加n磅
域代碼:{EQ aco3vs2(10,2,31,0,1,0,14,3,55)}
講解:{EQ 列表元素排成3列行間增加2磅}
hsn 列間增加n磅
域代碼:{EQ aco3vs2hs4(10,2,31,0,1,0,14,3,55)}
講解:{EQ 列表元素排成3列行間增加2磅列間增加4磅}
域代碼:{EQ b(a(100,2,31))}
講解:{EQ 加括號(數組(100,2,31))}
可用參數:
左括號使用字符 lc;右括號使用字符 rc;左右括號都使用字符bc
lc* 左括號使用字符*
域代碼:{EQ blc|(a(100,2,31))}
講解:{EQ 加括號左括號使用字符|(數組(100,2,31))}
rc* 右括號使用字符*
域代碼:{EQ brc|(a(100,2,31))}
講解:{EQ 加括號右括號使用字符|(數組(100,2,31))}
bc* 左右括號都使用字符*
域代碼:{EQ bbc|(a(100,2,31))}
講解:{EQ 加括號左右括號使用字符|(數組(100,2,31))}
注意:如果指定的字符*是 {、[、(、或 <,Word 將使用相應的字符作為右括號。如果指定其他字符,Word將使用該字符作為相同的左右括號。默認括號為圓括號。
3、位移開關 d(): 控制 EQ 域之后下一個字符的位置。
空圓括號只跟在指令最后一個選項后面。
域代碼:{EQ-d()A-}
講解:{EQ-下一個字符后移 A-}
可用參數:
fon右邊n磅;ban左邊n磅;li為下一個字符前的空白添加下劃線
fon 右邊n磅
域代碼:{EQ-dfo5()A-}
講解:{EQ-下一個字符后移5磅 A-}
ban 左邊n磅
域代碼:{EQ-d ba7(A-)}
講解:{EQ-下一個字符前移7磅}
li 為下一個字符前的空白添加下劃線
域代碼:{EQ 我 dfo12li()你 }
講解:{EQ 我 下一個字符后移12磅,空白添加下劃線 你}
4、分數開關 f(,): 創建分數,分子分母分別在分數線上下居中。
域代碼:{EQ 18f(5,132)}
講解:{EQ 18分數(分子,分母)}
無可用參數。
符號或默認符號及三個元素創建積分。
第一個元素是積分下限,第二個是上限,第三個是積分表達式。
域代碼:{EQ i(a,b,3x+1 dx)}
講解:{EQ 積分(下標a,上標b,表達式3x+1 dx)}
可用參數: 將符號更改為∑ 并生成求和公式su ;將符號更改為大寫的 Π 并生成求積公式pr ;創建行內格式,積分限不在符號的上下,而在符號之右in ;將符號設置為固定高度的字符 fcc。
su 生成求和公式
域代碼:{EQ isu(i=1,n,xi)}
講解:{EQ 求和(下標a,上標b,表達式xi)
pr 生成求積公式
域代碼:{EQ ipr(i=1,n,xi)}
講解:{EQ 求積(下標i=1,上標n,表達式 xi)
in 積分限不在符號的上下,而在符號之右
域代碼:{EQ iin(a,b,3x+1 dx)}
講解:{EQ 積分積分限在符號之右(a,b,3x+1 dx)}
fcc將符號c設置為固定高度的字符
域代碼:{EQ ifc設置為固定高度的字符in(a,b,3x+1)}
講解:{EQ i符號改為。
in(a,b,3x+1)};將符號
vcc 符號高度與第三個元素高度一致
域代碼:{EQ ivc
in(a,b,3x+1)}
講解:加vc開關后,指定的符號自動放大
6、列表開關 l(): 使用任意個數的元素組成列表。
以逗號或分號分隔,這樣就可以將多個元素指定為一個元素。在域中輸入一個類似a,b的元素,不加括號時域會報錯,加了括號又會顯示出括號,列表開關可以解決類似問題。
域代碼:{EQ isu(l(i,j)=1,l(n,m),xij)}
講解:{EQ求和(加列表(i,j)=1,加列表(n,m),xij)}
無可用參數。
7、重疊開關 o(): 將每個后續元素置于前一個元素之上。
元素數目不限。元素之間以逗號隔開。可以配合上標開關使用
域代碼:{EQ o(A,╳)}{EQ o(?,12)}
講解:{EQ 重疊(A,╳)} {EQ 重疊(?,12)}
可用參數: 左對齊al;居中ac;右對齊ar
al左對齊
域代碼:{EQ oal(ABC,sup10(︵))}
講解:{EQ o重疊左對齊(ABC,sup10(︵))}
ac居中
域代碼:{EQ oac(ABC,sup10(︵))}
講解:{EQ 重疊o居中ac(ABC,sup10(︵))}
ar右對齊
域代碼:{EQ oar(ABC,sup10(︵))}
講解:{EQ 重疊o右對齊ar(ABC,sup10(︵))}
8、根號開關 r(,): 使用一個或兩個元素繪制根號。
域代碼:{EQ r(5,2a+b)}
講解:{EQ 根號r(根指數5,被開方數2a+b)}
無可用參數。
9、上標下標開關 s(): 將元素放置為上標或下標字符。
每個 s 代碼可有一個或多個元素,以逗號隔開。如果指定多個元素,則元素將堆疊起來并且左對齊
域代碼:{EQ Cs(3,12)}
講解:{EQ C上下標(上標3,下標12)}
可用參數: 在段落一行之上添加由 n 指定的磅數的空白;文字上移由 n 指定的磅數。默認值為 2 磅
upn()在段落一行之下添加由 n 指定的磅數的空白din();將單個元素相對相鄰文字下移由 n 指定的磅數。默認值為 2 磅don()。
ain添加由 n 指定的磅數的空白
域代碼:A{EQ Csai12(3)B}
講解:A{EQ C上下標s行之上添加由12磅的空白ai12(3)B}
upn 文字上移由 n 指定的磅數(默認值為 2 磅)
域代碼:{EQ Csup12(3)s(12)}
講解:{EQ C上下標sup12(3)上下標s(12)}
din 在段落一行之下添加由 n 指定的磅數的空白
域代碼:{EQ Csdi18(12)}A
講解:{EQ C上下標s一行之下添加18磅的空白di18(12)}A
don 將單個元素相對相鄰文字下移由 n 指定的磅數。默認值為 2 磅
域代碼:{EQ Cs(3)sdo8(12)}
講解:{EQ C上下標s(3)上下標s下移8磅do8(12)}
10、框開關 x(): 創建元素邊框。
如果不帶選項,則此代碼在元素四周繪一個方框。
域代碼:{EQ x(12345)}
講解:{EQ 邊框x(12345)}
可用參數: 在元素的上面繪制一個邊框to ;在元素的下面繪制一個邊框 bo ;在元素的左面繪制一個邊框le 在元素的右面繪制一個邊框ri
to上面繪制一個邊框
域代碼:{EQ x to(A∪B)}
講解:{EQ 邊框x 上邊框to(A∪B)}
bo下面繪制一個邊框
域代碼:{EQ x bo(A∪B)}
講解:{EQ 邊框x 下邊框bo(A∪B)}
le左面繪制一個邊框
域代碼:{EQ x le(A∪B)}
講解:{EQ 邊框x 左邊框le(A∪B)}
ri左面繪制一個邊框
域代碼:{EQ x ri(A∪B)}
講解:{EQ 邊框x 右邊框ri(A∪B)}
左右都加邊框
域代碼:{EQ x leri(A∪B)}
講解:{EQ 邊框x 左邊框le右邊框ri(A∪B)}
關于域的快捷鍵:
Ctrl+F9組合鍵——快速插入域定義符“{}”(注意:這個花括號不能用鍵盤輸入)
Shift+F9組合鍵——顯示或者隱藏指定的域代碼
Alt+F9組合鍵——顯示或者隱藏文檔中所有域代碼
F9鍵——更新單個域
上表中,選中每一個實例用鼠標右鍵單擊,選“切換域代碼”(或者直接按Shift+F9組合鍵),就可以看到域代碼,再按Shift+F9組合鍵回到域結果。
我們在word2000中編輯文檔時,有時會經常遇到要求輸入數學公式的情況。雖然簡單的加、減、乘、除等運算都可在鍵盤上直接輸入,但遇到復雜的數學公式:如積分、開方、求和等符號時,就只能利微軟的office套件中所帶的工具“公式編輯器”來完成,但是在office套件的典型安裝的過程中,并沒有選擇這個工具,那么有沒有辦法可以在word2000中直接輸入這些符號呢?答案是肯定的,下面我們就來講解通過word2000的EQ域的功能輸入數學公式。
一、EQ域的基本使用格式:
{EQ Switches}
其中Switches用于指定如何使用其后跟隨的括號中的元素建立公式,還可以用適當的開關選項來進行修改。EQ域的開關特別多,特別復雜,合理的組合可以產生各種各樣的公式,下面我們來詳細介紹各種開關的作用及使用方法及事例。
二、EQ域的開關及選項意義
1.數組開關:a(),可以在文檔中繪制一個二維數組。還可以使用下面的選項來修改a 開關。
al 列內左對齊。
ac 列內居中對齊。
ar 列內右對齊。
con元素排成 n 列(默認值為 1)。
vsn行間增加 n 磅的垂直間距。
hsn列間增加 n 磅的水平間距。
2.括號開關:b(),用括號括住單個元素。
lcc 左括號使用字符 c。
rcc 右括號使用字符 c。
bcc 左右括號都使用指定的字符 c。
3.位移開關:d(),將下一個字符向左或右移動指定磅數。
fon()右邊 n 磅。
ban()左邊 n 磅。
li()為下一個字符前的空白添加下劃線。
示例:{ EQ d fo10 li()} 顯示為(前一段文字)__(后一段文字)
4.分數開關:f(,):可用于創建分數。
分子分母分別在分數線上下居中。如果系統使用逗號作為小數點,請用分號分隔兩個元素。
5.列表開關:l(),將多個值組成一個列表,列表可作為單個元素使用。
列互開關可使用任意個數元素組成列表,以逗號或分號分隔,這樣就可以將多個元素指定為一個元素。
6.重疊開關:o(),將每個后續元素打印在前一元素之上。
al 左對齊
ac 居中(默認值)
ar 右對齊
7.根號開關:r(,),使用一個或兩個元素繪制根號。
8.上標或下標開關:s(),設置上下標。可將一個或多個元素設置為上標或下標。每個s代碼可有一個或多個元素,以逗號隔開。如果指定多個元素,則元素將堆疊起來并且左齊。可用下面的選項在s開關之后放置單個元素。
ain()在段落一行之上添加由 n 指定的磅數的空白。
upn()將單個元素相對相鄰文字上移由 n 指定的磅數。默認值為 2 磅。
din()在段落一行之下添加由 n 指定的磅數的空白。
don()將單個元素相對相鄰文字下移由 n 指定的磅數。默認值為 2 磅。
9.方框開關:x(),在元素四周繪制邊框。
to 元素之上。bo 元素之下。
le 元素左側。ri 元素右側。
10.積分開關:i(,),使用指定的符號或默認符號及三個元素創建積分。使用指定的符號及三個元素創建積分。第一個元素是積分下限,第二個元素是積分上限,第三個是積分表達式。可用下面的選項修改。
su 符號更改為大寫的 ∑ 并生成求和公式。
pr 符號更改為大寫的 Π 并生成求積公式。
in 創建行內格式,積分限不在符號的上下,而在符號之右。
fcc 將符號設置為固定高度的字符 c。
vcc 將符號設置為可變高度的字符 c。符號高度與第三個元素高度一致。
好了,上面詳細地介紹了EQ域創建數學公式的每個開關及選項的意義,下面我們來看幾個實例的應用。
三、EQ域實例創建
例
1、我們要創建如下的數學二元一次方程組:
1.先寫出第一個方程的代碼:{EQ r(3,x)+r(2,x)= r(6,y)}
2.再寫出第二個方程的代碼:{EQ f(2,x)+f(5,y)= f(10,x)}
3.將每個等式作為一個元素合并在一個域中,并增加a開關,使其排列在兩行中域代碼為:{EQ a al co1(r(3,x)+r(2,x)= r(6,y), f(2,x)+f(5,y)= f(10,x))
4.最后按照方程式的組成規則,在域代碼中增加開關,為公式加入括號,并修改參數,生成這個二元方程組。最終代碼為:{EQ b lc {(a al co1(r(3,x)+r(2,x)= r(6,y), f(2,x)+f(5,y)= f(10,x)))
例
2、創建如下的積分算式:
1.首先寫出內部的根號的代碼:{EQ r(2,x)}
2.其次增加分數開關的代碼:{EQ f(r(2,x),5)}
3.最后增加積分開關,完成這個積分算式,代碼為:{EQ i(200,100,f(r(2,x),5))dx}
第二篇:代碼編寫規范
代碼編寫規范
1、所有代碼排版整齊,可以使用編程工具自帶的排版功能;
2、代碼縮進使用Tab鍵,不允許使用空格;
3、標示符的聲明:修飾符與變量名之間留一空格;
4、用途相近的變量聲明之間不加空行;用途相差很遠的變量聲明之間加一空行進行區分;
5、變量聲明要集中,不允許分散在程序代碼之間;
6、對于語意不明確的變量名要增加注釋進行說明;
7、對于方法功能要進行注釋說明;
對于功能非常簡單的,并且可以直接從方法名稱推斷出其具體功能的方法,可以不加注釋;
所有的方法注釋必須準確;
8、方法的排列順序要依照功能的排列順序進行排列;
9、CSS樣式代碼編寫順序需要按照頁面的排版順序進行排列,不同的組件樣式之間要以明顯的“分隔符”進行分隔;
10、Html代碼排版一定要規范,按照不同標簽的層次關系進行適當的縮進排列,縮進使用Tab鍵,不允許使用空格;
11、Java代碼的編寫,首先進行變量聲明,接下來是構造方法,在接下來是一些其他的功能方法,最后是變量的get/set方法。如果有嵌入類或嵌入接口的聲明,應該放在文件最后,且需要增加注釋詳細說明;
12、JS代碼的編寫,首先是一些全局變量的聲明,接下來是一些功能方法,最后是初始化代碼。不同的方法之間要保留適當的空行,不允許使用alert。
第三篇:代碼編寫的好習慣
2013-3-31
趙永華:格式之美 如何編寫出專業型Java代碼[1]
http:// 作者:趙永華 來源:希賽網 2008年6月19日進入社區格式之美:如何編寫出專業型Java代碼
作者簡介:趙永華,男,威海職業學院信息工程系 高級工程師
假如你想成為職業程序員,那么你在編程時,就不僅應注重代碼的實現方式,還應注意代碼的編寫格式。雖然,絕大多數用戶無緣審讀軟件程序源代碼,但程序員在編程時,無論內容還是形式都應力臻完美。本文以Java為例談一些具體的細節,希望能得到大家認同或啟迪。
一、為何要注重編程格式
今天,Java已成為軟件開發的主流用語,筆者近來看到這樣一個統計結果:在商業軟件產品中,軟件產品的后續成本中約80%用于維護開銷。而軟件維護往往很少由原創者擔任,良好的源碼編寫風格有益于日后軟件維護已成為諸軟件商公認的事實。
當今,軟件產品早己步入團隊協作式開發模式,要成為一支優秀開發組的關鍵因素之一就是組員之間的密切交流,它體現在整個開發周期,從需求、計劃、測試案例、設計,到算法、實現方式等軟件工程各階段當中。具體到每一個實現模塊的源代碼亦不例外。簡言之,就是你在編寫這段代碼時應當讓其他人清晰的了解這段代碼“是什么”,當程序出錯時,其他人能夠從程序邏輯上迅速分析找到錯誤出處。
二、講究細節
就程序應具有的“透明性”而言,開發小組應當采用一種共同的編寫格式。比如Java,大家應當采用同一種IDEs(Integrated Developer Environments)。自2000年以來,Java開發所用IDE發展基本成型,開發人員一致采用的平臺通常都是可免費下載的Sun公司的Netbeans IDE和Eclipse IDE,這兩種工具都是優秀的“格式化”工具,有助于開發組形成良好的編程風格。如果有人至今還固執地采用那種原始的文本編輯器輸入Java代碼,未免顯得愚鈍。
在我們輸入源代碼時,一個容易忽略的問題是代碼顯示。傳統的代碼行通常限制的字符數是80,這主要是考慮到最低廉的文本終端80x25顯示模式,這種思維在21世紀寬屏時代早已過時。今天的每行代碼字符默認值達120。在輸入代碼時我們遇到的一個心理活動就是用空格還是制表符Tab,一個Tab等于幾個空格,現在的答案是4個空格。
在Java中,從基本語法(比如while, do, for 等循環語句和類定義)開始就涉及到大括號,那么這些括號的擺放位置即便是專業程序也具有不同風格,這里例舉如下:
// K&R風格
if(condition){
statement;
statement;
}//Allman風格if(condition){statement;statement;}//Whitesmiths Style風格if(condition){statement;statement;}//GNU風格if(condition){statement;statement;}
趙永華:格式之美 如何編寫出專業型Java代碼[2]
http:// 作者:趙永華 來源:希賽網 2008年6月19日進入社區
究竟哪種格式好?維基百科論壇對此曾有過較長時間的討論,結果多數人傾向于前兩種格式。如果留心的話,你會看到在Sun公司網站和手冊中的代碼都采用了K&R風格。一次在做項目時,多數同事都采用了Allman風格,當我發現這點時編寫的代碼總量已達數千行,此時如果為此而逐行修改不是怕耗時而是進度不允許,此時幸好我采用的Eclipse提供了格式配置工具遂即刻搞掂。流行的Java編輯器在輸入左括號時都會自動出現對應的右括號。
在代碼的控制結構中,假如只有一行執行語句,從語法上講,此時的大括號可以省略,但依筆者的經驗,此舉其實不明智,試想假如在后續編程時需在控制結構中新增加語句時,對控制結構的界限即便是作者本人有時也會混淆,所以,更為穩妥的編寫風格是即便是只有單行語句的控制結構也應當寫入一對并不多余的大括號,樣例如下:
...不好的習慣...if(condition)statement;...它可能造成的后果是...if(condition)statement;
statement;
盡管從語法上講,將多條語句放在同一行上不會出錯,但這亦屬不良習慣,因為當他人對該語句進行復制/粘帖等編輯時容易搞錯。另一方面,對于一行容不下的超長語句,那么續行應當有明顯的凹進,并保證詞組的完整性,其形式如下:
if(some really long condition that you need
to continue here)
{
statement;
statement;
}
再如:...com.acme.foo.project.data.YourObjectFactory objFactory = new com.acme.foo.project.data.YourObjectFactory();...當用到超長的條件表達式,有時為了邏輯清晰起見,我們應善于對其進行必要的分解,將一行分解為多行短句,例如:
...原來的代碼語句是...if(value!= null && value.length()> 0 &&(errCount = 0 ||
isIgnorable(currentError)))
{
...statements...}
...將其分解為...boolean valueIsGood =(value!= null && value.length()> 0);
boolean noErrors =(errCount = 0 || isIgnorable(currentError));
if(valueIsGood && noErrors)
{
...statements...}
Java代碼中的注釋語句分為線型和塊狀,雖然筆者習慣使用前者,常用于描述一個變量的作用,但這種方式在網站論壇交流時會產生一種不良副作用,在網站上傳代碼時容易出現不連貫現象。防止出錯的方法是,在上傳代碼時之前一定要預覽顯示結果。
在Java的聲明機制中,應注意變量的聲明位置,對于靜態變量或常量,應當置于源碼文件的頂部,這種風格來源于C語言。但Java對傳統C的一種明顯突破是,方法級變量是在需要時即時聲明和初始化,其合理性在于我們不必勞神聲明太多的類變量。
Java對類和變量的命名其實現在已形成了約定俗成:Types(類, 接口等)應當多用小寫字母,單詞間無空格,但每個單詞首字母要大寫,形如:SomethingLikeThis;非常量型變量的聲明則多用小寫字母,而且首字母要小寫,單詞間無隙,但從第二個單詞起則冠以大寫字母,形如somethingLikeThis。對于常量(Java中常用的對應關鍵字是final,也即'static')在命名時通常皆由大寫字母組成,形如:SOMETHING_LIKE_THIS。所以,一段成熟的Java代碼在命名和拼寫時應當猶如以下樣碼:
class MyNeatClass
{
private int currentValue;
public static final String SOME_STRING_CONSTANT = “Blah blah”;
...public void doSomething()
{
...other statements......int count=0;
for(loop condition)
{
if(branch condition)
{
count++;
}
}
...}
}
新版Java出現的enum(“枚舉”)類型,看起來很象是特殊的class, 它也可以有自己的變量,可以定義自己的方法,可以實現一個或者多個接口。當我們聲明一個enum類型時,定義通常是具有直觀意義的字符串,比如:
enum MyFirstEnum
{
ALPHA,BETA,GAMMA,DELTA;
}
此外,Java編譯器對于源文件的調用具有優先級標準,我們在編寫代碼時須遵循這一規則,具體次序為:項目所需的頭文件,包聲明語句,引入語句,type聲明以及“extends”項及“implements”,類變量,類方法,內部類聲明。
三、小結
本文從Java基本語法入手,列舉了Java良好編程風格所應體現的各種規范和規則細節。也許有人會有小題大做之感,但筆者積多年的編碼體會是,編寫代碼越多固然有利于編程技藝的提高,但規范的編程習慣將使寫出的代碼更便于分析和調試,這對于代碼的優質運行將善莫大焉;一個軟件項目的成功需要每個開發成員從自己做起,從每一行Coding開始。
第四篇:買方代碼編寫員崗位職責
1.買方代碼專員報據各部門的申請及時準確地進行代碼的查詢、編制、維護等工作,從而保證資信報告購買、申請限額后續業務的順利開展。1.買方代碼查詢和編制工作:占工作時間比例60%。
2.銀行査詢和代碼編制工作:占工作時間比例30%。
3.處理各分支機構代碼申請工作中遇到的問題,包括買方代碼的信息維護和處理重碼的工作:占工作時間比例5%。
第五篇:寫代碼總結
一、排版:
1.關鍵詞和操作符之間加適當的空格。
2.相對獨立的程序塊與塊之間加空行
3.較長的語句、表達式等要分成多行書寫。
4.劃分出的新行要進行適應的縮進,使排版整齊,語句可讀。
5.長表達式要在低優先級操作符處劃分新行,操作符放在新行之首。
6.循環、判斷等語句中若有較長的表達式或語句,則要進行適應的劃分。
7.若函數或過程中的參數較長,則要進行適當的劃分。
8.不允許把多個短語句寫在一行中,即一行只寫一條語句。
9.函數或過程的開始、結構的定義及循環、判斷等語句中的代碼都要采用縮進風格。
10.C/C++語言是用大括號?{?和?}?界定一段程序塊的,編寫程序塊時?{?和
?}?應各獨占一行并且位于同一列,同時與引用它們的語句左對齊。在函數體的開始、類的定義、結構的定義、枚舉的定義以及if、for、do、while、switch、case語句中的程序都要采用如上的縮進方式。
二、注釋
1.注釋要簡單明了。
2.邊寫代碼邊注釋,修改代碼同時修改相應的注釋,以保證注釋與代碼的一致性。
3.在必要的地方注釋,注釋量要適中。注釋的內容要清楚、明了,含義準確,防止注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近原則。
4.對代碼的注釋應放在其上方相鄰位置,不可放在下面。
5.對數據結構的注釋應放在其上方相鄰位置,不可放在下面;對結構中的每個域的注釋應放在此域的右方;同一結構中不同域的注釋要對齊。
6.變量、常量的注釋應放在其上方相鄰位置或右方。
7.全局變量要有較詳細的注釋,包括對其功能、取值范圍、哪些函數或過程存取它以及存取時注意事項等的說明。
8.在每個源文件的頭部要有必要的注釋信息,包括:文件名;版本號;作者;生成日期;模塊功能描述(如功能、主要算法、內部各部分之間的關系、該文件與其它文件關系等);主要函數或過程清單及本文件歷史修改記錄等。
9.在每個函數或過程的前面要有必要的注釋信息,包括:函數或過程名稱;功能描述;輸入、輸出及返回值說明;調用關系及被調用關系說明等。
三、命名
1.較短的單詞可通過去掉“元音”形成縮寫;
2.較長的單詞可取單詞的頭幾發符的優先級,并用括號明確表達式的操作順序,避免使用默認優先級。
3.使用匈牙利表示法
四、可讀性
1.避免使用不易理解的數字,用有意義的標識來替代。
2.不要使用難懂的技巧性很高的語句。
3.源程序中關系較為緊密的代碼應盡可能相鄰。
五、變量
1.去掉沒必要的公共變量。
2.構造僅有一個模塊或函數可以修改、創建,而其余有關模塊或函數只訪問的公共變量,防止多個不同模塊或函數都可以修改、創建同一公共變量的現象。
3.仔細定義并明確公共變量的含義、作用、取值范圍及公共變量間的關系。
4.明確公共變量與操作此公共變量的函數或過程的關系,如訪問、修改及創建等。
5.當向公共變量傳遞數據時,要十分小心,防止賦與不合理的值或越界等現象發生。
6.防止局部變量與公共變量同名。
7.仔細設計結構中元素的布局與排列順序,使結構容易理解、節省占用空間,并減少引起誤用現象。
8.結構的設計要盡量考慮向前兼容和以后的版本升級,并為某些未來可能的應用保留余地(如預留一些空間等)。
9.留心具體語言及編譯器處理不同數據類型的原則及有關細節。
10.嚴禁使用未經初始化的變量。聲明變量的同時對變量進行初始化。
11.編程時,要注意數據類型的強制轉換。
六、函數、過程
1.函數的規模盡量限制在200行以內。
2.一個函數最好僅完成一件功能。
3.為簡單功能編寫函數。
4.函數的功能應該是可以預測的,也就是只要輸入數據相同就應產生同樣的輸出。
5.盡量不要編寫依賴于其他函數內部實現的函數。
6.避免設計多參數函數,不使用的參數從接口中去掉。
7.用注釋詳細說明每個參數的作用、取值范圍及參數間的關系。
8.檢查函數所有參數輸入的有效性。
9.檢查函數所有非參數輸入的有效性,如數據文件、公共變量等。
10.函數名應準確描述函數的功能。
11.避免使用無意義或含義不清的動詞為函數命名
12.函數的返回值要清楚、明了,讓使用者不容易忽視錯誤情況。
13/明確函數功能,精確(而不是近似)地實現函數設計。
14.減少函數本身或函數間的遞歸調用。
15.編寫可重入函數時,若使用全局變量,則應通過關中斷、信號量(即P、V操作)等手段對其加以保護。
七、可測性
1.在編寫代碼之前,應預先設計好程序調試與測試的方法和手段,并設計好各種調測開關及相應測試代碼如打印函數等。
2.在進行集成測試/系統聯調之前,要構造好測試環境、測試項目及測試用例,同時仔細分析并優化測試用例,以提高測試效率。
八、程序效率
1.編程時要經常注意代碼的效率。
2.在保證軟件系統的正確性、穩定性、可讀性及可測性的前提下,提高代碼效率。
3.不能一味地追求代碼效率,而對軟件的正確性、穩定性、可讀性及可測性造成影響。
4.編程時,要隨時留心代碼效率;優化代碼時,要考慮周全。
5.要仔細地構造或直接用匯編編寫調用頻繁或性能要求極高的函數。
6.通過對系統數據結構劃分與組織的改進,以及對程序算法的優化來提高空間效率。
7.在多重循環中,應將最忙的循環放在最內層。
8.盡量減少循環嵌套層次。
9.避免循環體內含判斷語句,應將循環語句置于判斷語句的代碼塊之中。
10.盡量用乘法或其它方法代替除法,特別是浮點運算中的除法。
九、質量保證
1.在軟件設計過程中構筑軟件質量。
代碼質量保證優先原則
(1)正確性,指程序要實現設計要求的功能。
(2)穩定性、安全性,指程序穩定、可靠、安全。
(3)可測試性,指程序要具有良好的可測試性。
(4)規范/可讀性,指程序書寫風格、命名規則等要符合規范。
(5)全局效率,指軟件系統的整體效率。
(6)局部效率,指某個模塊/子模塊/函數的本身效率。
(7)個人表達方式/個人方便性,指個人編程習慣。
2.只引用屬于自己的存貯空間。
3.防止引用已經釋放的內存空間。
4.過程/函數中分配的內存,在過程/函數退出之前要釋放。
5.過程/函數中申請的(為打開文件而使用的)文件句柄,在過程/函數退出前要關閉。
6.防止內存操作越界。
7.時刻注意表達式是否會上溢、下溢。
8.認真處理程序所能遇到的各種出錯情況。
9.系統運行之初,要初始化有關變量及運行環境,防止未經初始化的變量被引用。
10.系統運行之初,要對加載到系統中的數據進行一致性檢查。
11.嚴禁隨意更改其它模塊或系統的有關設置和配置。
12.不能隨意改變與其它模塊的接口。
13.充分了解系統的接口之后,再使用系統提供的功能。
14.要時刻注意易混淆的操作符。當編完程序后,應從頭至尾檢查一遍這些操作符。
15.不使用與硬件或操作系統關系很大的語句,而使用建議的標準語句。
16.建議:使用第三方提供的軟件開發工具包或控件時,要注意以下幾點:
(1)充分了解應用接口、使用環境及使用時注意事項。
(2)不能過分相信其正確性。
(3)除非必要,不要使用不熟悉的第三方工具包與控件。
十、代碼編譯
1.編寫代碼時要注意隨時保存,并定期備份,防止由于斷電、硬盤損壞等原因造成代碼丟失。
2.同一項目組內,最好使用相同的編輯器,并使用相同的設置選項。
3.合理地設計軟件系統目錄,方便開發人員使用。
4.打開編譯器的所有告警開關對程序進行編譯。
5.在同一項目組或產品組中,要統一編譯開關選項。
6.使用工具軟件(如Visual SourceSafe)對代碼版本進行維護。
十一、代碼測試、維護
1.單元測試要求至少達到語句覆蓋。
2.單元測試開始要跟蹤每一條語句,并觀察數據流及變量的變化。
3.清理、整理或優化后的代碼要經過審查及測試。
4.代碼版本升級要經過嚴格測試。