博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webSocket&rest以及未来的web
阅读量:5950 次
发布时间:2019-06-19

本文共 1137 字,大约阅读时间需要 3 分钟。

hot3.png

现在的web其实已经和过去不同了。大体上来说,web应用更倾向于提供某种服务而不是提供某种应用。这一点和之前有很大的区别,在早期的时候2000年左右,那个jsp时代,应用和web是混杂在一起的,web应用总是和界面杂糅,似乎web就应该是这样的。 
而基于web的服务,其实并不关心界面的问题,他仅仅关心他自己能够提供什么样的服务。特别是rest的提出,加深了这样一个概念。通过web服务,你可以很轻松的把你的一些不错的应用通过发布出去。而且这种松耦合的好处还在于可以比较轻松的集群,从而获得良好的伸缩性。 
而对于web应用来说,服务,界面,数据其实是永远的核心,任何应用也跳不出去这个圈子。nodejs这个时候出现了,这是一个无以伦比的适合做web的语言。node.js+socket.io(websocket)使得整个前台后台之间的界限非常的模糊,由于都是通过一种相似的事件方式工作,你可能感觉不出来他们之间的区别,而且传递的都是json对象,工作起来那是十分的方便。而且javascript这种特殊的语言,它有限的持之多范式的编程,既有函数式的特征又有对象的特征,而且支持对象字面值这种大杀器,直接导致你的代码量很少,却可以做更多的工作。所以对于nodejs来说,使用socketio即自然又高效。不过不太容易把应用发布称服务。 
rest的最大的优点就在于其标准性。用任何的语言通过web的接口都比较容易的和rest的服务通信从而获得数据。当然这一点websocket也可以做到,只是可能会比较麻烦,我倾向于同时提供两种接口,这对于nodejs来说,其实仅仅是一件小事而已。rest的缺点是显而易见的,总的来说就是啰嗦,冗余信息大多,速度缓慢。效率很低。 
所以一个现代的web应用应该是由几部分可以伸缩的单独的服务组成,大体分为数据服务(Hbase,hadoop,传统关系数据库),应用服务,界面(nodejs+某种前台js)来构成,这样的系统伸缩性很强,因为选择多,从而成本也更低。至于ssh..以及类似这种东西,统统都应该丢进垃圾堆了。甚至java我觉得都应该少用。数据服务这一层建议使用clojure,它有好的并发能力和良好的数据变换能力。应用服务,应该使用scala语言开发,它简洁,有力,actor模型也比较好。所以未来的web应用,必然会使用多种语言开发,这样可以提高开发效率以及减少维护的成本。因为代码量少了,自然维护就容易了。多种语言在不同的服务层面上开发,必然会导致代码量急剧减少,从而极大的消减维护的成本。未来的大web应用可能仅仅需要几个人来维护。

转载于:https://my.oschina.net/weiweiblog/blog/470026

你可能感兴趣的文章
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
JS敏感信息泄露:不容忽视的WEB漏洞
查看>>
分布式memcached服务器代理magent安装配置(CentOS6.6)
查看>>
Create Volume 操作(Part III) - 每天5分钟玩转 OpenStack(52)
查看>>
pxc群集搭建
查看>>
JS中加载cssText延时
查看>>
常用的脚本编程知识点
查看>>
计算机网络术语总结4
查看>>
新手小白 python之路 Day3 (string 常用方法)
查看>>
soapUI的简单使用(webservice接口功能测试)
查看>>
框架 Hibernate
查看>>
python-while循环
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>