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

隨筆 - 119  文章 - 290  trackbacks - 0

博客搬家了哦,請移步
叫我abc

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 305651
  • 排名 - 84

最新評論

閱讀排行榜

總想寫一些東西,但總是發現想寫的內容還沒積累到可以寫出來的程度。沒有壓力是不行的,至少每月得來那么一次才對,不然就鬧出人命了。^3^
很羨慕那些做題的同學,每道題的算法都可以發一篇博文,可惜我多數情況下都看不懂也就不細看。不過有空的時候細看一篇,google其中理論,還是很長見識的。很久前我就看過一篇最大流最小割的,大學學過忘了,這次算記住了。

1.虛函數vs回調函數
可能通過繼承進行復用真不是什么好東西。
最初為bo2服務器組設計通信層的時候,使用的socket c++wrap lib的設計理念是通過繼承來對模式化的網絡編程代碼進行復用,以及通過實現指定的虛函數來開展應用上的業務。
1 class TcpSocket
2 {
3 virtual void OnRead();
4 virtual void OnConnect();
5 virtual void OnDisconnect();
6 };
這樣的接口,一看便知。最接近基本認識的做法,就是繼承TcpSocket,然后按業務需求實現那些虛函數。
第一版的bo2服務器組就是在這種想法下實現通信層的。這造成了一些問題,服務器組里面有很多服務器,每個服務器需要的TcpSocket子類并不是完全一致的,畢竟不同的連接處理的消息都不太一樣,于是TcpSocket的子類的數量就寫的有些多了,而且每個服務器都寫。

不久后,以將通信層劃入一個獨立的線程為契機,重構開始了。因為對第一版的設計不甚滿意加上多線程的情況下無法直接給應用層拿著TcpSocket的指針(這個庫默認情況自動析構已斷開的Socket對象),最終的手段是,實現唯一的TcpSocket子類,在虛函數中統一的調用3個與之對應但全局唯一的回調函數。于是,第二版展現的是,每個服務器都有一個類似network的模塊,實現這3個回調函數,不同的連接如果有不同的代碼的話,則根據連接的id進行跳轉。
總算砍斷繼承的鎖鏈了。

不過事情并沒有在這里就完全結束了。bo2服務器組并不會僅僅只有當前這些數量的服務器,以后隨著新的需求而將不斷增加,如何能讓新來的同學更快的開發新的業務服務器而不必在通信層上花費任何精力呢,答案就是把每個服務器的network模塊統一并入appbase中。
只是連接上某個服務器并不能成為bo2服務器組的一分子。連接誰,連接上之后要交代什么信息,這都是有規定的。而這些工作都是在每個服務器的network模塊單獨做的,勢必不能讓新同學為這些差不多重復的代碼而煩惱。
多數類似的服務器的network模塊并入appbase并不算太難,不過困難的是一些核心服務器,他們不太一樣,很多連接需要好幾個不同的onconnect和ondisconnect回調,可是第二版使用的是全局唯一的回調,而且現在也帶著默認代碼隱藏到appbase里了。
修改了一下,最終我讓每個連接都可以指定自己獨有的onconnect和ondisconnect回調,但是新同學不必擔心這個,因為他們什么也不需要指定和實現,他們只要在service模塊中專心處理消息就可以了。

繞了三版,得出的是每個連接都可以指定不同回調函數的方案(onRead是統一的),就跟TcpSocket的三個虛函數一樣,想想都好笑。不過有了繼承不是復用的好方式這種想法,算是一種收獲吧。


2.統一的定義stl庫包含頭
幾天前出了個bug,就是debug運行正常,release運行崩潰那種,崩潰的位置在一處list<t>::begin()調用上。最終查證的結果是因為bo2項目通過一些stl宏對stl容器進行了裁減,統一用std_inc.h導入stl庫,而崩潰的地方是很早的代碼,直接包含的是stl庫文件,引起不同編譯單元中對這個容器大小認識不一致,運行時崩潰。
結論是,如果在項目中使用stl庫,那么將所有常用的stl頭文件都寫在一個std_inc.h中,在使用stl的模塊中包含該文件,而不是其他,并建立預編譯頭導入該文件,就能避免出現類似的問題。
出bug的時候,完全不知如何下手,只好完全依賴更NB的同學,看著人家把崩潰的代碼拷到剛創建對象的地方,調試未崩,然后再在創建對象的地方調用崩潰代碼所屬的函數,調試崩潰。翻到我寫的類的頭文件中include的幾行說,stl容器大小不一致。
看得我是一臉慚愧。


3.
我蠻喜歡看包子山同學的GWeekly系列,不過他最近都不更新了。每周都寫博我是抗不住的,每月勒令自己的話,還是能嘮叨些文字的。仿照GWeekly的命名,我也來一個month-flow系列吧,實在沒有成體形的內容可寫的情況下,每月必定嘮叨一篇。
posted on 2009-06-07 21:46 LOGOS 閱讀(1751) 評論(1)  編輯 收藏 引用 所屬分類: month-flow

FeedBack:
# re: month-flow[6] 2009-06-08 08:19 guest
同一個模塊的話,還不如委托來得實際。。  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              亚洲精品免费一二三区| 国产精品国产三级国产普通话99| 久久精品99国产精品日本| 99精品热视频| 亚洲精品免费一二三区| 亚洲精品国产欧美| 91久久久久久国产精品| 亚洲精品欧洲| 正在播放亚洲| 欧美一级二区| 美女国产一区| 一本色道久久加勒比88综合| 亚洲日韩第九十九页| 亚洲深夜福利视频| 久久九九电影| 亚洲三级免费观看| 亚洲美女中出| 久久精品九九| 欧美日韩精品高清| 国产精品美女诱惑| 亚洲国产福利在线| 欧美一级久久久| 欧美国产大片| 一级日韩一区在线观看| 久久精品视频导航| 欧美日韩黄色大片| 在线电影欧美日韩一区二区私密| 日韩亚洲精品电影| 久久亚洲欧美国产精品乐播| 日韩一区二区电影网| 久久亚洲欧美| 国产欧美一区二区精品婷婷| 亚洲国产精品高清久久久| 午夜久久电影网| 亚洲国产一区在线观看| 久久精品久久99精品久久| 国产精品免费视频xxxx| 亚洲精品久久久久久久久久久久| 亚洲婷婷综合色高清在线| 久久精品一区二区三区不卡| 亚洲欧洲另类| 久久久久久久久岛国免费| 久久激情婷婷| 欧美激情第9页| 韩日午夜在线资源一区二区| 一区二区三区视频在线| 亚洲国产精品www| 宅男精品视频| 欧美日韩不卡一区| 亚洲福利视频一区| 亚洲欧美日韩中文在线制服| 美腿丝袜亚洲色图| 午夜欧美大尺度福利影院在线看 | 久久综合九色综合欧美就去吻 | 狠狠入ady亚洲精品| 一本久道久久综合中文字幕| 欧美福利精品| 欧美一区二区在线免费观看| 国产精品久久久久久久久久直播| 亚洲人成网站影音先锋播放| 男人的天堂亚洲| 欧美一级精品大片| 国产精品草莓在线免费观看| 亚洲精品久久久久久久久久久| 免费观看成人www动漫视频| 亚洲欧美在线观看| 国产精品成人在线| 亚洲网友自拍| 日韩视频免费观看| 欧美午夜精品一区二区三区| 亚洲精美视频| 在线亚洲一区二区| 亚洲精品久久嫩草网站秘色| 欧美激情麻豆| 亚洲美女黄色| 99视频超级精品| 欧美色精品天天在线观看视频| 一区二区三区福利| 亚洲欧洲另类| 欧美网站大全在线观看| 亚洲欧美在线免费观看| 亚洲视频自拍偷拍| 国产农村妇女精品一区二区| 国产精品99久久久久久久vr| 亚洲一区在线直播| 国产婷婷一区二区| 欧美成人午夜免费视在线看片| 美女91精品| 日韩手机在线导航| 一区二区三区精品| 国产专区综合网| 快播亚洲色图| 欧美体内she精视频在线观看| 精品成人在线视频| 国产精品蜜臀在线观看| 欧美一区二区三区免费在线看| 性欧美长视频| 精品成人国产| 夜夜精品视频| 国内综合精品午夜久久资源| 欧美成人午夜免费视在线看片| 六月婷婷一区| 欧美一区二区三区视频免费播放| 亚洲国产中文字幕在线观看| 国产精品久久精品日日| 麻豆精品传媒视频| 欧美日韩精品不卡| 久久综合色婷婷| 欧美乱妇高清无乱码| 久久精品二区| 欧美偷拍另类| 欧美大片91| 国产精品尤物福利片在线观看| 老牛国产精品一区的观看方式| 欧美视频在线不卡| 久久一区二区视频| 国产精品自拍在线| 亚洲欧洲日本mm| 国内精品免费在线观看| 日韩性生活视频| 在线观看国产精品淫| 午夜精品亚洲| 夜夜夜精品看看| 欧美一级久久久久久久大片| 亚洲在线播放| 欧美极品一区| 91久久久在线| 狠狠色综合一区二区| 亚洲婷婷在线| 一本色道久久99精品综合| 欧美亚洲日本网站| 亚洲欧美日韩国产一区| 麻豆精品一区二区综合av| 久久久999精品免费| 欧美无砖砖区免费| 亚洲国产高清视频| 在线观看亚洲视频| 久久xxxx| 久久蜜臀精品av| 欧美日韩一区二区在线视频| 欧美韩日一区二区三区| 国产在线视频欧美一区二区三区| 亚洲伊人伊色伊影伊综合网| 日韩视频在线免费观看| 欧美精品日韩一本| 亚洲国产网站| 亚洲最新合集| 欧美精品亚洲精品| 亚洲破处大片| 亚洲在线免费视频| 欧美女同在线视频| 一本色道久久加勒比精品| 亚洲天堂网站在线观看视频| 欧美日韩一区二区高清| av成人免费| 亚洲欧美精品在线| 国产麻豆日韩| 久久精品国产欧美激情| 麻豆国产精品va在线观看不卡| 美日韩丰满少妇在线观看| 国产一区二区高清不卡| 亚洲一区二区三区三| 亚洲久久一区| 欧美专区亚洲专区| 久久青草久久| 亚洲国产精品久久久久婷婷884| 美女视频一区免费观看| 麻豆av一区二区三区久久| 亚洲伦理中文字幕| 国产精品一区二区在线| 久久综合一区| 日韩视频一区二区三区在线播放免费观看| 亚洲精品免费一二三区| 国产九九精品视频| 免费在线观看一区二区| 久久精品成人欧美大片古装| 亚洲免费视频一区二区| 伊人婷婷久久| 国产精品入口麻豆原神| 美女91精品| 欧美一区二区免费观在线| 亚洲国产成人porn| 欧美资源在线观看| 一区二区欧美在线观看| 黄网站色欧美视频| 欧美亚洲成人精品| 欧美成人精品在线| 久久精品国产综合| 亚洲影视在线| 亚洲伦理在线免费看| 欧美成人久久| 久久婷婷av| 亚洲已满18点击进入久久| 亚洲国产精品成人精品| 国产亚洲精品bv在线观看| 国产精品草莓在线免费观看| 欧美另类videos死尸| 老司机午夜精品视频| 午夜精品亚洲| 亚洲欧美日韩精品一区二区|