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

隨筆 - 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>
              日韩一级黄色av| 裸体素人女欧美日韩| 亚洲啪啪91| 欧美精品aa| 亚洲网站在线看| 亚洲免费在线电影| 欧美天堂亚洲电影院在线播放 | 欧美亚洲免费在线| 国产欧美精品一区| 免费视频一区| 欧美日韩精品一区| 欧美亚洲视频| 久久综合色婷婷| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲国产成人久久综合一区| 欧美精品在线免费播放| 欧美一区二区三区视频免费播放| 欧美亚洲视频一区二区| 亚洲欧洲久久| 亚洲欧美另类久久久精品2019| 国产一区二区三区黄视频| 欧美国产日本| 国产美女精品| 亚洲高清免费| 国产精品尤物| 亚洲精品一区二区三区四区高清 | 午夜精品久久久久久久蜜桃app| 久久精品一区二区| 一区二区三区高清在线| 欧美一区二区日韩一区二区| 亚洲另类春色国产| 欧美一区二区三区免费看| 亚洲精品免费网站| 久久成人精品无人区| 艳妇臀荡乳欲伦亚洲一区| 欧美一级专区| 亚洲综合视频网| 欧美成人国产一区二区| 欧美伊久线香蕉线新在线| 欧美精品二区| 免费在线一区二区| 国产精品主播| 一区二区三区.www| 99精品免费| 免费欧美日韩国产三级电影| 久久爱91午夜羞羞| 国产精品久久7| 91久久久久久国产精品| 在线观看日韩精品| 欧美综合二区| 久久xxxx精品视频| 国产精品一区二区视频| 99pao成人国产永久免费视频| 亚洲日本欧美日韩高观看| 久久久久久成人| 久久久精品视频成人| 国产亚洲激情在线| 亚洲一区图片| 香蕉久久精品日日躁夜夜躁| 国产精品av免费在线观看| 亚洲区国产区| av成人手机在线| 欧美三级午夜理伦三级中视频| 亚洲国产日韩欧美一区二区三区| 亚洲国产精品一区二区尤物区 | 欧美日韩视频一区二区| 久久精品免费观看| 欧美性大战久久久久久久| 亚洲免费观看| 亚洲欧美一区在线| 国产精品久久久久婷婷| 艳妇臀荡乳欲伦亚洲一区| 亚洲午夜电影| 国产精品一级二级三级| 性久久久久久久久| 久久久久在线| 亚洲国产精品久久久久| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美成人亚洲成人| 亚洲日本欧美| 国产精品久久久久久模特| 亚洲一区影院| 玖玖玖国产精品| 亚洲精品欧美专区| 欧美三级在线| 久久国产精品黑丝| 欧美激情欧美狂野欧美精品| av成人免费| 国产一区二区三区四区三区四| 久久精品导航| 亚洲激情在线激情| 午夜精品久久久久久久白皮肤| 黄色成人免费网站| 欧美福利视频| 香蕉久久夜色精品国产| 欧美成人四级电影| 亚洲欧美在线aaa| 亚洲国产99精品国自产| 欧美日韩理论| 久久久美女艺术照精彩视频福利播放 | 国产午夜精品福利| 久久久噜久噜久久综合| 99re6这里只有精品视频在线观看| 欧美一级大片在线观看| 1024亚洲| 国产亚洲精品aa| 欧美日韩美女在线观看| 久久精品中文字幕免费mv| 亚洲日韩欧美一区二区在线| 久久精品视频网| 一区二区久久| 亚洲夫妻自拍| 国内久久视频| 国产精品美女主播| 欧美成人四级电影| 欧美一区二区视频观看视频| 亚洲精品一区在线观看| 欧美xart系列在线观看| 欧美在线国产精品| 亚洲最新视频在线| 亚洲国产三级| 国内精品伊人久久久久av一坑| 国产精品久久久久久久久久妞妞| 欧美bbbxxxxx| 老司机午夜精品视频| 久久精品噜噜噜成人av农村| 中文在线一区| 日韩午夜视频在线观看| 亚洲国产一区二区三区青草影视 | 亚洲欧美一区二区精品久久久| 亚洲黄色片网站| 在线成人中文字幕| 海角社区69精品视频| 国产精品入口福利| 国产精品福利在线| 欧美色一级片| 欧美成人午夜| 久久精品国产96久久久香蕉| 亚洲欧美日韩第一区 | 国产精品久久77777| 欧美日韩一区二区免费视频| 欧美日韩精品免费观看| 欧美高清在线观看| 免费观看久久久4p| 欧美成年人在线观看| 美女黄色成人网| 欧美激情免费在线| 欧美日本久久| 欧美色一级片| 国产免费成人| 极品中文字幕一区| 亚洲国产精品视频| avtt综合网| 欧美一级精品大片| 久久精品欧美| 欧美成人免费在线视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲人成亚洲人成在线观看图片| 亚洲国产一区二区a毛片| 亚洲精品久久久久久久久| 99热免费精品| 久久精品二区| 欧美福利影院| 国产精品蜜臀在线观看| 国内精品视频久久| 亚洲日本中文字幕区| 亚洲欧美在线视频观看| 久久综合色8888| 亚洲精品视频一区二区三区| 亚洲综合日韩在线| 久久综合久久综合九色| 欧美日韩精品免费观看视频完整| 国产精品午夜在线| 亚洲高清一区二| 亚洲调教视频在线观看| 久久久久久久久久久久久久一区| 亚洲丰满在线| 亚洲欧美日韩一区| 欧美sm视频| 国产亚洲二区| 99re成人精品视频| 久久久久久一区二区| 日韩视频一区二区三区| 欧美在线播放视频| 欧美色图一区二区三区| 亚洲第一成人在线| 午夜精品一区二区三区在线视| 欧美va天堂| 亚洲欧美一区二区三区极速播放| 欧美bbbxxxxx| 在线观看国产精品网站| 亚洲欧美日韩精品久久奇米色影视| 久久综合久久综合久久| 亚洲最新在线视频| 毛片av中文字幕一区二区| 国产日本欧美一区二区| 宅男噜噜噜66一区二区| 欧美成年人视频网站| 久久av红桃一区二区小说| 国产精品a级|