wheezy.web的基本设计思想

任何 高复杂的系统 成功的关键因素是:分而治之. 具体到 web框架的架构设计上,就是开发活动被分成 清晰,互不依赖的几部分. wheezy.web是一个轻量级的WSGI框架, 将wheezy.*下的各个包 粘合起来.

演示 http://wheezy.pythonanywhere.com/

wheezy.caching是一个轻量级的缓存库, 可以同 pylibmc(用C实现的更快更小的memcached客户端) 和 python-memcached (纯python实现)集成

特性: 你在其他框架中能找到,但是wheezy.web却没有的 1)web session 推荐用较细粒度的缓冲(fine grained caching)代替 同样的付出带来更大的收益. 考虑这种情况: 我有一个应用,它有20个handlers, 每个都存储一些不同的数据. 但是只有一个handler为进来的请求服务. 所以,对我的handler来说,我需要数据唯一. 如果使用session, 你将收到 为所有的handlers存储的数据…你的handler处理完了….所有的session数据再次被存回去

如果有很多并发的请求,触发不同的handler,都要”修改”同一个session,会怎么样了, 比如说 ajax调用 规模比较小,session都放在内存里, 不是什么问题

2)gzip 中间件 nginx做得更好 zhiwei: 有点怀疑, from wheezy.http.transforms import gzip_transform 这个不是middleware, 那是什么 参考 http://zhiwei.li/text/2013/08/wheezy-web%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/ 提到的 wheezy.http.transforms.gzip_transform wheezy.web.transforms.handler_transforms

3)静态站点缓存 中间件 nginx + uwsgi 做得更好

4) model 更新,验证和HTML小部件 作为一个单独的Form Libarry

这些都被拆分成单独的部件(actor), 更有弹性地结合在一起

5) ORM 分而治之的观点 告诉我们 明显不是一类的代码 同 web框架无关的ORM(比如SQLAlchemy)集成 只要很少的代码

6)Admin 膨胀的代码会要了你的命. 你不知道web框架从哪里开始,从哪里结束. 在我看来, Admin就是一个截然不同的代码,不应该是web框架的一部分.

注重效率是wheezy.web设计的一个关键考量

wheezy.web的基本设计思想

相关文章:

你感兴趣的文章:

标签云: