Walk by faith code, hack, curious

A Web framework

一个web编程框架往往是一些包或者模块的集合,能够让开发人员来编写web应用或者服务,而不需要去关注底层的一些实现.例如协议,socket,或者线程进程管理等.
虽然大多数的框架都是服务器端的,但是随着ajax的流行,一些框架已经开始包含了ajax 的代码,来帮助开发人员应付一次比较棘手的客户端问题,在比较牛逼的框架技术里能够把浏览器作为一个应用的运行环境,比如gmail.
作为一个使用框架的开发人员,你需要通过写符合约定的代码来让你融入到框架中,这样你就可以把交互,架构,底层的一些东西委托给框架来帮你处理,而你只需要关心你应用的逻辑本身,而这种在web开发中插件形式经常被认为是和传统的程序和库之间的关系是相对的,而和那种通过一个主循环然后把对应的事件分发给相对应的处理程序来处理的方式是一样的.

通常,框架需要提供很多的组件例如请求拦截器(获取form元素,处理cookie和会话),生成响应(生成一个html格式的响应数据,或者别的格式),存储数据,等等.往往一个牛逼的框架需要各种的抽象,经常取决于他们自己,他们试图提供一个应用的完整解决方案,对应应用的每一层都提供相应的组件.

很多框架现在都提供对于他们已经支持的组件和抽象的自定义,利用他们提供的对于处理特定事物的组件.这样,你就能够建立你自己的完整的框架利用已有的框架.