• <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>
            今天看到CSDN上這么一篇《 徹底放棄沒落的MFC,對新人的忠告!》, 作為一個一直在Windows上搞客戶端開發的C++程序員,幾年前也有過類似的隱憂(參見 落伍的感覺), 現在卻有一些不同的想法。

            首先,個人職業發展是否成功, 技術只是其中一小塊,尤其是在大公司, 更多的是依靠所謂的軟實力。作為一個對技術有追求的工匠,我們下面重點說技術相關的。

            現在回頭看計算機行業的發展,我們看到不同的發展階段:

            1. PC時代,這個時代離我們并不遙遠, 也有是2000年前后, 該時代最鮮明的特征是Windows操作系統,Office軟件,Exchange郵件服務器等,還有Windows平臺上的各種通訊娛樂工具以及行業軟件等。這個時代大部分都是和Windows操作系統相關, 這個時代的開發工具也是百花齊放:VC, VB, Delphi, PB, 以及后來的C#, 本質上都是Windows API。

            2。PC互聯網時代, 這個時代和PC時代很大程度是重合的,因為互聯網客戶端瀏覽器的載體還是PC, 這個時代最顯著的特征是Google, Baidu, Facebook,淘寶等的興起, 網絡搜索,網絡社交, 網上購物成為時髦。這個時代說白一點就是怎么做好一個網站,開發工具包括后端和前端:ASP,JSP, Java, PHP,html, JS等, 本質上是http協議及html.

            3. 移動互聯網時代, 手機本來只是打電話和發短信用的, 蘋果iPhone改變了這一切,開啟了智能手機的新時代。現在我們通常說的移動開發主要是指iPhone和Android開發,以及少量的WinPhone和BlackBerry開發。移動互聯相對于PC互聯,有幾點不同:首先移動時代能夠讓人充分利用空閑時間片,社交(微薄、微信)和游戲娛樂都很方便;另外移動手機有位置定位功能, 導致了O2O創業潮的興起和成功(比如uber)。移動App的開發語言各異(Objective-C, Java, C++, C#)等都有, 本質上是一個客戶端軟件。

            4。未來, 有人說是互聯網+,有人說是萬物互聯(智能手環,智能路由,智能家電)...

            從上面我們可以看到, 每個時代都有自己的特色,一個時代的興起并不會完全取代另一個時代:PC還是我們的主要辦公工具, 手機是我們隨身的通訊和娛樂工具,誰都沒法完全取代誰。

            互聯網時代的技術體系無非是分為服務端和客戶端:

            (1)服務端來說, 如網站后臺,主要是如何高效從海量數據中的返回用戶需要的數據, 也就是所謂的大數據技術(如Hadoop,spark);如果是IM后臺,  常用開源的XMPP服務器(Openfire, Ejabberd); 另外游戲服務器,視頻服務器很多技術其實都差不多, 主要都是提供Session連接和邏輯處理。

            (2)客戶端,客戶端主要分為Web客戶端和Native客戶端。
            Web客戶端就是所謂的前端開發, html5前幾年被吵得很熱,這幾年有些降溫,因為Web UI的用戶體驗和Native還是有挺大差異, 尤其是在移動手機上。做產品一定要提供最好的用戶體驗才能在市場中獲勝, 所以除非Web的其他優勢大大超越了用戶體驗的需求, 它才會被考慮使用。這也是淘寶前端用Web實現, 而QQ前端用Native C++搞的原因,想想淘寶如果用C++搞個客戶端會怎么樣,頁面三天兩頭變怎么吃的消。

            下面我們重點說Native客戶端開發, 以前寫過一篇《客戶端架構設計的簡單總結》,那時主要是搞Windows, 現在搞跨平臺之后,發現各個平臺的客戶端基本上都是大同小異。我們會發現客戶端的大部分技術都是跨平臺的, 而且很多技術都是開源的。比如數據存儲用SQLite, XMPP通訊用Gloox, Web交互用LibCurl, 數據打包用Protocol Buffer, socket通訊用boost asio,另外大部分都是邏輯代碼和專業技術(如H.264)。 我們會發現除了UI代碼,客戶端80%的代碼都是可以用跨平臺C++代碼搞定(Windows, Mac, ios, android, Linux, BlackBerry)。 我們這里要做的就是把框架搭好,協議定好,層次分好,模塊切割好,把UI和邏輯分離好。據我所知微軟的Office除了UI部分,PC和移動版也是用這總方式實現的跨平臺。

            回到本文剛開始的問題, 初學者要不要學MFC? 個人覺得先要看自己定位的開發平臺, 如果是搞Windows, 那也應該先從Windows API學起,根據工作需要決定要不要學MFC 。總之,無論學什么,先深入一個平臺, 從C++編譯器到CRT運行庫, 再到操作系統, 從用戶態API到內核和驅動,越深越好,然后再跳出這個平臺,接觸其平臺,會發現各個平臺基本都是大同小異。
            posted on 2015-09-18 00:49 Richard Wei 閱讀(4019) 評論(10)  編輯 收藏 引用 所屬分類: 行業動態

            FeedBack:
            # re: 客戶端技術的一點思考[未登錄]
            2015-09-18 07:15 | 春秋十二月
            我經歷了win桌面-->linux服務端-->linux驅動內核的階段,在做win桌面應用的時候,又經歷了win32 API-->mfc-->com/atl/wtl。現在覺得編程,真是一種藝術,只要你愿意,完全可以干到40、50歲。技術深入的好處是對計算機系統會有深刻的理解(如進程管理、文件系統、網絡通信等),而知其所以然,那么做應用時,對設計與優化有莫大的幫助。  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-09-18 21:24 | Richard Wei
            @春秋十二月
            是的,計算機技術的變化可以說很快,也可以說很慢。快的方面來說,各種新語言新技術新平臺層出不窮,好像三天兩頭在變;慢的方面來說,數據結構和算法,語言范型,網絡協議,馮諾依曼體系結構等幾十年來都很穩定,練好內功才能以靜制動。  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-09-21 10:15 | 蘇州街居士
            如果只是做工具,用用MFC也無妨  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-09-24 10:58 | lbfamous
            做工具用WinForm ,QT 吧,MFC這東西現在最大的用處要么是兼容舊的項目,要么就是提供一些編程的營養了。  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-10-13 10:36 | mmocake
            MFC還不錯,用的湊合  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-10-16 11:29 | liquanhai
            樓主寫的真好,受教了!  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-12-10 19:07 | 謝應彪
            你好,想和你討論一下duilib自動化的事情,方便留個聯系方式嗎?  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-12-11 14:17 | Richard Wei
            @謝應彪
            要點我在這篇文章里都說了 http://www.shnenglu.com/weiym/archive/2014/11/15/208885.html

            我們的Windows Client就是基于開源的DUILib的, 有興趣可以試用下 zoom.us  回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-12-11 15:28 | 游戲狗…
            我是菜鳥,主要是弄自動化相關的測試工作,能麻煩你給一個demo嗎?到處都找了資料,就您這里最全了,謝謝最@Richard Wei
              回復  更多評論
              
            # re: 客戶端技術的一點思考
            2015-12-11 15:35 | Richard Wei
            @游戲狗…
            這個需要DUILib庫的開發為每個控件實現IAccessible接口,自動測試再通過這個接口查詢和操作控件, 思路就那樣,手頭現成的Demo也我沒有.  回復  更多評論
              
            99久久婷婷国产一区二区| 国产高清国内精品福利99久久| 久久精品不卡| 国产精品中文久久久久久久| 色欲综合久久躁天天躁蜜桃| 97久久超碰国产精品旧版| Xx性欧美肥妇精品久久久久久| 热RE99久久精品国产66热| 亚洲色欲久久久综合网东京热 | 久久久久亚洲AV成人网人人网站| 天天做夜夜做久久做狠狠| 久久精品国产亚洲AV无码麻豆| 久久AⅤ人妻少妇嫩草影院| 亚洲日韩中文无码久久| 久久国产成人精品国产成人亚洲| 亚洲中文字幕久久精品无码喷水| 久久99精品国产99久久6| 精品久久久久久成人AV| 亚洲国产视频久久| 国产成人精品久久| 97久久精品人妻人人搡人人玩| 久久精品国产亚洲av麻豆蜜芽 | 国产V亚洲V天堂无码久久久| 久久夜色精品国产亚洲av| 久久福利青草精品资源站免费| 中文字幕日本人妻久久久免费 | 亚洲а∨天堂久久精品| 人人狠狠综合久久亚洲婷婷| 亚洲国产另类久久久精品黑人 | 欧美精品国产综合久久| 久久久精品日本一区二区三区| 精品综合久久久久久888蜜芽| 国内高清久久久久久| 久久乐国产综合亚洲精品| 青青热久久国产久精品| 久久se精品一区二区影院| 91精品国产91久久| 久久精品国产69国产精品亚洲| 99久久无色码中文字幕| 精品久久久久久国产潘金莲| 国产精品久久永久免费|