- 分享
- 0
- 人气
- 7
- 主题
- 13
- 帖子
- 1837
- UID
- 76124
- 积分
- 2113
- 阅读权限
- 20
- 注册时间
- 2007-5-6
- 最后登录
- 2018-4-22
- 在线时间
- 1487 小时
|
原帖由 goodday 于 2009-8-21 09:35 AM 发表
路过 本人写着6tier 的
user interface layer
data access layer(data entity)
business logic layer (oop 真正的layer)
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
javascripts process layer (client side datagrid,extjs)
第一天, 我写了一个 html 的东西 然后 就排版 很开心的 完成了 给顾客 顾客看了 也很满意哦
很开心 就过了一天 (user interface layer)
第二天, 顾客就要我多个 feeback form 就是从里头的东西填了资料 按button 顾客就能收到 email 咯
我的做法 在 code behind 的加一个 method 就能完成咯 快乐的过了 一个上午
到了中午 顾客又打电话来 要加过 7 个 会send mail 的 功能 在不同的page
我就 copy & paste 给7个form 咯 很快的 又一个中午咯
到了下午 顾客又 打电话来 加多 7 个 send mail 的 功能 在不同的page
和 mail server 的 ip 不对咯 要改 下次换 ip 的机率 很高
总不能 cut and paste 吧
刚换一个 mail server 的 ip 要开 7 个 files 来改
现在 又加7 个 总共 14 个
下次 如果 100 个我不是 完蛋
好 开一个 BLL (busniess logic layer) 吧
把 他写成 一个 method 改一个 全部都 不用一个一个改 能翻用 而少bug 省时
耶 不止 email 的 method 能翻用 连 string process , get country list, captcha image, url rewrite
如 ecommerce 的 shopping cart, payment method, shipping charge 的计算 都能放在这个 layer
第三天, 顾客又有新的 pattern 咯 要资料库的储存
现在没钱 用mssql express 先 但原有的资料是在 mysql
等到 有钱要换 oracle , db2
哇那么多 要求 你以为我是神咩~~~
要做一个 support 4 个不同的资料库的 DAL (data accss layer)
怎么样做??
我看 factory pattern 的方式来完成吧
用一个interface 来定义 最基本的 base type
如 IConnection, ICommand, IResult
每种database 都需要先 connect database 然后发 command (select * from table) 和得到的结果 IResult 能是 datatable dataset datareader
然后分4 种不同的 database 的 class 都要 inherit 那个 basetype
因为base type 是这个 DAL 的 structure
如果不同的东西是 那个database 的特性 就写在 class 不影响 basetype
剩下的是 sql string 的不同 而已 所有的存取 data 不是问题咯
so 将来 换database 是不是问题了
问你 死未 ~~~
第四天 那个顾客有来扎场 要 AJAX 的视界效果
哇靠!!! 很想打死这个 顾客
ajax 的存取 data 是靠一个page 的 show 什么的字
他就读到什么的
普通的
<html>
<head></head>
<body>abv</body>
</html>
ajax 的
没html的(其实也能有的,某情况)
然后你不能直接dal 丢出你的资料吧
开一个 ajax communicate layer server side 的吧
因为 现在的 java framework 如 jquery,extjs,mootool,prototype, yui
data 都是已 xml 和 JSON(JavaScript Object Notation) 的方式 呈现
JSON 是最快的
如 datatable
------------
A | B | C |
------------
1 | 2 | 3 |
------------
4 | 5 | 6 |
------------
JSON
{[{A:"1"},{B:"2"},{C:"3"}],[{A:"4"},{B:"5"},{C:"6"}]}
需要把 不同的 换成 让 jquery 明白的
============还是server 端的======================== ----------------browse IE firefox Chrome Safari----------------------
DB ==〉DAL ==〉BLL==〉ajax communicate layer server side ==〉 ajax communicate layer client side (XMLHttpRequest,jquery)
但browser 受到你的 data 还是要经过处理的
那一定很多 .JS .JS 的
或你自己要的排版格式 排位
或者你 能讲是同2个layer 都是 拿资料的
我就分开了 一个是 server 的直接 DT 的
另一个 就是 for ajax 的 要处理成 JSON,XML
如果我 把这个东西交给下一个 programmer 你硬硬 要说 DAL DAL 你看你的下一手 会乱吗??
一个method 是 Datatable 来的 一个是 JSON
为什么不明白的分开 而让人清楚你的 架构??
好的 program 就是容易 extend 和 handover ma
或者你要你的 source 是世界上你自己一个人能看得明白吧
我们做programmer 就是读 你的客户头上的那朵云啊
分析是我们其中的一个工作
给顾客玩 也是我们的不幸
还有顾客是不懂 他的内部架构是那么厉害的 也不会给多你的
很喜欢拿我们和那些 3脚猫 来比 会气死的那种
真的是同一个layer 吗?
对! 都是处理data的吧
但我的需求是真的要分成那样的
原帖由 jacketmaniac 于 2010-3-11 11:30 AM 发表
user interface layer
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
javascripts process layer (client side datagrid,extjs)
...
原帖由 qweasdzxc 于 2010-3-11 12:50 PM 发表
ajax communicate layer server side (WCF,json,text)
ajax communicate layer client side (XMLHttpRequest,jquery)
javascripts process layer (client side datagrid,extjs)
以上的应该是表现层。(pre ...
以MVC 来说你们来说对了啦
但很广义叻
欢迎你们的批评,指教 |
|