Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2008-09-21 15:38:10
Size: 2804
Editor: ZoomQuiet
Comment:
Revision 3 as of 2008-09-21 15:47:15
Size: 3239
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
:status: 草稿|校对|正式;AuthorName;完成度15%; :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次
Line 14: Line 30:
我们喜欢Python !  我们喜欢Python !
Line 17: Line 33:
Django, Pylons
都很简单
 Django, Pylons
 都很简单
Line 21: Line 37:
Zope
!!
 Zope
 !!
Line 25: Line 41:
太复杂!  太复杂!
Line 28: Line 44:
很严肃 ...  很严肃 ...
Line 31: Line 47:
对象耦合、重用问题...  对象耦合、重用问题...
Line 34: Line 50:
很难、很专业!  很难、很专业!
Line 37: Line 53:
用一点是一点咯  用一点是一点咯
Line 42: Line 58:
基于接口开发
可重用 \ 可维护
 基于接口开发
 可重用 \ 可维护
Line 46: Line 62:
COM
XPCOM
 COM
 XPCOM
Line 52: Line 68:
Zope Component Archetecture?
Python Component Archetecture!
 Zope Component Archetecture?
 Python Component Archetecture!
Line 55: Line 71:
------------------------
Line 56: Line 73:
------------------------
Line 58: Line 76:
数据为中心
编写函数操作数据
数据在函数之间传递
复杂难维护!
 数据为中心
 编写函数操作数据
 数据在函数之间传递
 复杂难维护!
Line 64: Line 82:
封装数据和操作
更容易维护
噩梦: 扩展新功能...
 封装数据和操作
 更容易维护
 噩梦: 扩展新功能...
Line 69: Line 87:
ZCA核心功能!
瘦的Model
通过Adapter来扩展
 ZCA核心功能!
 瘦的Model
 通过Adapter来扩展
Line 76: Line 94:
投影仪?
视频 + 电源 -> 投影
 投影仪?
 视频 + 电源 -> 投影
Line 80: Line 98:

一: 提供使用接口定义组件的方法
二:注册组件之间的接口关系
三:查询满足某个接口关系的组件
 一: 提供使用接口定义组件的方法
 二:注册组件之间的接口关系
 三:查询满足某个接口关系的组件
Line 86: Line 103:

单子: 电源
单子:数据库连接
工具 Utility: 适配空
Utility: 得到实现某接口的对象
 单子: 电源
 单子:数据库连接
 工具 Utility: 适配空
 Utility: 得到实现某接口的对象
Line 93: Line 109:

1. 订阅适配
例: 多重的数据校验
2. 事件处理器
Observer模式
 1. 订阅适配
  例: 多重的数据校验
 2. 事件处理器
  Observer模式
Line 104: Line 119:
更方便各个模块独立开发
方便测试
可重用!
提供了实践设计模式的简单途径
 更方便各个模块独立开发
 方便测试
 可重用!
 提供了实践设计模式的简单途径
Line 112: Line 127:
如果世界本来就简单呢?
但世界本来就复杂啊!
 如果世界本来就简单呢?
 但世界本来就复杂啊!

显卡?
 PCI -> VGA
网卡?
 PCI -> 网线EIA/TIA 568B
电源?
 220V -> 9V

接口! Interface
 适配, 一个接口 -> 另一个接口

多适配,
 但世界本来就复杂啊!
Line 120: Line 148:

repoze.tm
repoze.who
repoze.vhm
repoze.urispace
repoze.errorlog
repoze.profile
repoze.debug
deliverance
Beaker
 repoze.tm
 repoze.who
 repoze.vhm
 repoze.urispace
 repoze.errorlog
 repoze.profile
 repoze.debug
 deliverance
 Beaker
Line 132: Line 159:
 1. 复杂的分裂为简单
 2. 融合各个简单个体
Line 133: Line 162:
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. 融合各个简单个体
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的根基
        如果世界本来就简单呢?
        但世界本来就复杂啊!

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

FromZcaToWsgi (last edited 2009-12-25 07:10:01 by localhost)