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

concentrate on c/c++ related technology

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

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

常用鏈接

留言簿(9)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

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


 

posted on 2008-03-01 12:09 jolley 閱讀(1007) 評論(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>
            久久久午夜电影| 午夜精品福利在线观看| 久久综合狠狠综合久久综合88| 亚洲香蕉网站| 国产视频在线观看一区二区| 久久久综合视频| 蜜臀久久久99精品久久久久久 | 久久综合影视| 在线观看一区视频| 欧美激情免费观看| 欧美午夜不卡在线观看免费| 欧美一区二区三区在线看| 欧美资源在线观看| 日韩一级黄色av| 亚洲欧美日韩一区二区| 亚洲大片av| 一二美女精品欧洲| 红桃av永久久久| 亚洲精品在线观| 国产一区二区久久| 亚洲高清久久久| 欧美日韩亚洲一区三区| 久久久久久久久一区二区| 欧美极品一区| 久久综合狠狠综合久久综青草 | 欧美日韩麻豆| 欧美二区不卡| 樱桃成人精品视频在线播放| 一区二区日本视频| 国产一区二区三区在线观看精品| 亚洲国产日韩欧美| 国产日韩一区二区三区在线| 亚洲国产成人av好男人在线观看| 国产伦理一区| 亚洲六月丁香色婷婷综合久久| 国产一区再线| 亚洲深夜福利在线| 亚洲免费av观看| 久久艳片www.17c.com| 欧美一区二区视频观看视频| 欧美三级视频在线播放| 91久久精品一区二区别| 黄色成人免费网站| 亚洲欧美在线视频观看| 一区二区久久久久久| 久久人体大胆视频| 久久精品麻豆| 国产精品自在欧美一区| 99re热这里只有精品免费视频| 亚洲国产精品va| 久久久国产精品一区| 欧美一区二区三区日韩| 欧美日韩精品是欧美日韩精品| 亚洲大胆av| 亚洲国产精品v| 牛牛精品成人免费视频| 欧美成人精品福利| 在线观看91久久久久久| 久久久久久久尹人综合网亚洲| 欧美中文字幕第一页| 国产伦精品一区二区三区免费| 99在线精品观看| 一区二区欧美激情| 欧美视频日韩视频| 中文精品一区二区三区| 亚洲一区欧美一区| 国产精品视频一二| 午夜精品视频在线观看| 久久国产66| 黑丝一区二区| 麻豆精品传媒视频| 亚洲高清免费| 亚洲图片你懂的| 国产拍揄自揄精品视频麻豆| 欧美亚洲综合久久| 久久视频这里只有精品| 在线免费观看视频一区| 欧美成人精品在线| 日韩一级大片| 欧美在线播放一区| 黄色亚洲在线| 欧美va亚洲va香蕉在线| 99国产精品国产精品毛片| 午夜精品国产更新| 一区在线观看视频| 欧美极品一区二区三区| 一区二区福利| 老司机凹凸av亚洲导航| 亚洲人屁股眼子交8| 欧美三级特黄| 久久精品国产精品亚洲综合| 欧美激情一区二区三区在线视频| 亚洲深爱激情| 精品1区2区3区4区| 欧美日韩999| 欧美影院午夜播放| 亚洲高清不卡在线观看| 久久精品国产一区二区三| 亚洲国产精选| 欧美一级视频精品观看| 影音先锋另类| 国产精品护士白丝一区av| 久久九九全国免费精品观看| 亚洲久久视频| 浪潮色综合久久天堂| 一本大道久久a久久精二百| 国模精品一区二区三区色天香| 欧美精品激情| 久久激五月天综合精品| 99亚洲一区二区| 亚洲电影毛片| 久久青草欧美一区二区三区| 中日韩午夜理伦电影免费| 亚洲第一二三四五区| 国产区精品视频| 欧美日韩综合不卡| 免费观看不卡av| 久久久精品五月天| 亚洲欧美国产va在线影院| 亚洲精品国偷自产在线99热| 欧美凹凸一区二区三区视频| 性久久久久久久久| 中文国产一区| 一本一本久久| 99国产精品久久久久久久久久 | 另类亚洲自拍| 欧美中文字幕在线播放| 亚洲欧美春色| 亚洲宅男天堂在线观看无病毒| 99热精品在线| 亚洲乱码精品一二三四区日韩在线 | 欧美日本韩国一区| 久久嫩草精品久久久精品一| 欧美在线观看日本一区| 亚洲欧美日韩精品久久亚洲区| 一区二区欧美国产| 一本不卡影院| 这里是久久伊人| 中文亚洲欧美| 亚洲影院高清在线| 亚洲免费视频网站| 亚洲欧美日韩一区| 欧美在线观看一区| 欧美资源在线观看| 久久另类ts人妖一区二区| 久久久国产精品亚洲一区 | 欧美美女操人视频| 欧美人与禽性xxxxx杂性| 欧美国产日韩一区二区三区| 欧美电影免费观看网站| 欧美日韩国产区一| 欧美视频一区| 国产亚洲一级高清| 激情久久五月| 亚洲三级网站| 中文亚洲字幕| 欧美一区午夜精品| 久久视频国产精品免费视频在线| 看欧美日韩国产| 亚洲国内在线| 一区二区三区高清在线观看| 亚洲综合丁香| 巨胸喷奶水www久久久免费动漫| 欧美国产精品v| 国产精品xxxxx| 国模精品一区二区三区| 亚洲人成毛片在线播放| 亚洲免费在线视频| 亚洲综合大片69999| 免费不卡在线视频| 欧美 日韩 国产 一区| 欧美日韩激情小视频| 国产日韩欧美中文| 亚洲国产精品一区| 亚洲制服av| 欧美99在线视频观看| 中文久久乱码一区二区| 久久免费午夜影院| 国产精品久久久久秋霞鲁丝| 伊人久久亚洲美女图片| 99国产精品久久久久久久久久| 欧美一区高清| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲一区二区三区四区在线观看| 久久精品视频99| 欧美视频中文在线看| 尤物精品在线| 欧美亚洲日本国产| 日韩午夜在线电影| 久久综合中文色婷婷| 国产精品综合色区在线观看| 亚洲三级视频在线观看| 久久精品国产在热久久 | 久久在精品线影院精品国产| 亚洲久色影视| 免费在线成人av| 黄色成人片子| 久久高清一区| 亚洲欧美视频在线观看视频| 欧美日韩国产在线播放|