# 一 why

## 为什么要写一个 web 框架

* 1 什么是 web 框架？
* 2 为什么要重写一个 web 框架？

#### 1 什么是 web 框架？

框架，即 framework，特指为解决一个开放性问题而设计的具有一定约束性的支撑结构，使用框架可以帮你快速开发特定的系统。

对于所有的 Web 应用，本质上其实就是一个 socket 服务端，用户的浏览器其实就是一个 socket 客户端。

当然，我们先来考察一下现有的流行的 Web 框架：

> * Django：一站式开发框架，但不利于定制化；
> * web.py：使用类而不是更简单的函数来处理 URL，并且 URL 映射是单独配置的；
> * Flask：使用 @decorator 的 URL 路由不错，但框架对应用程序的代码入侵太强；
> * bottle：缺少根据 URL 模式进行拦截的功能，不利于做权限检查。

#### 2 为什么要重写一个 web 框架？

这不是重造轮子么？有那么多优秀的 Web 框架用，为啥要自己写一个？

对于一个编程学习者来说，自己动手写一个 Web 框架，有这些好处：

> * 更好地认识、理解 Web 框架
> * 回顾、巩固 Web 开发的知识点
> * 引入对设计的思考，锻炼设计思维
> * 对比优秀框架，理解什么是好框架
