|
Size: 3404
Comment:
|
Size: 3239
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 6: | Line 6: |
| Junyong Pan: | Junyong Pan:: |
| Line 30: | Line 30: |
| 我们喜欢Python ! | 我们喜欢Python ! |
| Line 33: | Line 33: |
| Django, Pylons 都很简单 |
Django, Pylons 都很简单 |
| Line 37: | Line 37: |
| Zope !! |
Zope !! |
| Line 41: | Line 41: |
| 太复杂! | 太复杂! |
| Line 44: | Line 44: |
| 很严肃 ... | 很严肃 ... |
| Line 47: | Line 47: |
| 对象耦合、重用问题... | 对象耦合、重用问题... |
| Line 50: | Line 50: |
| 很难、很专业! | 很难、很专业! |
| Line 53: | Line 53: |
| 用一点是一点咯 | 用一点是一点咯 |
| Line 58: | Line 58: |
| 基于接口开发 可重用 \ 可维护 |
基于接口开发 可重用 \ 可维护 |
| Line 62: | Line 62: |
| COM XPCOM |
COM XPCOM |
| Line 68: | Line 68: |
| Zope Component Archetecture? Python Component Archetecture! |
Zope Component Archetecture? Python Component Archetecture! |
| Line 71: | Line 71: |
| ------------------------ | |
| Line 72: | Line 73: |
| ------------------------ | |
| Line 74: | Line 76: |
| 数据为中心 编写函数操作数据 数据在函数之间传递 复杂难维护! |
数据为中心 编写函数操作数据 数据在函数之间传递 复杂难维护! |
| Line 80: | Line 82: |
| 封装数据和操作 更容易维护 噩梦: 扩展新功能... |
封装数据和操作 更容易维护 噩梦: 扩展新功能... |
| Line 85: | Line 87: |
| ZCA核心功能! 瘦的Model 通过Adapter来扩展 |
ZCA核心功能! 瘦的Model 通过Adapter来扩展 |
| Line 92: | Line 94: |
| 投影仪? 视频 + 电源 -> 投影 |
投影仪? 视频 + 电源 -> 投影 |
| Line 96: | Line 98: |
一: 提供使用接口定义组件的方法 二:注册组件之间的接口关系 三:查询满足某个接口关系的组件 |
一: 提供使用接口定义组件的方法 二:注册组件之间的接口关系 三:查询满足某个接口关系的组件 |
| Line 102: | Line 103: |
单子: 电源 单子:数据库连接 工具 Utility: 适配空 Utility: 得到实现某接口的对象 |
单子: 电源 单子:数据库连接 工具 Utility: 适配空 Utility: 得到实现某接口的对象 |
| Line 109: | Line 109: |
1. 订阅适配 例: 多重的数据校验 2. 事件处理器 Observer模式 |
1. 订阅适配 例: 多重的数据校验 2. 事件处理器 Observer模式 |
| Line 120: | Line 119: |
| 更方便各个模块独立开发 方便测试 可重用! 提供了实践设计模式的简单途径 |
更方便各个模块独立开发 方便测试 可重用! 提供了实践设计模式的简单途径 |
| Line 128: | Line 127: |
| 如果世界本来就简单呢? 但世界本来就复杂啊! |
如果世界本来就简单呢? 但世界本来就复杂啊! 显卡? PCI -> VGA 网卡? PCI -> 网线EIA/TIA 568B 电源? 220V -> 9V 接口! Interface 适配, 一个接口 -> 另一个接口 多适配, 但世界本来就复杂啊! |
| Line 136: | 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 148: | Line 159: |
| 1. 复杂的分裂为简单 2. 融合各个简单个体 |
|
| Line 149: | 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. 融合各个简单个体 |
: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)]]]