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

loop_in_codes

低調做技術__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

指針和模塊健壯

仔細想想能導致一個C++程序崩潰的幾乎90%原因都是跟指針有關。空指針野指針,一不小心
程序就崩了。寫C++程序的人基本上都知道這個問題。在我們周圍避免這些問題的常規方法
也很多,諸如auto_ptr(及其他基于template的原始指針wrapper)、SAFE_DELETE。當然也
會有很多人在實現一個函數時會很勤勞地對每一個parameter進行合法判斷。

其實,我們都知道,auto_ptr這些東西始終是無法避免野指針和空指針帶來的災難。
SAFE_DELETE也不能阻止別人使用這個空指針。

在我看過的一些開源項目的代碼中,這些代碼給人的感覺就是別人總能詳細地掌控各種資源
(包括指針及其他變量)的使用情況。相比之下,公司隔壁組的老大則顯得保守很多。他要
求我們幾乎要對所有指針的使用進行空值判斷(野指針也判斷不了),當然,各種成員變量
也要進行即使現在看上去沒多大用的初始化。

也許,這樣做后程序是不會掛掉了。但是,就我們的觀點來看,這樣反而會隱藏一些BUG。
為什么我們不能詳盡地去管理一個指針?一個指針變為空了,總是因為在這之前發生了錯誤
。當然,野指針本身就是愚蠢代碼產生的東西,這里沒必要討論。空指針之所以為空,也是
因為在很多時候我們把空作為失敗/錯誤/無效的標志。

恰好上周我的一些代碼就真的在空指針上出現了問題。外網的服務器隨時會因為玩家的一些
臨界操作行為而崩潰掉。雖然我通過修改腳本來屏蔽這個問題(因為不能說停機維護就停機
維護),但是總感覺程序是不安全的。人不吃點教訓絕對不學乖。

后來我對這個問題徹底思考了一下。很多程序員都自認聰明。在寫C++程序時,我從來不提
供沒用的public接口,尤其是set/get。我也從來不對沒必要的成員變量進行初始化。我給
的理由是對于這些東西我都有很清晰的把握,我為什么要做stupid的事情?

但是,我幾乎從來沒有界定,指針在哪些情況下需要去判斷為空?函數的參數絕對不需要。
假如函數的參數就是個空指針,那是client程序員的責任。僅供模塊內使用的指針(包含其
他資源)在內部使用時也不需要去判斷。如果去判斷了,那說明你對你自己寫的模塊都缺乏
精確的把握,證明你的設計思維不夠清晰。

什么時候需要判斷?當指針依賴于外部環境時,例如讀配置文件、載入資源,因為外部因素
不確定不在自己控制范圍內,那么進行判斷。同樣,當使用了其他模塊返回的指針值時,也
需要判斷。這個其實和“外部環境”屬于同一種情況。因為我們對其他模塊也不清楚,更為
隱蔽的是(隨著其他模塊的改變,將來會在你的模塊里爆發崩潰錯誤),其他模塊由別人維
護,其變化更不受自己控制。之前我對這一點界定不是很清楚,這也是我犯錯的原因。

現在想想,像游戲服務器這種程序,里面塞著各種各樣的游戲功能。無論是哪一個模塊出現
個空指針訪問出錯的問題,都會直接讓服務器崩掉。關鍵是這個結果經常伴隨著玩家的損失
。所以理想狀態下,把每一個模塊都放置在單獨的進程里,確實是很有好處的。

posted on 2009-06-28 19:35 Kevin Lynx 閱讀(2361) 評論(5)  編輯 收藏 引用 所屬分類: 通用編程模塊架構

評論

# re: 指針和模塊健壯[未登錄] 2009-07-04 16:16 expter

其實有時候編程習慣和風格占據很大因素!  回復  更多評論   

# re: 指針和模塊健壯 2009-07-09 13:15 xsap

模塊內使用的指針有時也可以ASSERT一下, 后續人員對模塊進行修改, 萬一其對模塊把握不夠大, 導致的一些錯誤比較容易暴露.  回復  更多評論   

# re: 指針和模塊健壯 2009-07-16 22:24 owlcn

"把每一個模塊都放置在單獨的進程里",每一個模塊的大小如何劃分呢。誠如你所說,游戲里有各種各樣的功能,哪些功能劃分到一個模塊,放到一個進程。哪些又應該獨立到別的進程呢?
請問這個有什么原則或者說思路么?  回復  更多評論   

# re: 指針和模塊健壯[未登錄] 2009-08-17 22:28 lin

雖然我通過修改腳本來屏蔽這個問題(因為不能說停機維護就停機
維護)


zm,這個是怎么做的哦  回復  更多評論   

# re: 指針和模塊健壯 2009-08-18 11:54 Kevin Lynx

@lin
當時那個BUG是因為C++代碼中對某個指針沒判斷,而由于某些臨界條件就會導致這個指針為NULL。恰好可以通過在策劃的腳本里做些修改而避免程序里那段代碼的執行。這個跟具體的應用環境有關系,別誤會。  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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一区二区三区亚洲| 中文国产一区| 国产精品高潮视频| 欧美视频日韩视频在线观看| 欧美激情综合五月色丁香小说| 亚洲人午夜精品免费| 欧美jizz19性欧美| 欧美成人a视频| 亚洲国产另类久久精品| 99国产精品久久| 亚洲欧美伊人| 女同一区二区| 国产精品伦子伦免费视频| 国产亚洲一区二区在线观看| 亚洲第一精品电影| 中文国产一区| 久久久久久有精品国产| 亚洲国产片色| 性色av一区二区三区| 欧美aaaaaaaa牛牛影院| 国产精品视频一区二区三区| 亚洲黄色av一区| 久久se精品一区精品二区| 亚洲国产精品久久久久| 午夜免费在线观看精品视频| 欧美www视频| 国内一区二区三区在线视频| 亚洲色在线视频| 欧美韩日精品| 久久成人久久爱| 国产精品高精视频免费| 亚洲裸体俱乐部裸体舞表演av| 亚洲女性裸体视频| 亚洲国产欧美在线| 老司机凹凸av亚洲导航| 国产精品亚洲成人| 亚洲视频中文| 最新69国产成人精品视频免费| 亚洲影视综合| 欧美日韩一区精品| 亚洲毛片视频| 亚洲电影在线看| 久久亚洲精品一区| 国产在线观看一区| 欧美一级精品大片| 亚洲在线观看免费| 国产精品a久久久久久| 亚洲韩国日本中文字幕| 榴莲视频成人在线观看| 欧美一区二区三区免费在线看| 欧美婷婷在线| 亚洲午夜在线| 一本色道久久综合精品竹菊| 欧美精品高清视频| 欧美日韩国产另类不卡| 欧美大片在线观看| 亚洲欧美精品伊人久久| 亚洲欧洲日产国产网站| 美国成人直播| 在线国产日韩| 欧美~级网站不卡| 久久免费视频网| 樱桃成人精品视频在线播放| 久久久久久久综合| 久久精品中文| 在线日本成人| 欧美激情国产日韩精品一区18| 亚洲性视频网址| 国产精品一区二区在线观看网站| 中文av一区二区| 亚洲一级免费视频| 国产亚洲aⅴaaaaaa毛片| 久久夜色精品| 欧美成人免费在线观看| 亚洲伦理在线| 亚洲丝袜av一区| 国产色婷婷国产综合在线理论片a| 亚洲欧美中文日韩在线| 午夜精品久久久久久久久久久久 | 国内精品一区二区| 久久久国产精品一区| 久久一区二区三区四区五区| 亚洲精品小视频在线观看| 在线性视频日韩欧美| 国产一区观看| 亚洲国产高清一区| 国产精品区一区二区三| 免费毛片一区二区三区久久久| 麻豆freexxxx性91精品| 亚洲午夜电影在线观看| 久久国产精彩视频| 亚洲麻豆av| 欧美一级黄色录像| 99视频精品全国免费| 欧美一区二区久久久| 亚洲精品一区二区三| 亚洲欧美一区二区激情| 亚洲三级电影在线观看| 午夜在线视频一区二区区别| 亚洲精品久久久久| 欧美在线高清视频| 亚洲一区二区久久| 久久综合久久综合九色| 香蕉久久夜色精品国产使用方法| 久久成人资源| 一区二区三区四区五区精品视频| 欧美亚洲一区| 亚洲视频导航| 免费试看一区| 久久亚洲不卡| 国产欧美一区二区在线观看| 亚洲精品自在在线观看| 亚洲电影免费| 香蕉av777xxx色综合一区| 亚洲最新视频在线| 久久久国产一区二区三区| 午夜精品久久久久久| 欧美激情网站在线观看| 欧美粗暴jizz性欧美20| 国产日韩欧美不卡| 在线一区二区三区四区| 99riav国产精品| 欧美粗暴jizz性欧美20| 免费日韩成人| 极品中文字幕一区| 久久精品人人做人人综合| 久久九九国产精品| 国产一区清纯| 欧美在线视频免费| 久久国内精品自在自线400部| 欧美日韩国产欧| 亚洲精品一区二| 一本综合精品| 欧美日本一道本在线视频| 亚洲欧洲视频在线| 99热这里只有成人精品国产| 欧美高清影院| 亚洲另类自拍| 亚洲一级网站| 国产精品亚洲人在线观看| 亚洲免费影视第一页| 久久精品国产精品亚洲综合| 国产在线视频欧美一区二区三区| 中文在线一区| 欧美一区二区在线| 国产一区在线看| 久久综合久色欧美综合狠狠| 欧美成年人网站| 日韩一区二区高清| 欧美体内she精视频| 亚洲欧美网站| 亚洲高清视频在线观看| 一区二区三区日韩精品| 欧美午夜精品久久久久久孕妇| 亚洲国产一区二区三区高清| 一区二区日韩免费看| 国产精品你懂得| 久久国产黑丝| 亚洲欧洲日本国产| 欧美怡红院视频| **性色生活片久久毛片| 欧美激情亚洲综合一区| 亚洲制服少妇| 欧美激情视频一区二区三区不卡| 136国产福利精品导航网址应用| 媚黑女一区二区| 亚洲视频国产视频| 噜噜噜91成人网| 一区二区三区国产在线| 国产婷婷成人久久av免费高清 | 国产伦精品一区二区三区| 久久国产精品久久久久久电车| 久久天天躁狠狠躁夜夜爽蜜月| 国内精品一区二区三区| 欧美精品三级| 久久久成人精品| 一本色道久久综合亚洲精品不卡 | 欧美承认网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品久久久一区麻豆最新章节| 亚洲一区一卡| 亚洲精品视频免费| 浪潮色综合久久天堂| 中文国产一区| 亚洲国产精品一区二区第四页av| 欧美精品一区二区视频| 久久精品主播| 亚洲女性喷水在线观看一区| 最新国产成人av网站网址麻豆| 欧美一区二区高清| 一本色道久久综合狠狠躁篇的优点| 国产伦精品一区二区三区高清| 蜜桃av噜噜一区二区三区| 欧美影院成人| 亚洲欧美在线另类| 艳妇臀荡乳欲伦亚洲一区| 欧美激情二区三区| 欧美不卡一区| 久久久久久久波多野高潮日日| 亚洲视频欧美在线|