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

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>
            欧美色欧美亚洲高清在线视频| 欧美激情亚洲精品| 免费看亚洲片| 欧美成人精品一区| 欧美黄色大片网站| 欧美黄色aa电影| 日韩视频一区二区在线观看 | 免费成人在线视频网站| 噜噜噜久久亚洲精品国产品小说| 蜜臀va亚洲va欧美va天堂 | 欧美在线免费播放| 久久蜜桃av一区精品变态类天堂| 欧美福利视频在线| 国产精品一区二区久久国产| 有码中文亚洲精品| 亚洲午夜羞羞片| 久久噜噜噜精品国产亚洲综合| 欧美高清影院| 午夜精品美女自拍福到在线 | 国产日韩精品久久| 亚洲人成人99网站| 香蕉成人伊视频在线观看| 米奇777在线欧美播放| 一本大道久久a久久综合婷婷| 性xx色xx综合久久久xx| 欧美高清在线一区| 亚洲精品久久久久中文字幕欢迎你| 欧美日本网站| 国产日韩精品一区二区| 亚洲精品一区二区三区av| 欧美影视一区| 亚洲精品一二区| 久久久久se| 国产精品欧美在线| 亚洲精选大片| 久久最新视频| 亚洲欧美自拍偷拍| 欧美日韩在线三级| 亚洲裸体在线观看| 欧美aa在线视频| 性欧美18~19sex高清播放| 欧美日韩三级电影在线| 亚洲福利久久| 久久综合色8888| 欧美中文字幕视频| 国产日韩视频| 欧美在线视频免费播放| 99精品视频免费观看| 欧美高清视频在线播放| 亚洲国产99精品国自产| 美女精品一区| 久久综合九色欧美综合狠狠| 极品中文字幕一区| 噜噜噜久久亚洲精品国产品小说| 欧美一区二区精美| 国产人久久人人人人爽| 久久高清国产| 久久国产精品久久精品国产| 国产自产2019最新不卡| 久久综合中文| 欧美 亚欧 日韩视频在线| 亚洲高清三级视频| 欧美国产精品一区| 男人天堂欧美日韩| 亚洲乱码国产乱码精品精可以看| 欧美激情一二三区| 欧美国产日本| 中国女人久久久| 一区二区三区久久精品| 国产精品日韩精品欧美在线| 久久九九热re6这里有精品| 欧美一二三区精品| 精品69视频一区二区三区| 欧美成人一二三| 欧美调教vk| 欧美影院在线| 久久久久国产免费免费| 亚洲国产日韩欧美一区二区三区| 亚洲国产电影| 国产精品久久一级| 久久综合五月| 欧美日韩国产不卡| 久久久国产视频91| 免费的成人av| 欧美在线视频不卡| 六月婷婷一区| 午夜欧美电影在线观看| 欧美中文字幕在线观看| 亚洲综合另类| 久久av二区| 亚洲精品一级| 亚洲欧美中日韩| 亚洲精品视频一区二区三区| 日韩视频在线一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲人成亚洲人成在线观看| 欧美亚州在线观看| 免费成人黄色av| 国产精品日韩欧美| 嫩草国产精品入口| 国产精品视频1区| 亚洲黄色高清| 一区二区在线观看av| 一区二区三区欧美视频| 亚洲经典三级| 久久久久久电影| 亚洲在线视频观看| 麻豆9191精品国产| 久久久亚洲精品一区二区三区| 欧美日韩视频一区二区三区| 你懂的一区二区| 国产人成一区二区三区影院| 99在线精品视频| 99精品国产在热久久婷婷| 久久手机免费观看| 性欧美8khd高清极品| 欧美日韩国产首页| 欧美华人在线视频| 在线看日韩欧美| 久久久久88色偷偷免费| 久久狠狠婷婷| 国产精品人人爽人人做我的可爱| 亚洲国产黄色片| 亚洲电影在线看| 久久综合激情| 亚洲电影免费| 亚洲国产三级| 另类尿喷潮videofree| 久久久久久久久一区二区| 国产精品久久久久一区二区三区共| 91久久久国产精品| 日韩一区二区精品| 欧美激情一区二区三区在线视频 | 亚洲嫩草精品久久| 午夜精品久久久久久99热| 欧美日韩免费观看一区二区三区| 亚洲片在线观看| 亚洲午夜国产一区99re久久| 欧美网站在线观看| 亚洲一区欧美| 久久精品人人做人人综合| 国产日产亚洲精品系列| 欧美在线视频免费播放| 久久夜色精品| 91久久香蕉国产日韩欧美9色| 欧美jizz19hd性欧美| 亚洲青色在线| 一二三区精品| 欧美成人首页| 欧美午夜无遮挡| 亚洲一品av免费观看| 欧美夜福利tv在线| 国产欧美精品在线| 久久精品综合一区| 欧美激情在线免费观看| 亚洲特色特黄| 国产婷婷色一区二区三区四区| 欧美亚洲综合在线| 欧美激情精品久久久久久黑人| 亚洲精品五月天| 国产精品一二三视频| 久久久青草婷婷精品综合日韩| 亚洲国产激情| 性欧美激情精品| 在线精品亚洲一区二区| 欧美日韩国产在线看| 亚洲欧美在线看| 亚洲高清在线精品| 午夜精品网站| 亚洲精品四区| 国产一区视频在线观看免费| 欧美激情一区二区在线 | 亚洲精品国产精品国自产在线 | 亚洲国产一区视频| 国产精品九九久久久久久久| 久久久爽爽爽美女图片| 亚洲人成在线观看| 久久一区二区三区av| 中文日韩欧美| 亚洲欧洲一区二区在线观看| 国产欧美精品| 欧美片在线观看| 久久精品久久99精品久久| 一区二区三区精密机械公司 | 欧美在线啊v| 日韩视频二区| 在线观看成人网| 国产日韩欧美高清免费| 欧美日韩一区二区在线观看视频| 久久精品国产第一区二区三区最新章节| 亚洲精品日韩在线观看| 女人香蕉久久**毛片精品| 午夜精品亚洲一区二区三区嫩草| 日韩图片一区| 亚洲欧洲日韩综合二区| 国内精品福利| 国产色爱av资源综合区| 国产精品久久久久秋霞鲁丝| 欧美日韩hd| 欧美激情精品久久久久久|