《[我的理解]真正的三层架构》的小结
《我的理解真正的三层架构》的小结
写这个帖子是一个灵感加上一时兴起,没想到占到了头条的一个位置。首先感谢大家的回复,这么多人关心这个话题,这么多的回帖,谢谢大家。
写个小结以回报大家的支持。
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,,