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

======================
从 组件架构 到 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的根基
如果世界本来就简单呢?
但世界本来就复杂啊!

分解之...

手术刀:WSGI

WSGI的时代已经到来...

repoze.tm
repoze.who
repoze.vhm
repoze.urispace
repoze.errorlog
repoze.profile
repoze.debug
deliverance
Beaker

因此,WSGI让:

1. 复杂的分裂为简单
2. 融合各个简单个体


显卡?
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)]]]