萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

楼主: robbe

DB/Cache/MVC/3-Tier...

[复制链接]
发表于 2005-11-5 16:30 | 显示全部楼层
原帖由 wero 于 2005-11-5 16:21 发表

欧  这个不是MVC架构吗
数据db1 model
db2及logic processing 对应controller
asp,jsp对应前端

其中db2可以作为controller的一个所谓 可委托代理delegate存在,但缺点是 这里必须有本地化脱离jdk的调用

大概知道了
偶没有做过项目,不是很清楚MVC,只知道大概
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 19:55 | 显示全部楼层
先说明我不是笑嘻嘻豆豆,借名发个贴而已。兄弟我项目也做了不少了,看了后来几个"高手"回帖实在有点不知所云的感觉。什么三层结构,MVC全出来了,这扯到那里去了。数据库前再人为加一道Cache可能的原因就是尽量(彻底)避免数据库访问,虽然数据库也有Cache,但数据库连接和网络带宽还是会被占用。高并发的情况还是可能会有问题。这种情况可能会出现在老的以数据为中心的应用中。

个不是MVC架构吗
数据db1 model
db2及logic processing 对应controller
asp,jsp对应前端


这个实在看不下去了。看一下MVC的原始定义吧
Model 抽象业务数据 一般对应数据源(不一定是数据库)
数据db1 对应 model 这没错

View 定义用户界面
asp,jsp对应前端, 这也正确

Controller 定义对请求的响应或业务的流转 (但并不是业务逻辑本身)
J2EE里一般放在Web层用Servlet 实现。db2及logic processing 怎么可能对应controller 明摆着是业务逻辑加个过滤数据库。

别老是动不动就摆专业单词。搞技术可不是赶时髦。

[ 本帖最后由 笑嘻嘻豆豆 于 2005-11-5 20:21 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 20:20 | 显示全部楼层
楼上的兄弟,大家讨论问题而已,没必要摆出一副教训人的样子吧
加cache还有一个功能,就是保护数据库,使数据库不暴露在internet中
这种结构好像也是符合MVC吧,数据库是M,cache和c++程序是C,页面显示程序是V
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 20:28 | 显示全部楼层
PS我不是笑嘻嘻豆豆

我不是教训人,搞技术要实事求是,不能不懂装懂误导别人。有关MVC我在前面的帖子又做了解释,你的说法不太正确。另外 人为加cache 和数据库安全也没太大关系,因为cache并不彻底屏蔽访问,只是减低访问次数而已

[ 本帖最后由 笑嘻嘻豆豆 于 2005-11-5 20:32 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 20:57 | 显示全部楼层
不能不懂装懂误导别人

有谁在不懂装懂吗?没觉得
有关MVC我在前面的帖子又做了解释,你的说法不太正确

我的确是不懂这个东西
另外 人为加cache 和数据库安全也没太大关系,因为cache并不彻底屏蔽访问,只是减低访问次数而已

db ----- c++ ----- jsp ------ browser
              |
              |
           cache
我理解他不会再让jsp去直接连数据库

[ 本帖最后由 tadios 于 2005-11-5 21:08 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 23:04 | 显示全部楼层
原帖由 笑嘻嘻豆豆 于 2005-11-5 19:55 发表
Controller 定义对请求的响应或业务的流转 (但并不是业务逻辑本身)
J2EE里一般放在Web层用Servlet 实现。db2及logic processing 怎么可能对应controller 明摆着是业务逻辑加个过滤数据库


呵呵 真有认真的
其实你说的是对的 但你如果聪明或仔细点的话 就知道这个所谓的db2我只是用个so called,就是说根本和实际的数据库或什么其他的都无关
至于是否用servlet做 那其实就无所谓了:lol:
多说一句把
如果是轻量级的应用框架 很多时候 controller就是servlet
如果是复杂应用 controller可能就是session bean
这里面只是有个相对的问题而已

相对于模式层  其实控制层和显示曾的定义界限很多时候相当模糊,...

[ 本帖最后由 wero 于 2005-11-5 23:26 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 23:14 | 显示全部楼层
原帖由 笑嘻嘻豆豆 于 2005-11-5 19:55 发表
Controller 定义对请求的响应或业务的流转 (但并不是业务逻辑本身)
J2EE里一般放在Web层用Servlet 实现。db2及logic processing 怎么可能对应controller 明摆着是业务逻辑加个过滤数据库


呵呵 真有认真的
其实你说的是对的 但你如果聪明或仔细点的话 就知道这个所谓的db2我只是用个so called,就是说根本和实际的数据库或什么其他的都无关
至于是否用servlet做 那其实就无所谓了:lol:
多说一句把
如果是轻量级的应用框架 很多时候 controller就是servlet
如果是复杂应用 controller可能就是session bean
这里面只是有个相对的问题而已

相对于模式层  其实控制层和显示曾的定义界限很多时候相当模糊,...

原帖由 笑嘻嘻豆豆 于 2005-11-5 19:55 发表
先说明我不是笑嘻嘻豆豆,借名发个贴而已。兄弟我项目也做了不少了,看了后来几个"高手"回帖实在有点不知所云的感觉。什么三层结构,MVC全出来了,这扯到那里去了。数据库前再人为加一道Cache可能的原因就是尽量(彻底)避免数据库访问,虽然数据库也有Cache,但数据库连接和网络带宽还是会被占用。高并发的情况还是可能会有问题。这种情况可能会出现在老的以数据为中心的应用中。 ...


另外 其实很多时候 因为客户端的程序不见得一定基于web或者即使基于web但后端数据库和服务器不在同一主机上,所以可以使用delegate尽可能地把对数据访问截止在local  cache.即
对于前者尽量集中在client上 对后者 尽量限制在中间层上 这样可以尽量避免开销昂贵的远程调用


delegate有很多用处 当然可以用做一般的所谓jsp流转,也可以有很多其他用途

以上我说的 希望仔细考虑  理解不了 那是我文笔不好或考虑一下你的资质问题 我也懒的再多解释了 自己查资料或找明白人解释吧

还有 就是做项目就是做项目 老说自己做多少项目什么的云云就有点多余了 项目我不见得比你做的少 而且同样做项目还有个高下之分..哈哈 对不起 其实这里大家也都没有卖弄的意思 其实无非就是顺口说几句而已 如果真要如果要卖弄 还是最好到专业论坛
我呢 以后也注意写清楚一点 不管如何 还是希望以后和你多多讨论

最后一个就是搞技术的人确实要实事求是 但另一方面也要抱着玩的心态 不就是几行程序吗 哈哈
尤其在软件工程上更是 没什么完全绝对的对与不对 各个方案各个模式都在说自己好,和别人的不好... 有的强调自己重用性好 有的说自己封装性好 还有的说自己代码效率好 我个人感觉 刨除完全的傻瓜设计 其实这里只是个平衡的问题 实际中往往优化了一边便牺牲了另外一边 具体取舍 只能看项目要求了

[ 本帖最后由 wero 于 2005-11-6 00:26 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-5 23:19 | 显示全部楼层
原帖由 tadios 于 2005-11-5 20:20 发表
楼上的兄弟,大家讨论问题而已,没必要摆出一副教训人的样子吧
加cache还有一个功能,就是保护数据库,使数据库不暴露在internet中
这种结构好像也是符合MVC吧,数据库是M,cache和c++程序是C,页面显示程序是V

那倒不会 大多数情况下 服务端不会让客户端可以直接调用数据库的 还是主要用来提高性能的

另外 我觉得 一般情况下应该尽量避免jsp有直接连接数据库的代码,这样和数据库之间的偶合性很强 也就完全没有所谓中间间的优势存在 一定要的话 可以使用serlet来进行

其实转来转去还是java, 但我估计 很有可能人家的程序不是用java,而是用.net:lol::lol::lol:

[ 本帖最后由 wero 于 2005-11-5 23:32 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-6 00:56 | 显示全部楼层
PS我不是笑嘻嘻豆豆

楼上几个兄弟先别生气,我不是来捣乱的,也不是来充大牛。技术这东西是拿来解决问题的,不是拿来出风头。你做到什么水平就会说什么样的观点,说实在我看不明白楼上几个兄弟到底想表达什么观点。更多感觉象是把一堆的新名词放在一起唬人。其实那些新名词都是大厂家拿来争地盘的口号。很多东西还只停留在概念阶段现在还没实际意义比如SOA。有的无非旧瓶装新酒,技术早就有了,在重新包装一下那来买钱比如MVC和其他一些设计模式。说到底就两个字,广告。我觉的真正搞技术应该更多关注问题本身,不是追赶潮流。微软2002年就提出.net到现在连它自己都很难说清楚.net到底是什么。我当时也跟着起哄来着,可是呢你门见过有用.net做的大项目吗。它不过把几门不同的语言编译成同样的中间码,运行在微软自己的虚拟机上。但对企业开发需要的重要特性并没提供好的支持。这就是为什么J2EE好找工作的愿因。看的出楼上几兄弟理论的东西是看过不少,但还没真正消化。wero 我猜你就会说用session bean来实现controller。你可以这么做但并不推荐。因为业务逻辑也用session bean,这样会很容易把业务流转控制和业务本身混在一起。其实MVC并不严格对应3层架构。controller到底应放在那里并没被定义。现在渐渐兴起的工作流引擎就是controller的泛化实现。你只关定义工作流程,不用自己编码。放在那一层还是没定义,不过作为类库放在那里也不会和你的业务代码混在一起,就提高了你代码的清晰度降低了耦合度
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-11-6 08:09 | 显示全部楼层
原帖由 笑嘻嘻豆豆 于 2005-11-6 00:56 发表
微软2002年就提出.net到现在连它自己都很难说清楚.net到底是什么。我当时也跟着起哄来着,可是呢你门见过有用.net做的大项目吗。它不过把几门不同的语言编译成同样的中间码,运行在微软自己的虚拟机上。但对企业开发需要的重要特性并没提供好的支持。这就是为什么J2EE好找工作的愿因。看的出楼上几兄弟理论的东西是看过不少,但还没真正消化。wero 我猜你就会说用session bean来实现controller。你可以这么做但并不推荐。因为业务逻辑也用session bean,这样会很容易把业务流转控制和业务本身混在一起。其实MVC并不严格对应3层架构。controller到底应放在那里并没被定义。现在渐渐兴起的工作流引擎就是controller的泛化实现。你只关定义工作流程,不用自己编码。放在那一层还是没定义,不过作为类库放在那里也不会和你的业务代码混在一起,就提高了你代码的清晰度降低了耦合度  

呵呵 好 那咱们好好讨论讨论
关于.NET
MS的东西并不象你想的那么差, 当然在企业应用上java占了上风 这也是因为前几年java普及的功劳, 因为要完全使用.net要推倒重来 而使用j2ee只是需要重构就可以 另外MS服务器我个人感觉确实不太稳定, 这其实是.net最大的问题  

其实仔细对比技术,除了中间件服务器外(而这个j2ee功劳其实归功于象weblogic等公司) .net该具备的一样也不比j2ee少(DCOM对EJB,ASP对JSP和servlet,ASDI对JNDI,ADO对jdbc等等) 而且由于所有的技术来自同一公司,前后概念,搭配的相当完整, 而对MS 这个情况也正在改变,并且在web services表现得好的多

如果你是两种技术的使用者 就知道MS的技术开发效率的优点不是现在java能比的 至少对初学者来讲,而且对webservices的支持也比较好,我有个同学就是.net的坚决支持者,原因就是好学好用,当然我劝他没事情也研究研究java:lol:

当然缺点也很明显 就不多说了 打字累

至于说为什么我感觉人家使用.net, 这我只能说是乱猜 ,因为.net的语言互操作性的良好 毕竟用java去外部调用c可不是什么漂亮的事情 而用.net 就显的很自然而然


关于MVC
同意你说的大部分,但好象我并没说一定要把session bean做所谓的controller,只是打个比方而已,因为mvc其实现在大部分情况下大家在前端使用一些比较成熟如struts这样的框架来完成,而这些框架是不直接支持ejb的存在的
你仔细看前面的帖子就知道 其实 我开始一点也没想把dispatcher,或front controller什么的j2ee的概念卷进来, mvc就是mvc,说复杂了对问题理解一点也没好处
mvc本身概念的出现远早于j2ee的出现, 比如visual c 里的doc /view结构,其实本身虽然没有把model和controller完全分开,但内部也提供了对model本身持久可序列化的方法并与显示层完全脱离
当然现在更多的人对mvc的概念是从java模式中来的,
所以请不要把mvc往j2ee里扯,而且我也无意在这里空泛讨论什么模式



关于本人的经验

先说明 我不是j2ee的专家,因为我工作的内容是偏实时嵌入应用系统偏的厉害 工作中更多的是使用MS的工具和单片机
j2ee方面的经验也不过是在3年前做了一个毕业设计, 在1年半前参加做了一个类似open source的项目,其中这两项中有很多是关于架构的工作
当然java中非架够的coding活,我零七睡八的经验相当多,因为我读DIPLOM期间就一直在各种大小公司里以做各种大小java方面的项目来养活自己...:lol:

最后说一下感觉
1 首先别轻易攻击别人 其实谁都不比谁真傻:lol:
2 多抱学习态度 要知道 即使自己实践中使用过的东西 也不一定就完全合理
3 还有一点就是多熟悉几项技术,不管是从解决方案到业务实现本身,那样 人的眼界会宽很多
4肯定还有不详尽清楚的地方 但我也就不多写了 回帖子尤其写这种普及性教育的帖子 发现写起来真的太累  很多时候很象鸡鸭对话 取文断义在打文字架 哈哈

:lol::lol:$惨啊$$惨啊$

[ 本帖最后由 wero 于 2005-11-6 09:54 编辑 ]
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+1, 2025-2-12 06:21 , Processed in 0.084621 second(s), 15 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表