Rendering of reStructured text is not possible, please install Docutils.
:status: 今天牙疼,冒着牙疼讲课,值得鼓励不。。。我半边脸都是肿的,发现没。

Junyong Pan::

        Junyong Pan <[email protected]>
        reply-to        [email protected]
        to      [email protected]
        cc      "Python.cn@google" <[email protected]>,
        CPUG-华东南用户组 <[email protected]>,
        哲思讨论区 <[email protected]>,
        "TopLanguage]列表" <[email protected]>,
        [email protected],
        金山蟒营 <[email protected]>,
        [email protected]
        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)]]]