• <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>
            隨筆-90  評(píng)論-947  文章-0  trackbacks-0

            我不知道這里有多少朋友是積累了自己的一套庫(kù)的。

            嗯……說(shuō)明白點(diǎn),比如想讀寫(xiě)文件了,操作系統(tǒng) API 的那堆參數(shù)我記不住,也用不著那么靈活,于是自己寫(xiě)一個(gè)自己記得住的,下次碰到同樣情況繼續(xù)用,并不斷完善。哪天想讀寫(xiě)注冊(cè)表了,想讀寫(xiě) INI 文件了,想讀寫(xiě) XML 文件了,想用個(gè)動(dòng)態(tài)數(shù)組了,想要個(gè)鏈表、樹(shù)了,可能都會(huì)形成自己的一套東西。這套東西可能是基于已有的第三方庫(kù),也可能是純粹自己一點(diǎn)一滴寫(xiě)起來(lái)的。好了,我想現(xiàn)在我大概表達(dá)得夠明白了,這就是我說(shuō)的“庫(kù)”,這個(gè)庫(kù)可能不是非常完備,但起碼是自己積累的,有著(起碼對(duì)自己來(lái)說(shuō))友好接口的東東。

            可能有朋友會(huì)說(shuō),你要自己的動(dòng)態(tài)數(shù)組、鏈表干嗎?STL 很好啊!你要讀寫(xiě)文件的干嗎?CFile 哪里不好?你要讀 INI?不是有 API 嗎?……諸如此類(lèi)。如果有朋友持這樣的觀點(diǎn),我想我們是不同的一類(lèi)人。如果您只是能完成某項(xiàng)任務(wù)就好,那么確實(shí),不需要這些玩意兒。但是,如果哪一天這種普通的工作做得麻木了,來(lái)思考一下另一個(gè)層面的事情,您也許會(huì)覺(jué)得這些也是比較有意思的事。廢話(huà)到此。

            那么,不知道這些庫(kù),是以什么形式存在的呢?稍微極端開(kāi)來(lái)講,可能有兩個(gè)做法——

            第一種做法。我每寫(xiě)成一個(gè)功能模塊,都是一個(gè)(或幾個(gè)).h、一個(gè)(或幾個(gè)).cpp,它們是自我獨(dú)立的,不依賴(lài)于任何別的東西(或者不依賴(lài)標(biāo)準(zhǔn)庫(kù)以外的東西、不依賴(lài)于操作系統(tǒng) API 以外的東西)——總之是不依賴(lài)于當(dāng)前編譯系統(tǒng)以外的東西。以后需要使用,就把那幾個(gè)文件拷到當(dāng)前項(xiàng)目來(lái)使用。然后一個(gè)個(gè)這樣的互不依賴(lài)的功能模塊構(gòu)成了我現(xiàn)在所擁有的庫(kù)。

            第二種做法呢,就是我把這個(gè)庫(kù)作系統(tǒng)的規(guī)劃,劃分為很多小的功能模塊,這些功能模塊可能會(huì)彼此依賴(lài),當(dāng)庫(kù)龐大以后,甚至連你自己都該不太清楚誰(shuí)依賴(lài)誰(shuí)了。要使用這個(gè)庫(kù)的功能,就必須把整個(gè)庫(kù)拿進(jìn)來(lái)。到最后,我將這整套東西編譯為一個(gè) .lib,這個(gè) .lib 的源程序會(huì)一直維護(hù)下去。但使用的時(shí)候,我就拿編譯好的 .lib 來(lái)用。

            前一種做法就是標(biāo)題里所說(shuō)的小庫(kù),后一種做法我稱(chēng)之為大庫(kù)。我的問(wèn)題是,作為個(gè)人的積累,小庫(kù)好還是大庫(kù)好?如果可能,我是比較喜歡小庫(kù)的。但是,經(jīng)常會(huì)有這樣的問(wèn)題,各個(gè)功能模塊中可能會(huì)涉及同一個(gè)基礎(chǔ)功能,而這個(gè)基礎(chǔ)功能我已經(jīng)做過(guò)了的,到底是用還是不用?如果用,“互不依賴(lài)”就會(huì)被打破,最終會(huì)發(fā)展成一個(gè)凌亂的大庫(kù);如果不用,我必須把代碼抄一遍,那么這兩份完全一樣的代碼在以后同步更新就比較麻煩了。再說(shuō)大庫(kù),一個(gè)規(guī)劃的很好的大庫(kù)也是不錯(cuò)。但是前期積累的時(shí)候,往往沒(méi)法規(guī)劃;就算等到有一定的積累了以后再來(lái)積累,也會(huì)在模塊組織上猶豫不決:我到底要不要來(lái)一個(gè)統(tǒng)一的 typedef 作為我的類(lèi)型系統(tǒng)?當(dāng)我實(shí)現(xiàn)了 MyVector,MyString 以后,我的后續(xù)代碼勢(shì)必都會(huì)使用它們,那么與別人之間的代碼交流就成了問(wèn)題了。

            我最近一直困惑于這個(gè)問(wèn)題。而我本人對(duì)此的理解也就如上文所述。希望有朋友指教、賜教。謝謝~~!

            posted on 2009-09-24 21:30 溪流 閱讀(658) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): C++

            評(píng)論:
            # re: 小庫(kù)還是大庫(kù)? 2009-09-25 09:52 | 陳梓瀚(vczh)
            顯然是小庫(kù),然后不爽了,推掉重寫(xiě),變成大庫(kù)。  回復(fù)  更多評(píng)論
              
            # re: 小庫(kù)還是大庫(kù)? 2009-09-25 15:48 | 溪流
            @陳梓瀚(vczh)

            看到大牛了,膜拜一下~~前幾天一直在看你的博客呢。
            你的意思是,最開(kāi)始全用小庫(kù),當(dāng)有一定的積累后,再重新組織為大庫(kù)嗎?  回復(fù)  更多評(píng)論
              
            久久婷婷色综合一区二区| 一本一本久久aa综合精品| 人人狠狠综合久久亚洲婷婷| 香蕉久久夜色精品国产小说| 久久精品国产黑森林| 伊人色综合九久久天天蜜桃| 亚洲AV无码久久精品狠狠爱浪潮| 久久精品中文字幕无码绿巨人| 国产精品久久久久久福利漫画 | 国产精品久久久久久影院| 99久久免费只有精品国产| 亚洲第一永久AV网站久久精品男人的天堂AV | 国产色综合久久无码有码| 亚洲综合久久综合激情久久 | 国产∨亚洲V天堂无码久久久| 国产一区二区精品久久岳| 久久香蕉超碰97国产精品| 久久久久人妻一区精品果冻| 国产精品免费福利久久| 国产成人精品综合久久久| 久久er热视频在这里精品| 亚洲精品无码久久久久AV麻豆| 国产精品久久久久9999高清| 久久人人爽爽爽人久久久| 久久久国产99久久国产一| 久久精品一区二区三区中文字幕 | 国产精品久久99| 精品永久久福利一区二区| 久久亚洲日韩看片无码| 日韩亚洲国产综合久久久| 狠狠人妻久久久久久综合蜜桃| 国产一久久香蕉国产线看观看| 亚洲乱码中文字幕久久孕妇黑人| 无码任你躁久久久久久| 久久精品国产一区二区三区不卡| 亚洲国产精久久久久久久| 99久久99久久精品免费看蜜桃| 一本久久a久久精品亚洲| 97精品国产97久久久久久免费| 国产69精品久久久久久人妻精品| 欧美日韩精品久久久免费观看|