這幾天忙著找房子躺彬,搬家煤墙,很麻煩,房租比原來(lái)有貴了五百多宪拥。
我打算寫(xiě)個(gè)網(wǎng)絡(luò)通信組件仿野,大概會(huì)用到共享內(nèi)存,Epoll事件驅(qū)動(dòng)機(jī)制她君,多線程脚作,連接池,無(wú)鎖循環(huán)任務(wù)隊(duì)列等一系列知識(shí)點(diǎn)缔刹。
以前寫(xiě)過(guò)一些簡(jiǎn)單的網(wǎng)絡(luò)程序和多線程程序球涛,主要出發(fā)點(diǎn)是掌握基本的API和一些編程原理,工作后就沒(méi)有從事相關(guān)的東西校镐,工作中主要是C/C++寫(xiě)業(yè)務(wù)邏輯亿扁。自從去年八九月開(kāi)始晚上回來(lái)都花一個(gè)小時(shí)看些網(wǎng)絡(luò)方面的知識(shí),大都集中在TCP方面鸟廓,看些寫(xiě)的比較好的沒(méi)有錯(cuò)誤的博客和一些外文資料从祝,再加上Github上的開(kāi)源代碼,主要還是redis引谜。
工作中用到的C++方面高級(jí)的知識(shí)點(diǎn)不是很多牍陌,看些Effective C++,More Effective C++员咽,深度探索C++對(duì)象模型和Effective STL這基本經(jīng)典的書(shū)籍就夠了呐赡,那些STL容器的一些實(shí)現(xiàn)原理,一些坑也得知道骏融;也得掌握編寫(xiě)可讀性較好的編碼規(guī)范链嘀。至于性能方面的,可以看看深入理解計(jì)算機(jī)系統(tǒng)的第三章档玻,主要是匯編怀泊,也可以看看cache,內(nèi)存方面的知識(shí)點(diǎn)误趴,網(wǎng)絡(luò)IO也需要知道霹琼。再也沒(méi)寫(xiě)過(guò)多線程多進(jìn)程的程序,看過(guò)一些書(shū)籍如mudo那本書(shū)凉当,很多業(yè)務(wù)沒(méi)必要搞多么復(fù)雜枣申,一個(gè)線程一個(gè)EventLoop,把要關(guān)注的事件注冊(cè)上去【redis也是單進(jìn)程單線程的】看杭,有消息過(guò)來(lái)回調(diào)或以任務(wù)的形式分發(fā)處理忠藤,不能阻塞餓死。
做游戲的用到高級(jí)的算法不是特別多楼雹,業(yè)務(wù)邏輯也不是特別復(fù)雜【視野算法有點(diǎn)難】模孩,但是架構(gòu)很重要。工作中需要考慮的問(wèn)題很多贮缅,比如怎么以較高的效率隨機(jī)選擇不同的數(shù)榨咐,或根據(jù)權(quán)重;弱網(wǎng)絡(luò)怎么處理谴供;協(xié)議怎么約定块茁,怎么可擴(kuò)展,每個(gè)進(jìn)程承載什么功能等等桂肌。
想系統(tǒng)的學(xué)習(xí)下Python和Shell数焊,但想想從頭開(kāi)始學(xué)得花好些時(shí)間不大實(shí)際,還是以工作需要去驅(qū)動(dòng)吧轴或,去培養(yǎng)自己發(fā)現(xiàn)問(wèn)題昌跌,解決問(wèn)題的能力,在這個(gè)過(guò)程中強(qiáng)化學(xué)習(xí)能力照雁。