客户端技术的一点思考(数据存储用SQLite, XMPP通信用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通信用boost asio)

今天看到CSDN上这么一篇《 完全放弃没落的MFC,对新人的忠告!》, 做为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过相似的隐忧(参见 落伍的感受), 如今却有一些不一样的想法。html

 
首先,我的职业发展是否成功, 技术只是其中一小块,尤为是在大公司, 更多的是依靠所谓的软实力。做为一个对技术有追求的工匠,咱们下面重点说技术相关的。
 
如今回头看计算机行业的发展,咱们看到不一样的发展阶段:
 
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).
 
(2)客户端,客户端主要分为Web客户端和Native客户端。
Web客户端就是所谓的前端开发, html5前几年被吵得很热,这几年有些降温,由于Web UI的用户体验和Native仍是有挺大差别, 尤为是在移动手机上。作产品必定要提供最好的用户体验才能在市场中获胜, 因此除非Web的其余优点大大超越了用户体验的需求, 它才会被考虑使用。这也是淘宝前端用Web实现, 而QQ前端用Native C++搞的缘由。
 
下面咱们重点说Native客户端开发, 之前写过一篇《 客户端架构设计的简单总结》,那时主要是搞Windows, 如今搞跨平台以后,发现各个平台的客户端基本上都是大同小异。咱们会发现客户端的大部分技术都是跨平台的, 并且不少技术都是开源的。好比数据存储用SQLite, XMPP通信用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通信用boost asio。 咱们会发现除了UI代码,客户端80%的代码都是能够用跨平台C++代码搞定(Windows, Mac, ios, android, Linux, BlackBerry)。 咱们这里要作的就是把框架搭好,协议定好,层次分好,模块切割好,把UI和逻辑分离好。据我所知微软的Office除了UI部分,PC和移动版也是用这总方式实现的跨平台。
 
回到本文刚开始的问题, 初学者要不要学MFC? 我的以为先要看本身定位的开发平台, 若是是搞Windows, 那也应该先从Windows API学起,根据工做须要决定要不要学MFC 。总之,不管学什么,先深刻一个平台, 从C++编译器到CRT运行库, 再到操做系统, 从用户态API到内核和驱动,越深越好,而后再跳出这个平台,接触其平台,会发现各个平台基本都是大同小异。
 
http://www.cnblogs.com/weiym/p/4818088.html
相关文章
相关标签/搜索