<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      pBendan

      導航

      如何建立一個子程序

          首先我們要理解這里面的“子程序”指的是什么?在這里,“子程序”理解為一個函數(shù)比較合適,可以是一個執(zhí)行特定功能的全局函數(shù)、可以是一個類里面的成員函數(shù)(注:《代碼大全》里面之所以用“子程序”來表述,是因為它所講述的規(guī)則與方法是與語言無關(guān)的,我們應(yīng)該根據(jù)自己實際編程中所使用的語言來自行定義“子程序”),也可以這樣理解“子程序”,它是完成某一特定功能的一個小單元,其粒度比模塊要小,而比數(shù)據(jù)類型、結(jié)構(gòu)控制語句要大。

          綜合《代碼大全》里面的介紹和自己的理解,將“如何建立一個子程序”分為三個步驟:1. 之間的準備工作;2. 建立操作;3. 檢查及測試。(其實這是放之四海而皆準的普遍規(guī)則,做任何事情只要遵守這三條都不會有太大問題的,在這里算是投機取巧了,主要是為了方便理解和記憶)

        1. 之前的準備工作

      問題引發(fā)設(shè)計,如果沒有需求我們就不需要去設(shè)計一個“子程序”啦。那么我們首先就要明確地定義出這個“問題”啦,一般情況下,這個“問題”在整個的程序框架中會有所提及,而如何那時問題定義比較清晰的話,我們的準備工作可以幾乎省去。不管怎么樣,我們都要明確幾個問題:

      •  將要設(shè)計的“子程序”要完成什么任務(wù);
      • “子程序”主要應(yīng)該在哪些場合,是為某個模塊定義的功能,還是適用于整個系統(tǒng);
      • “子程序”的輸入、輸出分別是什么;
      •  建立這個“子程序”需要與系統(tǒng)其他哪些部分發(fā)生關(guān)系,需要建立新的數(shù)據(jù)類型和算法么;

      明確這些以后,我們的準備工作就做完了,那么最后為我們的“子程序”起一個清晰、直觀、簡介的名字吧!

        2. 建立操作

      建立操作的第一步,也是大部分程序員忽視的一個步驟(《代碼大全》里面這樣說的啊!)——使用PDL(program design language)語言來精確描述“子程序”所執(zhí)行的操作。

          這一操作是相對于使用具體程序語言編寫“子程序”更抽象、更上一層的操作步驟,抽象并不意味著復雜,反而會更加簡單清晰,以便使后續(xù)的編碼、檢查、調(diào)試操作更容易。因為使用PDL語言會帶來以下好處:

      • 使用自然語言而不是編程語言來描述“子程序”操作,使程序員不必受具體編程語言的語法約束,而將精力放在設(shè)計上;
      • 容易查找錯誤,即使查找出錯誤,修改的代價也比較小;
      • 如果PDL語言描述得比較得當,那么編碼工作就是一個簡單的翻譯工作;
      • 維護起來比較方便,PDL語言為“子程序”提供了清晰的注釋信息;

          確認PDL描述沒有問題后,可以著手編寫程序代碼了,如果PDL語言對于“子程序”描述的足夠準確并得當?shù)脑挘敲淳帉懘a的過程可能是一個簡單、機械的工作,程序員應(yīng)該很快能完成“子程序“設(shè)計。

          但是,并不是說設(shè)計出一個行為良好的PDL描述就完事大吉了,有些情況下,PDL描述看似完美,但將它轉(zhuǎn)化為代碼時會出現(xiàn)很多錯誤,所以這是要不檢查是不是代碼本身出錯,或者是PDL語言描述還存在不足,如果是的話,重新用PDL語言描述。

        3. 檢查及測試

      在編譯“子程序”之前,程序員有必要進行一些檢查工作:

      1. “子程序”是不是按照最初的需求?
      2. 完成的任務(wù)是不是明確?
      3. 可以能現(xiàn)的意外情況?如何解決?
      4. “子程序”接口設(shè)計、實現(xiàn)得合適么?
      5. “子程序”會不會有明顯的語法錯誤?

          確認檢查無誤以后,程序員可以對“子程序”實施測試了,《代碼大全》里面建議我們不要急于對“子程序”實施編譯,并試圖通過編譯來查找程序中的錯誤,如果某次編譯出現(xiàn)了錯誤,那么程序員往往急切萬分得修改以試下次編譯不要出錯,這并不是發(fā)現(xiàn)并排除錯誤的正確方法。《大碼大全》推薦我們這樣做:

      1. 自己在心里逐行執(zhí)行“子程序”,通過自己的“計算機系統(tǒng)”將程序執(zhí)行一下,試圖找出錯誤并更正;
      2. 編譯“子程序”,消除所有錯誤和警告;
      3. 逐行調(diào)試程序,監(jiān)視程序運行結(jié)果,必要情況下編寫一些輔助代碼幫助程序測試;

       

      總結(jié):

          閱讀《代碼大全》關(guān)于“子程序”建立這部分,確實對程序員的編程工作有一定啟發(fā),也確實指出了一些有效的方法和容易忽略的問題。下面結(jié)合書中介紹的內(nèi)容和自己的理解談一下自已的認識:

      1. 首先,我們應(yīng)該清楚地認識到,書中所談應(yīng)該是大而全的方法論,實際執(zhí)行的時候可以根據(jù)具體情況做酌情取舍。書中所列出的條條目目加起來總共得幾十條,如果我們所寫的“子程序”是一個功能簡單、邏輯清晰的操作,確實沒有必要按照書中所寫的來逐步進行,這樣反而會降低效率。
      2. 書中介紹使用PDL語言說要使用自然語言,避免設(shè)計具體編程語言的引入,這點我認為過于刻板,PDL語言之所以沒有確定語法格式,就是為了可以抽象地、明了地描述“子程序”操作,所以加入具體編程語言的風格、語法未嘗不可,畢竟最終我們是要使用具體的編程語言來實現(xiàn)功能,加入這些具體編程語言的語法、風格反而使描述效果更貼切。

      posted on 2014-07-27 17:56  pBendan  閱讀(14332)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 精品视频福利| 国精偷拍一区二区三区| 色二av手机版在线| 国产精品视频免费一区二区三区| 少妇久久久被弄到高潮| 天堂在线最新版在线天堂| 亚洲国产色播AV在线| 久久精品国产蜜臀av| 婷婷五月综合激情| 无码福利写真片视频在线播放| 东京热高清无码精品| 亚洲一级特黄大片在线观看| 欧美日韩中文字幕久久伊人 | 99精品久久精品| 性中国videossexo另类| 加勒比久久综合网天天| 精品乱码一区二区三四五区| 国产精品一区中文字幕| 国产成人a在线观看视频免费| 人妻少妇精品视频专区| 国产精品九九九一区二区| 又大又硬又爽免费视频| 国产精品人成视频免费国产| 亚洲综合久久一区二区三区| 护士的小嫩嫩好紧好爽| 国产精品免费看久久久| 子洲县| 少妇裸交aa大片| 国产成人久久综合一区| 狠狠综合久久综合88亚洲| 亚洲精品国产老熟女久久| 国产一级r片内射免费视频| 乱人伦中文字幕成人网站在线| 亚洲天堂成年人在线视频| 国产AV无码专区亚洲AV漫画| 狠狠躁夜夜躁人人爽天天5| 免费一级黄色好看的国产| 乱码视频午夜在线观看| 国产精品麻豆成人av电影艾秋| 国产中文字幕精品在线| 熟女在线视频一区二区三区|