第一篇:軟件編程本科生的自我介紹
軟件編程本科生的自我介紹
在四年的學(xué)習(xí)生活中,我系統(tǒng)地掌握了開(kāi)發(fā)與應(yīng)用方面的技術(shù),同時(shí)也對(duì)當(dāng)今網(wǎng)絡(luò)的發(fā)展有了深刻的認(rèn)識(shí)。因此打下扎實(shí)的專業(yè)基礎(chǔ)知識(shí)。
在思想行為方面,我作風(fēng)優(yōu)良、待人誠(chéng)懇,能較好處理人際關(guān)際,處事冷靜穩(wěn)健,能合理地統(tǒng)籌安排生活中的事務(wù)。
理論學(xué)習(xí)上,我認(rèn)真學(xué)習(xí)專業(yè)知識(shí)理論,在各方面都能?chē)?yán)格要求自己,積極要求上進(jìn)。在專業(yè)學(xué)習(xí)過(guò)程中,學(xué)習(xí)態(tài)度端正,學(xué)習(xí)踏實(shí)努力,專業(yè)成績(jī)優(yōu)異,多次獲得校級(jí)獎(jiǎng)學(xué)金。
專業(yè)知識(shí)上。精通C/C++編程語(yǔ)言,能夠熟練運(yùn)用上述語(yǔ)言進(jìn)行軟件開(kāi)發(fā);掌握Visual C++6.0編程軟件,有豐富的基于Windows平臺(tái)編寫(xiě)軟件的經(jīng)驗(yàn);了解TCp/Ip協(xié)議,熟悉數(shù)據(jù)庫(kù)基本原理;具有較為豐富的網(wǎng)站設(shè)計(jì)開(kāi)發(fā)經(jīng)驗(yàn),曾經(jīng)協(xié)助建設(shè)和維護(hù)學(xué)院網(wǎng)站。學(xué)習(xí)期間,積極參與多項(xiàng)科研項(xiàng)目。具有很強(qiáng)的業(yè)務(wù)能力。
工作上,在大學(xué)期間我還擔(dān)任過(guò)團(tuán)支書(shū),具有很強(qiáng)的組織和協(xié)調(diào)能力。能在較短時(shí)間內(nèi)適應(yīng)高壓力的工作。強(qiáng)烈的事業(yè)心和責(zé)任感使我能夠面隊(duì)任何困難和挑戰(zhàn)。
我期望能在廣闊的天地里展現(xiàn)自己的才能,希望能借助這個(gè)機(jī)會(huì),找一個(gè)能展現(xiàn)自己實(shí)力的舞臺(tái)。我自信能憑自己的能力和學(xué)識(shí)在畢業(yè)以后的工作和生活中克服各種困難,不斷實(shí)現(xiàn)自我的人生價(jià)值和追求的目標(biāo)。
第二篇:軟件編程學(xué)習(xí)心得
軟件編程學(xué)習(xí)心得
隨著計(jì)算機(jī)技術(shù)的發(fā)展和工作的需要,為了能夠更好的維護(hù)公司生產(chǎn)管理系統(tǒng);公司安排我們到北大青鳥(niǎo)APTECH進(jìn)修。我們選擇了時(shí)下最流行、發(fā)展速度較快的語(yǔ)言C#。C#學(xué)習(xí)共分三個(gè)階段,目前我只學(xué)習(xí)了第一個(gè)階段;現(xiàn)將我在北大青鳥(niǎo)學(xué)習(xí)第一階段為期兩個(gè)月的學(xué)習(xí)心得總結(jié)如下:
C#是一種新的面向?qū)ο蟮木幊陶Z(yǔ)言,專門(mén)用于.NET運(yùn)行時(shí)。C#編譯器只能生成受管制的代碼,也可以使用.NET基類。C#語(yǔ)言自C/C++演變而來(lái)。但是,它具有簡(jiǎn)單、現(xiàn)代、完全面向?qū)ο蠛皖愋桶踩戎T多特性。下面就簡(jiǎn)單說(shuō)說(shuō)簡(jiǎn)單和現(xiàn)代其中兩種特性。
1、簡(jiǎn)單
C#具有C++所沒(méi)有的一個(gè)優(yōu)勢(shì)就是學(xué)習(xí)簡(jiǎn)單。該語(yǔ)言首要的目標(biāo)就是簡(jiǎn)單。很多功能(還不如說(shuō)是缺少了C++的一些功能)有助于C#全方位的簡(jiǎn)單。
在C#中,沒(méi)有C++中流行的指針。默認(rèn)地,您工作在受管理的代碼中,在那里不允許如直接存取內(nèi)存等不安全的操作。我想沒(méi)有C++程序員可以聲稱,從沒(méi)有使用指針訪問(wèn)過(guò)不屬于他們的內(nèi)存。
C#棄用其它操作符,名字空間、成員和引用僅使用單個(gè)操作符 “.”?,F(xiàn)在一個(gè)程序員所需要理解的就是嵌套名字的注解了。
C#使用統(tǒng)一的類型系統(tǒng)。這種系統(tǒng)充許您把各種類型作為一個(gè)對(duì)象查看,它是一個(gè)原始類型還是一個(gè)full-blown 類。和其它編程語(yǔ)言相比,由于加框(boxing)和消框(unboxing)的機(jī)制,把簡(jiǎn)單類型當(dāng)作對(duì)象處理并不能獲得性能的改善。稍后將詳細(xì)解釋加框和消框,但基本上僅當(dāng)需要時(shí)才使用對(duì)象訪問(wèn)簡(jiǎn)單類型這種技術(shù)。
2、現(xiàn)代
投入學(xué)習(xí)C#的努力是一筆大投資,因?yàn)镃#是為編寫(xiě)NGWS 應(yīng)用程序的主要語(yǔ)言而設(shè)計(jì)。很多用C++可以實(shí)現(xiàn)或者很費(fèi)力實(shí)現(xiàn)的功能,在C#中不過(guò)是一部分基本的功能而已。根據(jù)應(yīng)用程序的特殊需求,可以很容易地創(chuàng)建出新的一種數(shù)據(jù)類型。
指針不再是編程武器的一部分。運(yùn)行時(shí)NGWS提供了一個(gè)垃圾收集器,負(fù)責(zé)C#程序中的內(nèi)存管理。因內(nèi)存和應(yīng)用程序都受到管理,所以很必要增強(qiáng)類型安全,以確保應(yīng)用的穩(wěn)定性。
異常處理是C#的主要功能。C#的異常處理與C++的不同點(diǎn)在于它是交叉語(yǔ)言的(運(yùn)行時(shí)的另一個(gè)功能)。在沒(méi)有C#之前,您必須處理怪異的HRESULTs,但現(xiàn)在由于使用了基于異常的健壯的出錯(cuò)處理,這一切都結(jié)束了。
對(duì)于現(xiàn)代的應(yīng)用程序,安全是首要的,C#也不會(huì)例外。它提供了元數(shù)據(jù)語(yǔ)法,用于聲明下述NGWS安全模式的能力和許可。元數(shù)據(jù)是NGWS運(yùn)行時(shí)的一個(gè)關(guān)鍵的概念。
通兩個(gè)多月學(xué)習(xí),我能夠很好的掌握C#語(yǔ)言的基本語(yǔ)句、語(yǔ)法以及老師補(bǔ)充的一些要點(diǎn);能夠編寫(xiě)簡(jiǎn)單的應(yīng)用程序,例如電子郵件的收發(fā)等,為接下來(lái)的第二、第三階段學(xué)習(xí)打下了良好的基礎(chǔ)。
第三篇:編程專業(yè)自我介紹
編程專業(yè)自我介紹
我是一個(gè)性格穩(wěn)重,心理素質(zhì)較好的人。做事踏實(shí)認(rèn)真,熱情主動(dòng),吃苦耐勞,并且敢于承擔(dān)責(zé)任。平時(shí)喜歡和他人溝通,善于與人相處,具有良好的團(tuán)結(jié)合作精神。
四年來(lái),我一直懷著對(duì)本專業(yè)的熱愛(ài),認(rèn)真學(xué)習(xí)專業(yè)知識(shí)。學(xué)習(xí)了電路分析,微機(jī)原理,C/C++編程,數(shù)字/模擬電子技術(shù),單片機(jī),DSp,電路CAD等等一系列與電子相關(guān)的課程;出于對(duì)嵌入式開(kāi)發(fā)的愛(ài)好,我自學(xué)了許多嵌入式方面的知識(shí),比如ARM嵌入式系統(tǒng),Linux操作系統(tǒng),Linux C編程,uc/GUI等。參加了西南大學(xué)創(chuàng)新基金項(xiàng)目,并擔(dān)任主要隊(duì)員,培養(yǎng)了團(tuán)隊(duì)合作意識(shí),學(xué)到了一定的開(kāi)發(fā)經(jīng)驗(yàn),并了解到了很多先進(jìn)技術(shù)。
作為一名電子專業(yè)的大學(xué)好范文,我所擁有的是年輕和知識(shí)。年輕雖然缺少經(jīng)驗(yàn),但是年輕也意味著熱情和活力,我自信能.....
第四篇:軟件編程規(guī)范總結(jié)
軟件編程規(guī)范總結(jié)
本規(guī)范的內(nèi)容包括:基本原則、布局、注釋、命名規(guī)則、變量常量與類型、表達(dá)式與語(yǔ)句、函數(shù)與過(guò)程、可靠性、可測(cè)性、斷言與錯(cuò)誤處理等。
一、基本原則
1.2.3.4.5.6.7.保持代碼的簡(jiǎn)明清晰,避免過(guò)分的編程技巧。所有的代碼盡量遵循ANSI C標(biāo)準(zhǔn)。
編程時(shí)首先達(dá)到正確性,其次考慮效率。避免或少用全局變量。盡量避免使用GOTO語(yǔ)句。盡可能重用、修正老的代碼。盡量減少同樣的錯(cuò)誤出現(xiàn)的次數(shù)。
二、文件布局
1.頭文件必須要避免重復(fù)包含。
2.包含標(biāo)準(zhǔn)庫(kù)頭文件用尖括號(hào) <>,包含非標(biāo)準(zhǔn)庫(kù)頭文件用雙引號(hào) “”。3.遵循統(tǒng)一的順序書(shū)寫(xiě)類的定義及實(shí)現(xiàn)。類的定義(在定義文件中)按如下順序書(shū)寫(xiě):
公有屬性
公有函數(shù)
保護(hù)屬性
保護(hù)函數(shù)
私有屬性
私有函數(shù)
類的實(shí)現(xiàn)(在實(shí)現(xiàn)文件中)按如下順序書(shū)寫(xiě):
構(gòu)造函數(shù)
析構(gòu)函數(shù) 公有函數(shù) 保護(hù)函數(shù) 私有函數(shù)
4.程序中一行的代碼和注釋不能超過(guò)80列。5.定義指針類型的變量,*應(yīng)放在變量前。
6.源程序中關(guān)系較為緊密的代碼應(yīng)盡可能相鄰。iLength iWidth = 10;
= 5;// 矩形的長(zhǎng)與寬關(guān)系較密切,放在一起。
StrCaption = “Test”;
7.禁止使用TAB鍵,必須使用空格進(jìn)行縮進(jìn)。縮進(jìn)為4個(gè)空格。
8.程序的分界符‘{’和‘}’應(yīng)獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語(yǔ)句左對(duì)齊。{ }之內(nèi)的代碼塊使用縮進(jìn)規(guī)則對(duì)齊。
9.if、else、else if、for、while、do等語(yǔ)句自占一行,執(zhí)行語(yǔ)句不得緊跟其后。不論執(zhí)行語(yǔ)句有多少都要加 { }。
if(varible1 < varible2){
varible1 = varible2;}
10.11.聲明類的時(shí)候,public、protected、private關(guān)鍵字與分界符{} 對(duì)齊,這些部分的內(nèi)容要進(jìn)行縮進(jìn)。
12.結(jié)構(gòu)型的數(shù)組、多維的數(shù)組如果在定義時(shí)初始化,按照數(shù)組的矩陣結(jié)構(gòu)分行書(shū)寫(xiě)。13.相關(guān)的賦值語(yǔ)句等號(hào)對(duì)齊。
14.在switch語(yǔ)句中,每一個(gè)case分支和default要用{ }括起來(lái),{ }中的內(nèi)容需要縮進(jìn)。
15.不同邏輯程序塊之間要使用空行分隔。16.一元操作符如“!”、“~”、“++”、“--”、“*”、“&”(地址運(yùn)算符)等前后不加空格。“[]”、“.”、“->”這類操作符前后不加空格。
17.多元運(yùn)算符和它們的操作數(shù)之間至少需要一個(gè)空格。18.關(guān)鍵字之后要留空格。(if、for、while等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)‘(’,以突出關(guān)鍵字。)
19.函數(shù)名之后不要留空格。(函數(shù)名后緊跟左括號(hào)‘(’,以與關(guān)鍵字區(qū)別。)20.(’向后緊跟,‘)’、‘,’、‘;’向前緊跟,緊跟處不留空格?!?’之后要留空格?!?’不是行結(jié)束符號(hào)時(shí)其后要留空格。
21.長(zhǎng)表達(dá)式(超過(guò)80列)要在低優(yōu)先級(jí)操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊。
22.函數(shù)聲明時(shí),類型與名稱不允許分行書(shū)寫(xiě)。
三、注釋
1.一般情況下,源程序有效注釋量必須在20%以上。2.注釋符與注釋內(nèi)容之間要用一個(gè)空格進(jìn)行分隔。
3.文件頭部必須進(jìn)行注釋,包括:.h文件、.c文件、.cpp文件、.inc文件、.def文件、編譯說(shuō)明文件.cfg等。
4.函數(shù)頭部應(yīng)進(jìn)行注釋,列出:函數(shù)的目的/功能、輸入?yún)?shù)、輸出參數(shù)、返回值、訪問(wèn)和修改的表、修改信息等。
5.包含在{ }中代碼塊的結(jié)束處應(yīng)加注釋,便于閱讀。特別是多分支、多重嵌套的條件語(yǔ)句或循環(huán)語(yǔ)句。
void Main(){
if(…){
… while(…)
{
…
} /* end of while(…)*/ …
} /* end of if(…)*/ // 指明是哪條語(yǔ)句結(jié)束 } /* end of void main()*/
// 指明函數(shù)的結(jié)束 // 指明該條while語(yǔ)句結(jié)束
6.保證代碼和注釋的一致性。修改代碼同時(shí)修改相應(yīng)的注釋,不再有用的注釋要?jiǎng)h除。7.注釋?xiě)?yīng)與其描述的代碼相近,對(duì)代碼的注釋?xiě)?yīng)放在其上方或右方(對(duì)單條語(yǔ)句的注釋)相鄰位置,不可放在下面,如放于上方則需與其上面的代碼用空行隔開(kāi)。
8.全局變量要有詳細(xì)的注釋,包括對(duì)其功能、取值范圍、訪問(wèn)信息及訪問(wèn)時(shí)注意事項(xiàng)等的說(shuō)明。
9.注釋與所描述內(nèi)容進(jìn)行同樣的縮排。
10.對(duì)分支語(yǔ)句(條件分支、循環(huán)語(yǔ)句等)必須編寫(xiě)注釋。11.盡量避免在注釋中使用縮寫(xiě),特別是不常用縮寫(xiě)。
四、命名規(guī)則
1.標(biāo)識(shí)符要采用英文單詞或其組合,便于記憶和閱讀,切忌使用漢語(yǔ)拼音來(lái)命名。嚴(yán)格禁止使用連續(xù)的下劃線,下劃線也不能出現(xiàn)在標(biāo)識(shí)符頭或結(jié)尾(預(yù)編譯開(kāi)關(guān)除外)。
2.程序中不要出現(xiàn)僅靠大小寫(xiě)區(qū)分的相似的標(biāo)識(shí)符。
3.用正確的反義詞組命名具有互斥意義的變量或相反動(dòng)作的函數(shù)等。
4.宏、常量名都要使用大寫(xiě)字母, 用下劃線 ‘_’分割單詞。預(yù)編譯開(kāi)關(guān)的定義使用下劃線 ‘_’開(kāi)始。
5.變量名長(zhǎng)度應(yīng)小于31個(gè)字符,以保持與ANSI C標(biāo)準(zhǔn)一致。不得取單個(gè)字符(如i、j、k等)作為變量名,但是局部循環(huán)變量除外。
6.程序中局部變量不要與全局變量重名。7.使用一致的前綴來(lái)區(qū)分變量的作用域。
g_
:全局變量 s_
:模塊內(nèi)靜態(tài)變量
空:局部變量不加范圍前綴
8.使用一致的小寫(xiě)類型指示符作為前綴來(lái)區(qū)分變量的類型。說(shuō)明:常用變量類型前綴列表如下:
i
: int
f
: float d : double c
: char uc
: unsigned char 或 BYTE l : long p
: pointer b
: BOOL h : HANDLE w
: unsigned short 或 WORD dw : DWORD或 unsigned long a
:數(shù)組,array of TYPE str
:字符串 t :結(jié)構(gòu)類型
9.完整的變量名應(yīng)由前綴+變量名主體組成,變量名的主體應(yīng)當(dāng)使用“名詞”或者“形容詞+名詞”,且首字母必須大寫(xiě)。
float g_fValue;10.函數(shù)名用大寫(xiě)字母開(kāi)頭的單詞組合而成,且應(yīng)當(dāng)使用“動(dòng)詞”或者“動(dòng)詞+名詞”(動(dòng)賓詞組)。
11.結(jié)構(gòu)名、聯(lián)合名、枚舉名由前綴T_ 開(kāi)頭。事件名由前綴EV_ 開(kāi)頭。12.標(biāo)識(shí)符前最好不加項(xiàng)目、產(chǎn)品、部門(mén)的標(biāo)識(shí)。
五、變量常量與類型
1.定義全局變量時(shí)必須仔細(xì)分析,明確其含義、作用、取值范圍及與其它全局變量間的關(guān)系。
2.明確全局變量與操作此全局變量的函數(shù)或過(guò)程的關(guān)系。3.一個(gè)變量有且只有一個(gè)功能,不能把一個(gè)變量用作多種用途。4.循環(huán)語(yǔ)句與判斷語(yǔ)句中,不允許對(duì)其它變量進(jìn)行計(jì)算與賦值。5.宏定義中如果包含表達(dá)式或變量,表達(dá)式和變量必須用小括號(hào)括起來(lái)。6.使用宏定義多行語(yǔ)句時(shí), 必須使用 { } 把這些語(yǔ)句括起來(lái)。
建議:
? 盡量構(gòu)造僅有一個(gè)模塊或函數(shù)可以修改、創(chuàng)建的全局變量,而其余有關(guān)模塊或函數(shù)只能訪問(wèn)。
? 對(duì)于全局變量通過(guò)統(tǒng)一的函數(shù)訪問(wèn)。
? 盡量使用const說(shuō)明常量數(shù)據(jù),對(duì)于宏定義的常數(shù),必須指出其類型。? 最好不要在語(yǔ)句塊內(nèi)聲明局部變量。
7.結(jié)構(gòu)和聯(lián)合必須被類型化。typedef struct {
char acName[NAME_SIZE];WORD wScore;} T_Student;
T_Student *ptStudent;
建議:
? 使用嚴(yán)格形式定義的、可移植的數(shù)據(jù)類型,盡量不要使用與具體硬件或軟件環(huán)境關(guān)系密切的變量。
? 結(jié)構(gòu)是針對(duì)一種事務(wù)的抽象,功能要單一,不要設(shè)計(jì)面面俱到的數(shù)據(jù)結(jié)構(gòu)。? 不同結(jié)構(gòu)間的關(guān)系要盡量簡(jiǎn)單,若兩個(gè)結(jié)構(gòu)間關(guān)系較復(fù)雜、密切,那么應(yīng)合為一個(gè)結(jié)構(gòu)。
? 結(jié)構(gòu)中元素的個(gè)數(shù)應(yīng)適中。若結(jié)構(gòu)中元素個(gè)數(shù)過(guò)多可考慮依據(jù)某種原則把元素組成不同的子結(jié)構(gòu),以減少原結(jié)構(gòu)中元素的個(gè)數(shù)。
? 仔細(xì)設(shè)計(jì)結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象,對(duì)于結(jié)構(gòu)中未用的位明確地給予保留。
? 結(jié)構(gòu)的設(shè)計(jì)要盡量考慮向前兼容和以后的版本升級(jí),并為某些未來(lái)可能的應(yīng)用保留余地(如預(yù)留一些空間等)。
? 合理地設(shè)計(jì)數(shù)據(jù)并使用自定義數(shù)據(jù)類型,盡量減少?zèng)]有必要的數(shù)據(jù)類型默認(rèn)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換。
? 當(dāng)聲明數(shù)據(jù)結(jié)構(gòu)時(shí),必須考慮機(jī)器的字節(jié)順序、使用的位域及字節(jié)對(duì)齊等問(wèn)題。
六、表達(dá)式與語(yǔ)句
1.在表達(dá)式中使用括號(hào),使表達(dá)式的運(yùn)算順序更清晰。
if(((iYear % 4 == 0)&&(iYear % 100!= 0))||(iYear % 400 == 0))2.避免表達(dá)式中的附加功能,不要編寫(xiě)太復(fù)雜的復(fù)合表達(dá)式。3.不可將浮點(diǎn)變量用“==”或“!=”與任何數(shù)字比較。
4.應(yīng)當(dāng)將指針變量用“==”或“!=”與NULL比較。
5.在switch語(yǔ)句中,每一個(gè)case分支必須使用break結(jié)尾,最后一個(gè)分支必須是default分支。
6.不可在for 循環(huán)體內(nèi)修改循環(huán)變量,防止for 循環(huán)失去控制。
建議:
? 循環(huán)嵌套次數(shù)不大于3次。
? do while語(yǔ)句和while語(yǔ)句僅使用一個(gè)條件。? 當(dāng)switch語(yǔ)句的分支比較多時(shí),采用數(shù)據(jù)驅(qū)動(dòng)方式。
如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大,宜將邏輯判斷移到循環(huán)體的外面。
? for語(yǔ)句的循環(huán)控制變量的取值采用“半開(kāi)半閉區(qū)間”寫(xiě)法。? 在進(jìn)行“==”比較時(shí),將常量或常數(shù)放在“==”號(hào)的左邊。
七、參數(shù)
1.如果函數(shù)沒(méi)有參數(shù),則用void填充。
void SetValue(int iWidth, int iHeight);float GetValue(void);2.如果參數(shù)是指針,且僅作輸入用,則應(yīng)在類型前加const。(防止該指針在函數(shù)體內(nèi)被意外修改。)
3.當(dāng)結(jié)構(gòu)變量作為參數(shù)時(shí),應(yīng)傳送結(jié)構(gòu)的指針而不傳送整個(gè)結(jié)構(gòu)體,并且不得修改結(jié)構(gòu)中的元素,用作輸出時(shí)除外。
4.不要省略返回值的類型,如果函數(shù)沒(méi)有返回值,那么應(yīng)聲明為void類型。5.對(duì)于有返回值的函數(shù),每一個(gè)分支都必須有返回值。(為了保證對(duì)被調(diào)用函數(shù)返回值的判斷,有返回值的函數(shù)中的每一個(gè)退出點(diǎn)都需要有返回值)
6.對(duì)輸入?yún)?shù)的正確性和有效性進(jìn)行檢查。7.防止將函數(shù)的參數(shù)作為工作變量。
void SumData(int iNum, int *piData, int *piSum){
int iCount;
int iSumTmp;// 存儲(chǔ)“和”的臨時(shí)變量
iSumTmp = 0;
for(iCount = 0;iCount < iNum;iCount++)
{
iSumTmp += piData[iCount];}
*piSum = iSumTmp;} 反例:
void SumData(int iNum, int *piData, int *piSum){
int iCount;
*piSum = 0;
for(iCount = 0;iCount < iNum;iCount++){
*piSum += piData[iCount];// piSum成了工作變量,不好。} }
8.必須對(duì)所調(diào)用函數(shù)的錯(cuò)誤返回值進(jìn)行處理。(函數(shù)返回錯(cuò)誤,往往是因?yàn)檩斎氲膮?shù)不合法,或者此時(shí)系統(tǒng)已經(jīng)出現(xiàn)了異常。如果不對(duì)錯(cuò)誤返回值進(jìn)行必要的處理,會(huì)導(dǎo)致錯(cuò)誤的擴(kuò)大,甚至導(dǎo)致系統(tǒng)的崩潰。)
八、可靠性
1.在程序編制之前,必須了解編譯系統(tǒng)的內(nèi)存分配方式,特別是編譯系統(tǒng)對(duì)不同類型的變量的內(nèi)存分配規(guī)則,如局部變量在何處分配、靜態(tài)變量在何處分配等。
2.防止內(nèi)存操作越界。
3.必須對(duì)動(dòng)態(tài)申請(qǐng)的內(nèi)存做有效性檢查,并進(jìn)行初始化;動(dòng)態(tài)內(nèi)存的釋放必須和分配成對(duì)以防止內(nèi)存泄漏,釋放后內(nèi)存指針置為NULL。
4.變量在使用前應(yīng)初始化,防止未經(jīng)初始化的變量被引用。5.指針類型變量必須初始化為NULL。6.指針不要進(jìn)行復(fù)雜的邏輯或算術(shù)操作。
7.如果指針類型明確不會(huì)改變,應(yīng)該強(qiáng)制為const類型的指針,以加強(qiáng)編譯器的檢查。8.減少指針和數(shù)據(jù)類型的強(qiáng)制類型轉(zhuǎn)化。9.移位操作一定要確定類型。
10.對(duì)變量進(jìn)行賦值時(shí),必須對(duì)其值進(jìn)行合法性檢查,防止越界等現(xiàn)象發(fā)生。11.類中的屬性應(yīng)聲明為private,用公有的函數(shù)訪問(wèn)。
12.在編寫(xiě)派生類的賦值函數(shù)時(shí),注意不要忘記對(duì)基類的成員變量重新賦值。13.構(gòu)造函數(shù)應(yīng)完成簡(jiǎn)單有效的功能,不應(yīng)完成復(fù)雜的運(yùn)算和大量的內(nèi)存管理。14.不要在棧中分配類的實(shí)例,也不要生成全局類實(shí)例。
15.正確處理拷貝構(gòu)造函數(shù)與賦值函數(shù)。
16.過(guò)程/函數(shù)中申請(qǐng)的(為打開(kāi)文件而使用的)文件句柄,在過(guò)程/函數(shù)退出之前要關(guān)閉,除非要把這個(gè)句柄傳遞給其它函數(shù)使用。
九、可測(cè)試性
1.在同一項(xiàng)目組或產(chǎn)品組內(nèi),為準(zhǔn)備集成測(cè)試和系統(tǒng)聯(lián)調(diào),要有一套統(tǒng)一的調(diào)測(cè)開(kāi)關(guān)及相應(yīng)信息輸出函數(shù),并且要有詳細(xì)的說(shuō)明。統(tǒng)一的調(diào)試接口和輸出函數(shù)由模塊設(shè)計(jì)和測(cè)試人員根據(jù)項(xiàng)目特性統(tǒng)一制訂,由項(xiàng)目系統(tǒng)人員統(tǒng)一納入系統(tǒng)設(shè)計(jì)中。
2.在同一個(gè)項(xiàng)目組或產(chǎn)品組內(nèi),調(diào)測(cè)打印出的信息串要有統(tǒng)一的格式。信息串中應(yīng)當(dāng)包含所在的模塊名(或源文件名)及行號(hào)等信息。
3.在編寫(xiě)代碼之前,應(yīng)預(yù)先設(shè)計(jì)好程序調(diào)試與測(cè)試的方法和手段,并設(shè)計(jì)好各種調(diào)測(cè)開(kāi)關(guān)及相應(yīng)測(cè)試代碼(如打印函數(shù)等)。
十、斷言與錯(cuò)誤處理
1.整個(gè)軟件系統(tǒng)應(yīng)該采用統(tǒng)一的斷言。如果系統(tǒng)不提供斷言,則應(yīng)該自己構(gòu)造一個(gè)統(tǒng)一的斷言供編程時(shí)使用。
2.使用斷言捕捉不應(yīng)該發(fā)生的非法情況。不要混淆非法情況與錯(cuò)誤情況之間的區(qū)別,后者是必然存在的并且是一定要作出處理的。
3.指向指針的指針及更多級(jí)的指針必須逐級(jí)檢查。4.對(duì)較復(fù)雜的斷言加上明確的注釋。
5.用斷言保證沒(méi)有定義的特性或功能不被使用。
6.用調(diào)測(cè)開(kāi)關(guān)來(lái)切換軟件的DEBUG版和RELEASE版,而不要同時(shí)存在RELEASE版本和DEBUG版本的不同源文件,以減少維護(hù)的難度。
7.正式軟件產(chǎn)品中應(yīng)把斷言及其它調(diào)測(cè)代碼去掉(即把有關(guān)的調(diào)測(cè)開(kāi)關(guān)關(guān)掉)。8.在軟件系統(tǒng)中設(shè)置與取消有關(guān)測(cè)試手段,不能對(duì)軟件實(shí)現(xiàn)的功能等產(chǎn)生影響。9.用斷言來(lái)檢查程序正常運(yùn)行時(shí)不應(yīng)發(fā)生但在調(diào)測(cè)時(shí)有可能發(fā)生的非法情況。
第五篇:軟件編程書(shū)籍清單
軟件編程書(shū)籍·推薦清單
編程基礎(chǔ):
1、linux程序設(shè)計(jì)(第四版)
--學(xué)習(xí)linux的基本程序設(shè)計(jì)
2、數(shù)據(jù)結(jié)構(gòu)(C++描述)
--相關(guān)的C++版本數(shù)據(jù)結(jié)構(gòu)均可,學(xué)習(xí)基本的鏈表、棧、隊(duì)列等基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
3、C++程序設(shè)計(jì)(譚浩強(qiáng))
--學(xué)習(xí)C++程序中類的基本設(shè)計(jì),如果有C++基礎(chǔ),就考慮看C++ primer4、C++ GUI Qt4編程
--學(xué)習(xí)圖形化界面程序的開(kāi)發(fā)及使用QT庫(kù)
網(wǎng)絡(luò)基礎(chǔ):
1、計(jì)算機(jī)網(wǎng)絡(luò)(謝希仁)
--學(xué)習(xí)應(yīng)用程序如何通過(guò)網(wǎng)絡(luò)進(jìn)行相互連通,主要看運(yùn)輸層、網(wǎng)絡(luò)層
Tcp/ip
建議在學(xué)習(xí)的過(guò)程中,做一些小項(xiàng)目以鍛煉動(dòng)手能力,可以考慮做一個(gè)局域網(wǎng)聊天室。
編程進(jìn)階:
1、C++ primer
--深入理解C++程序設(shè)計(jì)
2、設(shè)計(jì)模式
--理解如何設(shè)計(jì)可復(fù)用、易維護(hù)的代碼
3、unix網(wǎng)絡(luò)編程
--理解如何構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用程序
4、深入理解計(jì)算機(jī)系統(tǒng)
--理解程序是如何運(yùn)行的,如何構(gòu)建高性能的應(yīng)用程序