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

隨筆 - 119  文章 - 290  trackbacks - 0

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

常用鏈接

留言簿(12)

隨筆分類

我的博客

搜索

  •  

積分與排名

  • 積分 - 306720
  • 排名 - 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 閱讀(1764) 評論(1)  編輯 收藏 引用 所屬分類: month-flow

FeedBack:
# re: month-flow[6] 2009-06-08 08:19 guest
同一個模塊的話,還不如委托來得實際。。  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
              一本色道精品久久一区二区三区 | 欧美综合国产| 91久久香蕉国产日韩欧美9色| 亚洲视频导航| 亚洲久久一区| 蜜桃av一区| 久久男人资源视频| 国产精品嫩草99av在线| 亚洲靠逼com| 亚洲精品欧美日韩专区| 久久精品一区二区三区四区 | 亚洲精品社区| 亚洲国内高清视频| 久久综合狠狠综合久久综合88| 欧美一区二区在线看| 欧美视频精品在线观看| 亚洲人体影院| 日韩一级在线| 欧美精品免费在线观看| 欧美激情黄色片| 亚洲黄色一区| 久久综合网络一区二区| 猛男gaygay欧美视频| 一区在线视频观看| 久久久久国产精品厨房| 久久亚洲精品一区| 黄色工厂这里只有精品| 久久av老司机精品网站导航| 久久久久高清| 在线不卡视频| 欧美a级理论片| 亚洲黄一区二区| 99v久久综合狠狠综合久久| 欧美激情a∨在线视频播放| 最近中文字幕日韩精品| 在线亚洲电影| 欧美午夜精彩| 午夜国产不卡在线观看视频| 欧美在线免费看| 精品9999| 欧美大色视频| 夜夜嗨av一区二区三区中文字幕| 亚洲在线成人精品| 国产日韩欧美在线观看| 久久男人资源视频| 亚洲高清一二三区| 亚洲视频久久| 国产午夜精品全部视频播放 | 国产一区二区在线免费观看| 久久av最新网址| 亚洲国产精品123| 亚洲一区二区三区国产| 国产一区二区无遮挡| 免费成人黄色| 亚洲自拍偷拍福利| 欧美暴力喷水在线| 亚洲婷婷综合色高清在线| 国产欧美精品在线| 麻豆av一区二区三区久久| 亚洲美洲欧洲综合国产一区| 欧美一二区视频| 亚洲国产婷婷香蕉久久久久久99 | 美女图片一区二区| 亚洲狼人综合| 久久人人超碰| 在线天堂一区av电影| 国内精品久久久| 欧美日韩小视频| 久久精品亚洲乱码伦伦中文| 亚洲精品欧美专区| 另类成人小视频在线| 亚洲视频碰碰| 亚洲国产日韩综合一区| 国产精品一区二区在线观看网站| 欧美成人精品不卡视频在线观看 | 国产精品免费观看在线| 鲁大师影院一区二区三区| 这里只有精品丝袜| 亚洲国产综合视频在线观看| 久久国产精品久久w女人spa| 日韩亚洲国产欧美| 在线看国产一区| 国产欧美综合一区二区三区| 欧美日韩免费一区二区三区视频| 久久久夜精品| 午夜一区二区三区在线观看| 日韩亚洲欧美高清| 亚洲国产精品久久91精品| 久久夜精品va视频免费观看| 亚洲欧美日韩一区在线观看| 亚洲麻豆一区| 亚洲国产婷婷| 亚洲国产成人久久综合一区| 国产一区视频观看| 国产女人水真多18毛片18精品视频| 欧美日韩成人在线观看| 免费久久精品视频| 久久伊伊香蕉| 久久久高清一区二区三区| 欧美一级视频精品观看| 午夜精品久久久久| 亚洲专区一区| 午夜国产不卡在线观看视频| 亚洲主播在线播放| 亚洲一区二区三区视频| 在线一区观看| 亚洲一级网站| 午夜精品电影| 久久爱另类一区二区小说| 香蕉成人久久| 欧美资源在线观看| 久久久噜噜噜久久| 老司机久久99久久精品播放免费| 久久精品91久久久久久再现| 久久九九国产| 免费欧美在线| 欧美人与禽性xxxxx杂性| 欧美国产一区二区| 欧美日本视频在线| 欧美午夜在线一二页| 国产精品裸体一区二区三区| 国产精品一区二区三区观看| 国产日产欧美a一级在线| 韩国一区二区三区在线观看| 怡红院精品视频| 日韩视频免费在线| 亚洲女ⅴideoshd黑人| 欧美亚洲综合久久| 麻豆久久婷婷| 亚洲啪啪91| 国产精品99久久久久久久vr | 国产精品magnet| 国产日韩精品一区| 亚洲激情视频网站| 亚洲午夜视频在线| 久久精品理论片| 亚洲二区视频在线| 在线午夜精品自拍| 久久www成人_看片免费不卡| 女同一区二区| 国产精品亚洲一区| 亚洲电影欧美电影有声小说| 一区二区三区黄色| 久久国产精品一区二区三区| 欧美激情视频网站| 亚洲一区国产视频| 欧美91大片| 国产日韩av一区二区| 亚洲精品久久久久久久久久久| 亚洲欧美国产日韩中文字幕| 久久久之久亚州精品露出| 亚洲人体大胆视频| 久久激情综合网| 欧美三级资源在线| 亚洲国产精品欧美一二99| 亚洲综合成人在线| 亚洲高清网站| 欧美在线免费观看视频| 欧美激情免费在线| 激情成人综合网| 午夜精品福利一区二区蜜股av| 免费观看日韩| 校园春色国产精品| 欧美人妖另类| 亚洲黄一区二区| 久久黄色影院| 亚洲一区久久| 欧美日韩综合不卡| 亚洲人线精品午夜| 女人天堂亚洲aⅴ在线观看| 亚洲在线观看视频| 欧美日韩国产高清视频| 在线日韩欧美视频| 久久久一区二区| 亚洲欧美另类综合偷拍| 国产精品豆花视频| 一区二区三区精品在线| 亚洲国产一成人久久精品| 久久久国产精品一区| 国产一区深夜福利| 久久精品成人一区二区三区蜜臀| 99re66热这里只有精品3直播| 美女日韩欧美| 最新精品在线| 亚洲国产91精品在线观看| 快she精品国产999| 亚洲国产综合在线| 欧美黄色网络| 欧美成人午夜激情在线| 亚洲国产经典视频| 欧美成人性生活| 久久躁狠狠躁夜夜爽| 亚洲电影在线播放| 久久综合伊人77777| 久久一二三区| 亚洲娇小video精品| 亚洲高清网站| 欧美日韩免费| 欧美一级视频| 久久国产精品久久久|