##language:zh ##OBP项目图书reST通用文章模板 #format rst :status: 今天牙疼,冒着牙疼讲课,值得鼓励不。。。我半边脸都是肿的,发现没。 Junyong Pan:: Junyong Pan reply-to zpug@googlegroups.com to zpug@googlegroups.com cc "Python.cn@google" , CPUG-华东南用户组 , 哲思讨论区 , "TopLanguage]列表" , 504mail@googlegroups.com, 金山蟒营 , ecug@googlegroups.com date Sat, Sep 20, 2008 at 18:06 subject [ZPyUG:874] Re: [ann][会课]ZPyUG 08.03 合OpenSourceCamp 广州~总第31次 .. contents:: :depth: 3 源自 ZPyUG08.3_ "[会课]ZPyUG 08.03 合OpenSourceCamp 广州~总第31次" .. _ZPyUG08.3: http://wiki.woodpecker.org.cn/moin/ZPyUG/2008-09-20 ====================== 从 组件架构 到 WSGI ====================== Python: 简单的美 我们喜欢Python ! 我们也喜欢, Django, Pylons 都很简单 那么 Zope !! 大家伙 太复杂! 如何开发一个大型系统? 很严肃 ... 面向对象? 对象耦合、重用问题... 20多种设计模式... 很难、很专业! MVC轻量级框架 用一点是一点咯 我们缺少什么? 组件开发框架! 基于接口开发 可重用 \ 可维护 他山之石: COM XPCOM 我们拥有什么? ZCA Zope Component Archetecture? Python Component Archetecture! ------------------------ 回顾... ------------------------ 一:过程式 数据为中心 编写函数操作数据 数据在函数之间传递 复杂难维护! 二:面向对象 封装数据和操作 更容易维护 噩梦: 扩展新功能... 三:适配器模式 Adapter ZCA核心功能! 瘦的Model 通过Adapter来扩展 一切皆适配! 看看现实生活中的适配器多个接口 -> 新的接口 投影仪? 视频 + 电源 -> 投影 ZCA做什么? 一: 提供使用接口定义组件的方法 二:注册组件之间的接口关系 三:查询满足某个接口关系的组件 如何表现单子模式? 单子: 电源 单子:数据库连接 工具 Utility: 适配空 Utility: 得到实现某接口的对象 高级的适配应用 1. 订阅适配 例: 多重的数据校验 2. 事件处理器 Observer模式 就这些了... 到底用起来怎么样? 设计模式进入天人合一境界 更方便各个模块独立开发 方便测试 可重用! 提供了实践设计模式的简单途径 反思: 真的需要ZCA吗? 复杂系统的存在,是ZCA的根基 如果世界本来就简单呢? 但世界本来就复杂啊! 显卡? PCI -> VGA 网卡? PCI -> 网线EIA/TIA 568B 电源? 220V -> 9V 接口! Interface 适配, 一个接口 -> 另一个接口 多适配, 但世界本来就复杂啊! 分解之... 手术刀:WSGI WSGI的时代已经到来... repoze.tm repoze.who repoze.vhm repoze.urispace repoze.errorlog repoze.profile repoze.debug deliverance Beaker 因此,WSGI让: 1. 复杂的分裂为简单 2. 融合各个简单个体 .. macro:: [[PageComment2(nosmiley=1, notify=1)]] .. macro:: -- ZoomQuiet [[[DateTime(2008-09-21T15:38:10Z)]]]