青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

concentrate on c/c++ related technology

plan,refactor,daily-build, self-discipline,

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

常用鏈接

留言簿(9)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

// 摘自代碼大全2第九章
創(chuàng)建類和子程序的步驟概述.
1 開(kāi)始
2 創(chuàng)建類的總體設(shè)計(jì)
3 創(chuàng)建類中的子程序
4 復(fù)查并測(cè)試整個(gè)類
5 完成
其中3與4之間要進(jìn)行交互,這種交互主要是針對(duì)審查子程序進(jìn)行的,并且2與3之間也要進(jìn)行交互,這種交互主要針對(duì)子程序在類中的總體設(shè)計(jì).
一個(gè)思想是:細(xì)化跟迭代,并且即使反饋直到類功能和子程序功能都清晰,再到5.
創(chuàng)建一個(gè)類的步驟
1)創(chuàng)建類的總體設(shè)計(jì):
設(shè)計(jì)一個(gè)類的過(guò)程中包含一些特有的設(shè)計(jì)任務(wù)--定義類的特定職責(zé),定義類所要隱藏的秘密,以及精確地定義類的接口所代表的抽象概念,決定這個(gè)類是否要從其他類派生而來(lái),以及是否允許其它類再?gòu)乃缮?指出這個(gè)類中關(guān)鍵的公用方法,標(biāo)識(shí)并設(shè)計(jì)出類所需用到的重要數(shù)據(jù)成員.
2)創(chuàng)建類中的子程序
在前述第一個(gè)步驟中標(biāo)識(shí)出類的主要子程序之后,還需要?jiǎng)?chuàng)建這些子程序.在編寫各個(gè)程序時(shí)通常還會(huì)引出更多的或重要,或次要的子程序,創(chuàng)建這些新加入的子程序的過(guò)程往往還會(huì)反過(guò)來(lái)波及類的總體設(shè)計(jì)
3)復(fù)審并測(cè)試整個(gè)類
通常情況下,子程序在創(chuàng)建的同時(shí)也經(jīng)過(guò)了測(cè)試,在整個(gè)類可以工作之后,應(yīng)該再對(duì)其整體進(jìn)行復(fù)查和測(cè)試,以便發(fā)現(xiàn)那些在子程序的獨(dú)立測(cè)試層次上無(wú)法測(cè)出的問(wèn)題.
在創(chuàng)建類的過(guò)程中,2),3)還是要求反復(fù)進(jìn)行的,直到類的總體設(shè)計(jì)是最優(yōu)的.
創(chuàng)建子程序的步驟
創(chuàng)建子程序的過(guò)程中涉及到的主要活動(dòng): 設(shè)計(jì)子程序,檢查設(shè)計(jì),編寫子程序的代碼,檢查代碼.
1 開(kāi)始
2 設(shè)計(jì)子程序(主要借助于偽代碼)
3 檢查設(shè)計(jì)(主要是檢查偽代碼)
4 編寫子程序的代碼
5 復(fù)審并測(cè)試代碼
6 完成
其中2與3是要進(jìn)行交互的,主要是保證偽代碼的質(zhì)量,4與5也是要進(jìn)行交互的,這樣主要保證子程序的質(zhì)量.
偽代碼
偽代碼的指導(dǎo)原則:
1) 用類似英語(yǔ)的語(yǔ)句來(lái)精確描述特定的操作
2) 避免使用目標(biāo)編程語(yǔ)言中的語(yǔ)法元素
3) 在本意的層面上編寫代碼,用偽代碼去描述解決問(wèn)題的方法的意圖,而不是去寫如何在目標(biāo)語(yǔ)言中實(shí)現(xiàn)這個(gè)方法.
4) 在一個(gè)足夠低的層次上編寫代碼,以便可以近乎自動(dòng)地從它生成代碼.
通過(guò)偽代碼編程過(guò)程創(chuàng)建子程序
檢查先決條件
在動(dòng)手去做子程序本身的任何工作之前,應(yīng)該先查看一下該子程序要做的工作是不是已經(jīng)定義好了,是不是能夠與整體設(shè)計(jì)相匹配.另外要結(jié)合項(xiàng)目的需求,檢查這個(gè)子程序是否真正必須的,至少是間接需要的.
定義子程序要解決的問(wèn)題
陳述出該子程序?qū)⒁鉀Q的問(wèn)題,敘述要足夠詳細(xì),以便能去創(chuàng)建這個(gè)子程序,如果高層的設(shè)計(jì)已經(jīng)足夠詳細(xì),那么這項(xiàng)工作可能已經(jīng)完成了,在這個(gè)高層的設(shè)計(jì)里至少應(yīng)該詳細(xì)說(shuō)明下列信息.
1) 這一子程序?qū)⒁[藏的信息
2) 傳給這個(gè)子程序的各項(xiàng)輸入
3) 從該子程序得到的輸出
4) 在調(diào)用程序之前確保有關(guān)的前條件成立(輸入數(shù)據(jù)的取值位于特定范圍之中,有關(guān)的流已經(jīng)初始化,文件已經(jīng)打開(kāi)或者關(guān)閉,緩沖區(qū)已經(jīng)填滿或者清空)
5) 在子程序?qū)⒖刂茩?quán)交回調(diào)用方程序之前,確保其后條件的成立(如輸出數(shù)據(jù)位于特定范圍之內(nèi),流已經(jīng)初始化,文件已經(jīng)打開(kāi)或者關(guān)閉,緩沖區(qū)已填滿或清空)
其中4和5一般通過(guò)判斷前驅(qū)和后繼條件來(lái)進(jìn)行的。前者是保證調(diào)用的條件是否成立,而后者是保證程序的返回值是否是合法的。
為子程序命名
一般地子程序已經(jīng)有一個(gè)清晰的,無(wú)二義性的名字,如果在命名這個(gè)子程序的名字的時(shí)候,有點(diǎn)困難,那么就說(shuō)明,對(duì)該子程序的設(shè)計(jì)不是很清楚,而要去改善設(shè)計(jì)了。
決定如何測(cè)試子程序
在編寫一個(gè)子程序的時(shí)候,要想一想怎么才能測(cè)試它。這在以后的C/C++測(cè)試中都可以部署單元測(cè)試工具Xunit.
在標(biāo)準(zhǔn)庫(kù)中搜尋可用的功能
想用提高代碼的質(zhì)量和生產(chǎn)率,有一個(gè)最重要的途徑就是重用好的代碼。
考慮錯(cuò)誤處理
考慮在子程序中可能出錯(cuò)的環(huán)節(jié),子程序可以用多種方式來(lái)處理錯(cuò)誤,應(yīng)該特別注意去選擇處理錯(cuò)誤的方式。
考慮效率問(wèn)題
主要是兩個(gè)方面的考慮,一是效率,而另一方面是性能。
研究算法和數(shù)據(jù)類型
如果在可用的程序庫(kù)里沒(méi)有所需的功能,它也許會(huì)在某本算法書中介紹過(guò),決定從頭開(kāi)始編寫一段復(fù)雜的代碼之前,查一下算法書看看有什么可用的內(nèi)容。如果采用一個(gè)已有明確定義的算法,則要保證這個(gè)算法正確地轉(zhuǎn)換為你所用的編程語(yǔ)言。
編寫偽代碼
前面的那些步驟主要是為確定一個(gè)思路,這在真正編寫程序的時(shí)候是很有幫助的,在完成前面的準(zhǔn)備工作以后,就可以開(kāi)始用高層次的偽代碼來(lái)寫程序。
一般是從寫子程序的注釋開(kāi)始進(jìn)行編制,主要是說(shuō)明子程序的功能和目的。
考慮數(shù)據(jù)
在整個(gè)過(guò)程中的幾個(gè)不同環(huán)節(jié)對(duì)子程序所用的數(shù)據(jù)進(jìn)行設(shè)計(jì)。
檢查偽代碼
在寫完偽代碼并設(shè)計(jì)完數(shù)據(jù)之后,花上幾分鐘時(shí)間復(fù)雜你寫的偽代碼,然后拋揩這些代碼,想想你該如何向別人解釋這些代碼。
在偽代碼中試驗(yàn)一些想法,留下最好的想法
在你開(kāi)始編寫代碼之前,應(yīng)盡可能用偽代碼去嘗試更多的想法。
編寫子程序的代碼
1 以偽代碼開(kāi)始
2 寫出子程序的聲明
3 編寫第一條和最后一條語(yǔ)句,然后將偽代碼轉(zhuǎn)換為高層次的注釋。
4 每條注釋下面填充代碼
5 檢查代碼
6 收尾工作
7 完成
其中3,4,5可以按照需求進(jìn)行重復(fù)。
寫出子程序的聲明
首先要寫出子程序的接口聲明,即C++中的函數(shù)聲明
把偽代碼轉(zhuǎn)變?yōu)楦邔哟蔚淖⑨?br>接下來(lái),把第一條和最后一條語(yǔ)句寫出來(lái),在C++中也就是"{"和"}".然后將偽代碼轉(zhuǎn)變成注釋.
在每條注釋下面填充代碼
在偽代碼注釋中的每一句話下面填寫代碼。
檢查代碼是否需要進(jìn)一步分解
方法1:把這段注釋下面的代碼重構(gòu)(refactor)成一個(gè)新的子程序。
方法2:遞歸地應(yīng)用偽代碼編程過(guò)程。
檢查代碼
1) 在腦海里檢查程序中的錯(cuò)誤。
理解每行代碼所起的作用,理解為什么需要這行代碼,沒(méi)有什么東西會(huì)僅僅因?yàn)樗瓷先タ尚芯褪钦_的。
編譯子程序
完成檢查之后,就可以編譯這個(gè)程序了。
最大地發(fā)揮編譯子程序所產(chǎn)生的指導(dǎo)建議
1)把編譯器的警告級(jí)別調(diào)到最高,通過(guò)讓編譯器來(lái)檢測(cè)錯(cuò)誤,你可以很容易地查出大量細(xì)微的錯(cuò)誤。
2)使用驗(yàn)證工具,可以通過(guò)使用類似lint這樣的工具來(lái)對(duì)C語(yǔ)言這類語(yǔ)言的編譯器所做的檢查結(jié)果進(jìn)行補(bǔ)充檢查。
3)消除產(chǎn)生錯(cuò)誤消息和警告的所有根源。
在調(diào)試器中逐步執(zhí)行代碼
程序編譯通過(guò)了之后,要在調(diào)試器中逐行執(zhí)行,以確保每行代碼都在按照你所期望的方式執(zhí)行。
測(cè)試代碼
使用你在開(kāi)發(fā)該子程序期間計(jì)劃寫的或者已寫成的測(cè)試用例來(lái)測(cè)試代碼。你可能需要開(kāi)發(fā)一些腳手架來(lái)支持你的測(cè)試用例
消除程序中的錯(cuò)誤
一旦檢測(cè)到錯(cuò)誤,就一定要把它除掉。
收尾工作
檢查子程序的接口
確定所有的輸入,輸出數(shù)據(jù)都參與了計(jì)算,并且所有的參數(shù)也都用到了。
檢查整體的設(shè)計(jì)質(zhì)量
檢查子程序中的變量
檢查子程序的語(yǔ)句和邏輯
檢查子程序的布局
檢查子程序的文檔
除去冗余的注釋。
小結(jié):
之前一直在寫程序,但是發(fā)現(xiàn)時(shí)不時(shí)思路很亂,也沒(méi)有有層次地,有系統(tǒng)地去思考這些類和子程序的設(shè)計(jì),只是去實(shí)現(xiàn)一個(gè)功能,并且能夠達(dá)到所要的目的就可以了,后來(lái)發(fā)現(xiàn)經(jīng)常出問(wèn)題,很常見(jiàn)的就是考慮不周全,在編制代碼以后,才開(kāi)始反悔,后悔當(dāng)初的設(shè)計(jì),然后對(duì)程序產(chǎn)生了消極的情緒,讓我感覺(jué)不爽,看了代碼大全,發(fā)現(xiàn)提供了可行的方法.而且思路比以前清晰多了,感覺(jué)這個(gè)方法很有效,所以記錄在這里.


 

posted on 2008-03-01 12:09 jolley 閱讀(1007) 評(píng)論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频在线一区二区三区| 久久一日本道色综合久久| 最新日韩av| 久久人人97超碰精品888| 在线观看日韩欧美| 亚洲女与黑人做爰| 狠狠色丁香婷婷综合影院| 欧美影视一区| 久久国产精品一区二区三区| 国产日韩在线视频| 久久久久久有精品国产| 久久久久久久久久久成人| 国产午夜精品美女视频明星a级 | 久久手机精品视频| 亚洲大胆在线| 亚洲人成亚洲人成在线观看| 欧美激情国产精品| 欧美一区二区三区男人的天堂| 久久99伊人| 亚洲女人天堂av| 久久女同精品一区二区| 亚洲欧美国内爽妇网| 噜噜噜在线观看免费视频日韩| 亚洲一区二区三区精品在线 | 亚洲欧美国产77777| 黄色成人av在线| 亚洲精品国产精品乱码不99 | 亚洲一区二区精品在线| 久久精品综合一区| 亚洲欧美日韩综合| 欧美黄色小视频| 免费观看久久久4p| 国产丝袜美腿一区二区三区| 久久九九精品| 国产欧美日韩亚洲一区二区三区| 99av国产精品欲麻豆| 好吊日精品视频| 午夜欧美大尺度福利影院在线看| 午夜在线a亚洲v天堂网2018| 伊人久久大香线蕉综合热线| 亚洲中午字幕| 欧美一区视频在线| 国产精品久久久久久久午夜片| 亚洲欧洲一区二区三区| 亚洲片国产一区一级在线观看| 老司机午夜精品视频| 亚洲国产日韩欧美在线图片| 国产精品视频yy9099| 小黄鸭精品密入口导航| 久久超碰97中文字幕| 国产欧美精品| 久久久久久亚洲精品中文字幕| 欧美va亚洲va香蕉在线| 亚洲免费观看在线观看| 欧美网站在线观看| 香蕉成人久久| 欧美顶级大胆免费视频| 99综合在线| 国产亚洲激情在线| 久久精品五月| 欧美在线免费观看| 欧美一区久久| 亚洲欧美日韩在线播放| 国产精品性做久久久久久| 欧美资源在线观看| 99精品国产在热久久婷婷| 久久爱另类一区二区小说| 亚洲精品乱码久久久久久蜜桃91| 日韩视频精品在线| 久久伊人免费视频| 一区二区日韩精品| 亚洲二区在线观看| 国产亚洲日本欧美韩国| 欧美视频一区二区| 欧美精品乱码久久久久久按摩| 欧美一区二区三区喷汁尤物| 一区二区三区日韩在线观看| 欧美激情按摩| 另类成人小视频在线| 久久久综合视频| 欧美主播一区二区三区| 亚洲一区二区3| 一区二区三区成人| 亚洲一区二区三区免费观看| 一区二区免费在线播放| 一区二区三区免费网站| 一区二区日韩| 午夜久久一区| 久久久国产一区二区三区| 欧美一级理论片| 久久一日本道色综合久久| 欧美激情按摩在线| 一个色综合导航| 久久精品观看| 欧美日韩免费观看一区| 国产视频自拍一区| 亚洲欧洲精品成人久久奇米网| 亚洲精品一区二区三区在线观看| 亚洲系列中文字幕| 久久综合精品国产一区二区三区| 欧美高清不卡| 亚洲一区二区三区影院| 久久久精彩视频| 欧美精品一区二区高清在线观看| 亚洲激情第一页| 亚洲欧美网站| 亚洲国产综合在线| 一本色道精品久久一区二区三区| 中文无字幕一区二区三区| 欧美婷婷在线| 国产精品婷婷午夜在线观看| 国产在线不卡精品| 亚洲人成毛片在线播放| 亚洲欧洲日韩女同| 亚洲一区尤物| 欧美福利视频网站| 亚洲一区二区精品在线观看| 久久国内精品自在自线400部| 午夜视频久久久| 欧美大片在线观看| 亚洲在线观看免费视频| 欧美国产精品日韩| 欧美三级日韩三级国产三级| 激情久久久久久久| 亚洲一区二区三区影院| 99精品视频免费全部在线| 亚洲精品中文字幕女同| 欧美一级免费视频| 欧美福利视频网站| 亚洲欧美一区二区三区在线| 老鸭窝毛片一区二区三区| 国产伦精品一区二区三区高清 | 亚洲一区二区三区高清| 欧美成人在线影院| 国外精品视频| 久久久综合网站| 久久精品卡一| 亚洲电影免费观看高清完整版在线观看 | 欧美在线免费观看亚洲| 国产精品国产三级国产普通话蜜臀| **欧美日韩vr在线| 欧美高清一区二区| 欧美另类视频| 香蕉乱码成人久久天堂爱免费 | 一区二区三区高清不卡| 欧美视频一区二区三区四区| 国产精品99久久99久久久二8| 亚洲日韩成人| 国产精品国产三级国产专播精品人 | 亚洲激情网站| 欧美日本国产精品| 亚洲精品一二区| 亚洲一区二区精品在线观看| 激情视频一区二区| 亚洲肉体裸体xxxx137| 国产精品国产三级国产专播精品人| 亚洲一区二区视频| 久久精品视频亚洲| 在线综合视频| 美女视频网站黄色亚洲| 激情综合在线| 亚洲一区久久久| 亚洲乱码一区二区| 久久精品亚洲| 欧美在线视频观看| 欧美日韩视频在线一区二区| 久久久97精品| 国产精品爽爽ⅴa在线观看| 亚洲电影天堂av| 激情综合色丁香一区二区| 中日韩在线视频| aa级大片欧美| 欧美日韩精品欧美日韩精品一| 久久人人爽人人| 国内欧美视频一区二区| 亚洲一区欧美一区| 亚洲欧美激情视频| 国产精品毛片| 亚洲欧美视频在线| 欧美伊人久久大香线蕉综合69| 亚洲国产欧美一区| 亚洲性夜色噜噜噜7777| 欧美日韩黄色大片| 亚洲免费高清| 免费观看成人| 亚洲精品一区二区三区99| 亚洲人成网站999久久久综合| 久久综合色影院| 一区二区福利| 久久久久综合| 一本色道久久精品| 国产乱码精品一区二区三| 久久gogo国模啪啪人体图| 美玉足脚交一区二区三区图片| 国产日韩欧美三级| 麻豆精品精华液| 99日韩精品| 欧美大成色www永久网站婷| 亚洲一区二区视频在线| 国产毛片一区二区|