日期:2014-05-19  浏览次数:20452 次

《[我的理解]真正的三层架构》的小结
《我的理解真正的三层架构》的小结

写这个帖子是一个灵感加上一时兴起,没想到占到了头条的一个位置。首先感谢大家的回复,这么多人关心这个话题,这么多的回帖,谢谢大家。

写个小结以回报大家的支持。

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,,