• <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>

            冰果

            技術群:26678700     
            交流QQ: 704839634
            合作: 1) 可兼職遠程辦公開發(fā); 2) 有一套Go+Python開發(fā)的行業(yè)短信云平臺可合作;3)目前正在開發(fā)物聯(lián)網(wǎng)、大數(shù)據(jù)平臺。

            socket通訊是使用第三方庫還是手工封裝操作系統(tǒng)api

                  socket通訊是使用第三方庫還是手工封裝操作系統(tǒng)api?
                  我相信做過幾年的服務器程序開發(fā),你不止一次和網(wǎng)絡通訊、數(shù)據(jù)庫、文件系統(tǒng)打交道。閉上眼睛,靜靜回憶一下你開發(fā)的那些C++服務器系統(tǒng),是不是大多數(shù)都涉及四個部分:
                  業(yè)務邏輯模塊、網(wǎng)絡通訊模塊、數(shù)據(jù)庫訪問模塊、文件訪問模塊。
                  單談網(wǎng)絡通訊模塊,我們可能既手工封裝操作系統(tǒng)api,又使用第三方庫。
                  在unix/linux系統(tǒng)上,直接調用socket()系列。
                  在windows上,直接調用winsock2提供的API。
                  使用MFC開發(fā)的,可能直接使用MFC提供的那個框架。
                  使用了boost庫的,可能喜歡使用那個異步io庫。
                  還有著名的ACE庫,以及類似的跨平臺庫。
                  ......
                  使用什么來實現(xiàn)都沒錯,主要是我們最好把握好一個度:
                  你的項目你的系統(tǒng)是什么規(guī)模,最好就采用什么規(guī)模的實現(xiàn)方式。
                  技術人員總有一種傾向,新學了一種知識,總是想使用一下,不管它合適不合適,有沒有害處。
                  我曾經(jīng)看到一段簡單的代碼,就是一個線程實現(xiàn),沒有什么數(shù)據(jù)同步、數(shù)據(jù)通訊等等,可這個線程是用ACE庫里的線程類來實現(xiàn)的,整個程序就四五個小小行數(shù)的cpp文件,為了一個線程,就引進一個大大ACE,而ACE僅僅在我那臺linux開發(fā)機上編譯出一個庫就花大半個上午,發(fā)布的時候還要帶上個so庫文件,這么簡單的功能直接使用pthread庫,linux常常都自帶了,完全沒有必要引入這么大的庫。
                  設計原則上講,形式追隨功能。
                  我們用什么形式去實現(xiàn)功能,是功能決定的,至于你能否把握這個原則,那要看你知識的廣度、開發(fā)經(jīng)驗等。
                  雙節(jié)棍在李小龍手里很厲害,你也像他那樣快速舞動一下,我看馬上就頭上腫起來了。也不是說我們就不能練雙節(jié)棍了,你立志成為武術好手, 雙節(jié)棍高手,那你要下很多功夫,當然就功到自然成了。
                  可以說,作為個人最好在技術上廣而精,逐步擴大自己知識面;商業(yè)項目開發(fā)時,則最好形式追隨功能,也要看參與者現(xiàn)有的知識結構。
                  
                  我的理解有限,大家多回復一下自己的看法,回復一下曾經(jīng)開發(fā)通訊模塊時都采用什么。

            posted on 2012-03-11 12:40 冰果 閱讀(1868) 評論(2)  編輯 收藏 引用

            評論

            # re: socket通訊是使用第三方庫還是手工封裝操作系統(tǒng)api 2012-03-13 17:29 vvilp

            同意, 做幾個小web 完全沒必要用到ssh 可以自己搭個小框架,但是現(xiàn)在 ssh 滿天飛,能用上ssh的大規(guī)模web卻不太多.....  回復  更多評論   

            # re: socket通訊是使用第三方庫還是手工封裝操作系統(tǒng)api 2012-03-15 09:27 Serval

            可能作者的考慮是爲了後期的擴展和維護吧,加入功能陸續(xù)加入的時候,某些庫就會體現(xiàn)出它的便利來。但是,個人有一點疑問:是否需要爲了後續(xù)不確定的需求而增加現(xiàn)在開發(fā)的複雜度。我個人的想法是,最好能夠搭建出一個好的數(shù)學模型,將時間,和後續(xù)增加需求的可能性都作為輸入,計算出一個值,根據(jù)這個值來決定採取那樣的設計。
            比如,我們一次做東西,需要限制在300KB,於是有工程師便砍掉了能看的所有功能,約270KB。說這樣後續(xù)如果增加需求的時候,就不用再砍了。這個項目過了半年了,也沒有再對它加什麼需求。反倒是有些額外功能被砍,使得後續(xù)的生產(chǎn)、測試稍顯不便。  回復  更多評論   

                                                        
            午夜天堂精品久久久久| 狠狠色丁香久久婷婷综| 国产精品gz久久久| 久久精品国产精品亚洲下载| 中文字幕无码久久久| 亚洲精品乱码久久久久久蜜桃图片 | 久久亚洲天堂| 亚洲精品乱码久久久久久中文字幕 | 最新久久免费视频| 久久超碰97人人做人人爱| 国产AV影片久久久久久| 国产色综合久久无码有码| WWW婷婷AV久久久影片| 久久伊人五月天论坛| 久久久久久久亚洲Av无码| 欧美久久久久久精选9999| 久久精品中文字幕无码绿巨人 | 亚洲精品乱码久久久久久蜜桃不卡 | 国产午夜福利精品久久| 欧美国产成人久久精品| 国产午夜精品久久久久九九| 精品国产乱码久久久久久1区2区 | 久久综合九色综合精品| 伊人久久大香线蕉AV色婷婷色| 国产精品欧美亚洲韩国日本久久| 亚洲中文字幕无码一久久区| 久久国产乱子伦精品免费午夜| 99久久精品午夜一区二区| 久久九九兔免费精品6| 日本加勒比久久精品| 久久久久久噜噜精品免费直播 | 97精品伊人久久久大香线蕉| 久久影院综合精品| 亚洲精品午夜国产VA久久成人| 精品国产乱码久久久久软件| 污污内射久久一区二区欧美日韩 | 久久香蕉国产线看观看精品yw| 99久久精品国产一区二区 | 亚洲香蕉网久久综合影视 | 人妻少妇精品久久| 亚洲欧美一级久久精品|