《[我的理解]真正的三层架构》的小结
《我的理解真正的三层架构》的小结
写这个帖子是一个灵感加上一时兴起,没想到占到了头条的一个位置。首先感谢大家的回复,这么多人关心这个话题,这么多的回帖,谢谢大家。
写个小结以回报大家的支持。
1、标题写错了。
不应该使用“真正”二字,现在看来有点骗人的味道了。
2、我没有看懂PetShop,更不是基于这个来写的帖子。帖子的依据是我写过的项目(大部分是网站)。
由于项目比较简单,导致我的得出了一个很有争议的一句话“业务层大多数情况一句话就实现了”。
很多人都是不赞同这句话的。想来大家都在做更复杂的项目吧。
3、回帖人的几种观点
A、基本同意。应该是和我有类似的经历,写过的项目和我说的差不多少,个别的地方不太一样,但是没
有本质的区别,没有原则性的分歧。
B、以前同意。和他的以前的做法基本一致,但是现在他找到了更好的方法。
C、反对的。很多地方都是不占同的。说了一些原因,但是可惜没有说出来自己的做法。大家共同提高,
一起进步嘛,多多交流不好吗?就算是不愿意和我一般见识,但是还有好多看帖子的呢,帮帮他们也行呀
。
这些人因该是做过大项目、复杂的项目,有其自己的理解,可能认为我太幼稚,知道一点就拿出来吹。呵
呵。说出自己的观点,等待板砖,这也是我发帖的一个原因。
D、迷糊的。以前或清楚或迷糊的,看了大家各自的观点后,越发的迷糊了。估计是看了A的观点后,感觉
挺对的,然后又看了看B的观点,恩,也挺对的。但是放在一起看,就矛盾了。自己不知所从。
估计这些人没有太多的经验,自己对三层的理解不是太深,看了各家的观点之后,思维就有一点乱了。
E、随意的。蛋糕怎么切都行,层次根据需求、项目来定,符合要求就行,没有固定的格式。
F、极端的。要么三层,要么就不分层。其实asp.net写的东东,很少有不分层的。入门级的“教科书”上
的例子除外。
G、看了一下,没有sp1234的留言,很期待的。如果他来说上几句的话,一定很经典的。
(说了这么多很是怕怕,害怕说错话了就麻烦了:)。万一说错了,请多多原谅!)
发帖之本来是想把三层说得再细一些,让刚接触三层的能够有一个“细致”一点感觉。
我刚接触三层的时候看到最多的就是一些很概括的东东,比如:
UI层,逻辑层、数据层、低耦合、高内聚、便于维护、扩展好。等等,晕呀,怎么建项目,怎么写代码,
怎么实现这些优点?
到网上搜索三层就是一些“含糊”的说明,比如
我觉得三层架构主要是实现分而治之的思想,把一个程序逐步分解:
第一步:将程序分成表现层和逻辑层。该层不知道商业逻辑是什么,也不需要知道。(只需要知道某页面
需要显示,处理哪些数据,如何显示,处理就行)
表现层:将取得的数据转化为用户可以看到的东西。
逻辑层:实现如何取得数据的逻辑。
有了这个分解后,再把上面的逻辑层进一步分解:
第二步:将第一步中的逻辑层分解成用户业务逻辑层和数据库实现层。
用户业务逻辑层:针对用户业务的流程;该层不知道数据库是个什么样子,也不需要。
数据库实现层:提供用户业务的流程中所需要的数据。(需要知道数据库是个什么样子,逻辑层需要哪些
数据,不需要知道用户的业务流程)
看了之后还是很晕。也许是我太笨吧。
4、我写的这个根本就不是面向对象的思路,我是面向代码(哪些代码放在哪里)、面向数据库(提到了SQL语句、存储过程、视图、表)的。外加面向功能(这里好像没有体现出来,但是我的网站代码就是用的面向功能的思路来写的)。
这么描述可以简单一点吧,“入门”一点。
5、得到了很多的回馈,看到了大家的不同意见,也了解到确实有很多人是这么使用三层结构的。
同时也感谢管理员把帖子放到了头条的位置!
6、我想做一个“开源项目”,通过实例来具体探讨一下怎么来写网站。希望大家能够支持!
这将是一个漫长的计划,我想每天拿出10分钟来写点具体的代码,然后大家一起来讨论一下优缺点,有没有其他的实现方法,以及日后的扩展,升级,维护等问题。
一开始会写一点简单的,比如添加数据了什么的,从基础开始,step by step。
如果顺利的话会写点“复杂”的,比如信息发布、论坛了什么的。
当然需要大家的支持,只有我一个人的话,一定是坚持不了几天的。
从明天开始吧。
希望斑竹支持!:)
[解决办法]
支持,我们需要让软件趋近于完美,虽然达到完美是不现实的
[解决办法]
一定要mark一下
[解决办法]
我顶...
[解决办法]
先占个位置
[解决办法]
呵呵,mark,大家研究
[解决办法]
up
[解决办法]
同样的应用,比如论坛,不同的着重点(安全、效率还是负载)都应该采用不用的构架
[解决办法]
to :LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^)
向您请教一下
能简单的说下,不同着重点的项目 具体的架构那些地方不同呢~
假设您开发一个业务很简单的项目时,会分层么? 又分为那几层呢?
我没有您那么多的项目经验,没涉及过要过多考虑负载的项目,所以想请教您
那样的项目在架构上 和业务简单的项目 有那些区别? 或者说 应该以那个(层)为
侧重点 ? 侧重点具体都做了些什么?
[解决办法]
支持楼主
[解决办法]
感谢大家的支持。代码将在我的blog里面发布。
[解决办法]
mark,,
[解决办法]
学习楼主的方法!
[解决办法]
楼主是个热心人
[解决办法]
up up
[解决办法]
。。。。。。。。。。。。。。。。。。。。。。
[解决办法]
支持楼主!!
[解决办法]
支持楼主
[解决办法]
up
[解决办法]
支持第6点,一直以来,自己的很多思想跟楼主有小些相似.
[解决办法]
呵呵,我没有跟帖,是因为大家辛辛苦苦地研究,其实我觉得很好。而我会得太早,会破坏那个气氛,因为地角度可能已经跳出那个圈子了。
我刚刚在 http://community.csdn.net/Expert/topic/5404/5404374.xml?temp=.6718714 回了一个,请参考。
[解决办法]
再给楼主一点建议:
不要光写代码,要写就写真正OOP的代码.需求分析的过程,设计的类图,序列图都写.
那样锻炼起来的话,就牛了.
ps:我现在的体会就是 三层出现BLL的问题,就是没有 需求分析,面向对象设计 造成的.
不要嫌我繁啊!这是我现在真实的体会.
[解决办法]
学习
[解决办法]
好东西,一定要MARK
感谢楼主..
[解决办法]
严重支持一下~
[解决办法]
三层很简单,不要自己把自己装在自己的套子里。。。。
[解决办法]
收藏贴!学习学习!!
[解决办法]
ok,支持!
[解决办法]
mark
[解决办法]
强烈支持楼主,有爱心的人。
[解决办法]
我建议楼主去看看GRASP原则
[解决办法]
good luck !
[解决办法]
关注加收藏
[解决办法]
mark偶做好像也是三层
[解决办法]
[解决办法]
向lz学习
[解决办法]
mark
[解决办法]
哈哈,这里好多三层的示例源码,愿意与大家一起分享
http://www.51aspx.com/Tags/2/
[解决办法]
楼主是个热心人,关注中
[解决办法]
支持你
[解决办法]
关注
[解决办法]
谈架构前先想想你满足了用户需求没有。
程序有没非常明显bug,运行中有没瓶颈,是否防止了sql注入了的。
架构对了asp.net开发来说太复杂了。原因就是因为界面因素,用asp.net控件是一种架构,不用控件又是另一种架构。
做web开发的,先把用户交互体验做好都不错了,再看看有没其它什么问题,最后你觉得十再没有上升空间了再说架构问题。
我相信这回贴的人99.9%都是搞一般技术的,说穿了也就是做点小mis,小网站。当然我也没搞过很大的东西。
先测试验下你的url传值在id=1后面加个s看看有没黄屏,没黄屏再来说这些。
=========================================
哎!!!!!
[解决办法]
不论成与败,支持一个