CS架构

软件运行在 客户端 client 数据库等等运行在 服务器端 server

BS架构

后来发现 CS架构不适合 WEB. 因为web程序的修改和升级非常迅速. 而CS架构需要每个客户 逐个升级桌面APP…. 因此有了Browser/Server BS架构. BS架构: 用户只需要浏览器. 程序的逻辑/数据都存在服务器中. 浏览器只需要请求服务器,获取web页面.把web页面展示给用户即可.

Web 应用开发可以说是目前软件中最重要的部分.

web开发经历阶段:

静态web页面:

由文本编辑器直接编辑 生成的静态html页面.如需修改web页面内容就要再次编辑HTML源文件

CGI

由于静态页面无法与用户交互, 比如用户填写了一个注册表单.静态Web页面就无法处理. 要处理用户发送的动态数据: 就出现了 CGI: common gateway interface. 用c/c++ 编写

ASP/JSP/PHP

Web应用的特点是修改频繁. C这样的低级语言非常不适合web开发. 脚本语言由于开发效率高.与html结合紧密. 迅速取代了CGI模式 ASP: 微软推出的用 VBScript脚本编程的web开发技术 JSP: 用java 来编写脚本. PHP: 本身就是 开源脚本语言

MVC

为了解决 直接用脚本语言 嵌入HTML 导致的 可维护性查的问题. web应用也引入了 Model-view-controller 来简化web开发. ASP 发展为 ASP.net JSP 和 php 也有一大堆MVC 框架.

目前

Web 开发技术仍然在快速发展中. 异步开发. MVVM 前端技术 层出不穷…

由于 Node.js 把js引入了服务器. 原来必须使用PHP/Python….等等来开发的服务器端程序 也可以用node.js 开开发了.

Node.js 优势

  • 前端的js 也可以编写后端代码了…
  • 快.非常快! 这得益于node.js 天生就是异步的.

    Web框架: Express,Sails.js,koa,Meteor,DerbyJS,Total.js,restify… ORM框架: Sequelize,ORM2,Bookshelf.js,Objection.js…… 模版引擎PK: Jade,EJS,Swig,Nunjucks,doT.js… 测试框架: Mocha,Expresso,Unit.js,Karma…… 构建工具: Grunt,Gulp,Webpack……