随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流行,简称BS架构。

    在BS架构下,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。

    当然,Web页面也具有极强的交互性。由于Web页面是用HTML编写的,而HTML具备超强的表现力,并且,服务器端升级后,客户端无需任何部署就可以使用到新的版本,因此,BS架构迅速流行起来。

    今天,除了重量级的软件如Office,Photoshop等,大部分软件都以Web形式提供。比如,新浪提供的新闻、博客、微博等服务,均是Web应用。

    Web应用开发可以说是目前软件开发中最重要的部分。Web开发也经历了好几个阶段:

    静态Web页面:由文本编辑器直接编辑并生成静态的HTML页面,如果要修改Web页面的内容,就需要再次编辑HTML源文件,早期的互联网Web页面就是静态的;

    CGI:由于静态Web页面无法与用户交互,比如用户填写了一个注册表单,静态Web页面就无法处理。要处理用户发送的动态数据,出现了Common Gateway Interface,简称CGI,用C/C++编写。

    MVC:为了解决直接用脚本语言嵌入HTML导致的可维护性差的问题,Web应用也引入了Model-View-Controller的模式,来简化Web开发。ASP发展为ASP.Net,JSP和PHP也有一大堆MVC框架。

    目前,Web开发技术仍在快速发展中,异步开发、新的MVVM前端技术层出不穷。

    由于Node.js把JavaScript引入了服务器端,因此,原来必须使用PHP/Java/C#/Python/Ruby等其他语言来开发服务器端程序,现在可以使用Node.js开发了!

    用Node.js开发Web服务器端,有几个显著的优势:

    一是后端语言也是JavaScript,以前掌握了前端JavaScript的开发人员,现在可以同时编写后端代码;

    二是前后端统一使用JavaScript,就没有切换语言的障碍了;

    三是速度快,非常快!这得益于Node.js天生是异步的。

    常见的Web框架包括:,Sails.js,,Meteor,,Total.js,……

    ORM框架比Web框架要少一些:Sequelize,,Bookshelf.js,……

    模版引擎PK:Jade,,Swig,,doT.js……

    测试框架包括:,Expresso,,Karma……

    构建工具有:,Gulp,……

    目前,在npm上已发布的开源Node.js模块数量超过了30万个。

    有选择恐惧症的朋友,看到这里可以洗洗睡了。

    Web开发 - 图1