记录:我理解的B/S与C/S

如果面试官问你“有没有做过B/S开发?”的时候,其实就是问你 html/css/javascript 技术怎样,是否了解 http 原理、web服务基本原理,是否了解一两种 web服务器端小网站的开发流程。这些软件的前端需要经过各种浏览器的客户端解析、(准)编译之后再动态执行。而问你“C/S开发!”就是相反地问题,不局限上述技术、不经过浏览器而是直接与图形操作系统打交道,直接编写tcp、udp、msmq等等协议的程序,基本上这就是 windows 桌面应用程序的天下(95%以上的市场占有率)。显然这类桌面应用软件的用户体验跟网页是有去别的,不过现在的 javascript 流行,特别是 Hybrid 技术造成了许多高性能“单页面应用、手机应用”,说明基于浏览器的编程方式相比于传统桌面应用、手机应用的开发,开发效率上有极大优势(但是这方面的难度比较大,比如一个学了 native 开发的 iOS 工程师可以不会多少编程只会用一点现成组件而只能写几百行源代码就装B,而一个 javascript 工程师则不但要搞懂许多实用 js 插件而且还要有能写 5000 行以上的 js 源代码才能装 B)。而我不认为只会写个简单宣传网页,就算是某些人所说的“熟悉、精通”B/S开发。

我不想过多讨论所谓的“C/S架构”问题了。简单说一下。所谓“C/S架构”就是指得你自己开发一个桌面客户端软件,然后再自己开发一个业务服务器端软件,然后自己的两个系统相互通讯。大多数初学者以为会用个 ADO.NET 来调用 SQL Server 的数据库驱动进行“增删改查”就算是自己开发了服务器端系统了,这是局域网小办公室里玩儿软件的思维方式,不是基于互联网的思维方式。真正的 C/S 就好像是手机网络,(不同操作系统的)手机系统把音频信号发给移动公司网络,然后经过各省、各市的服务器,发送给另外一端的手机进行播放,同时各省的网络还做了财务计费、BOSS服务、用户分析、企业用户管理等等工作,这样的网络就是传统的 C/S 系统。它不基于浏览器,并且它是“客户端-服务器”架构的,客户端根本不知道服务器端用的是什么操作系统、数据库、有几个数据库,客户端就是按照规定的协议与服务器端进行高效率的通讯即可。

在桌面程序里边嵌入一个 WebBrowser,准确地说,那只有 C/S 的一点皮毛,而真正要开发还是 B/S 无疑。注意这里是指“开发”自己的跑在 WebBrowser 控件内的应用,而不是说使用一个 WebBrowser 只是为了跑别人的一个网站客户端。

如果你在 PhoneGap Build 网站上注册一个免费的开发者账号,你就能看到其 Codovar 提供了哪些官方的插件,以及有多少第三方插件供人免费使用。国内有好几家比较大的手机软件开发商(例如 WeX5)其底层也是使用它,只不过自己再做了一层封装。

大多数手机应用都不是用底层原生的方式,而是通过“浏览器”来运行。同时基于 Hybrid 架构可以使得这类手机应用无限接近原生应用(而在稳定性、动态更新、开发成本上则具有10倍以上的优势!)

所以现在说“B/S架构”其实可能有很大的误导。我基本上不用“b/s、c/s”这样的词儿了,我们谈开发的时候就用更加接地气的词儿来谈。基本上,如果遇到的朋友谈“b/s、c/s”概念时,都说明他是开发的外行。因为在“B/S”这个词儿的歧义太大了,根本不能准确了解说者的真实的东西不到半斤还是有八两。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值