小白请教,“软件开发的三层架构”,这个词来源于哪里?是哪个专业哪门课的内容?

fayeshao 2015-01-06 03:54:47
本人非计算机专业,也工作多年了,
最近才看到“三层架构”这个词,
网上查了下资料,
有了个初步的了解,主要就是分层的意思吧
不过我很纳闷,这个词来源哪里?
是谁先提出来的?
是计算机专业某个课程的书上提到的吗?如果是的话,具体是哪本书或哪类书?
像“线程”这个词,是《操作系统》这门课程里的
“链表”这个词,明显是《数据结构》这门课程里的
那“三层架构”来源于哪里?
我看csdn上相关的讨论主要都在.net这个板块,就把帖子发在这里吧?
另外,.net大家都是自学的吧?计算机或软件工程专业开了这门课了吗?
...全文
562 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongmusic 2017-09-04
  • 打赏
  • 举报
回复
引用 13 楼 github_22161131 的回复:
LZ千万不要以为所谓科班出身就能形成知识体系的框架。我上的大学也是985/211,计算机专业,太多的人根本就没有形成这个东西,甚至就没考虑过,只不过是会考试而已。很多人考试能考很高分,但是连开发环境都不会用,不少老师对他们教授的知识也是缺乏兴趣。不是说学校教的知识没用,只是应试教育的整体背景下,学习的目的被扭曲了。如果自己没有兴趣,那只不过是浪费时间,混个证而已。 如果是自己真的很有兴趣,就找时间把 计算机组成原理、操作系统原理、数据库原理、计算机网络原理、编译原理、数字电路、离散数学、数理逻辑、数据结构与算法 这些基础课程全部认真看一遍。还有计算机方面的英文能力也必不可少。 架构方面的书其实没什么可看的,只是能告诉你要考虑些什么东西,提一些指导性建议。具体的东西情况太多了,不可能在书里一一分析。微软平台上那微软p&p写的Microsoft Application Architecture Guide我觉得就很不错了。我3楼提到的经典的EAA也可以看看。 网站的话可以看看 InfoQ,上面有不少优质的文章,中文版做的也很好。看些业界实际的方案比书更有用。
个人感觉计算机的那些基础课程难度还是很大的,有的课程的书籍看的人一头雾水,特别是编译原理的书籍。
「已注销」 2015-11-17
  • 打赏
  • 举报
回复
是从4层总结出来的
dongmusic 2015-11-13
  • 打赏
  • 举报
回复
引用 14 楼 jxyxhz 的回复:
sp1234还是这么孜孜不倦 csdn是不是付费的 坦白从宽,抗拒割jj
应该不是付费的吧,不过我想版主可能有些什么优惠。
winnowc 2015-01-07
  • 打赏
  • 举报
回复
LZ千万不要以为所谓科班出身就能形成知识体系的框架。我上的大学也是985/211,计算机专业,太多的人根本就没有形成这个东西,甚至就没考虑过,只不过是会考试而已。很多人考试能考很高分,但是连开发环境都不会用,不少老师对他们教授的知识也是缺乏兴趣。不是说学校教的知识没用,只是应试教育的整体背景下,学习的目的被扭曲了。如果自己没有兴趣,那只不过是浪费时间,混个证而已。 如果是自己真的很有兴趣,就找时间把 计算机组成原理、操作系统原理、数据库原理、计算机网络原理、编译原理、数字电路、离散数学、数理逻辑、数据结构与算法 这些基础课程全部认真看一遍。还有计算机方面的英文能力也必不可少。 架构方面的书其实没什么可看的,只是能告诉你要考虑些什么东西,提一些指导性建议。具体的东西情况太多了,不可能在书里一一分析。微软平台上那微软p&p写的Microsoft Application Architecture Guide我觉得就很不错了。我3楼提到的经典的EAA也可以看看。 网站的话可以看看 InfoQ,上面有不少优质的文章,中文版做的也很好。看些业界实际的方案比书更有用。
小_虎 2015-01-07
  • 打赏
  • 举报
回复
sp1234还是这么孜孜不倦 csdn是不是付费的 坦白从宽,抗拒割jj
fayeshao 2015-01-06
  • 打赏
  • 举报
回复
引用 9 楼 sp1234 的回复:
[quote=引用 7 楼 fayeshao 的回复:] [quote=引用 2 楼 q7q7w8jay 的回复:] 是设计模式里的.
网上说,这个是架构模式,而不是设计模式[/quote] 这在软件工程课程中,会随便提及一下。这没有任何技术含量,这就是一个历史过程。[/quote] 感觉不是计算机或软件工程专业的人,在底层编编码还行,往架构方向走,会比较吃力。 计算机或软件工程专业的人,即使在学校的时候没学好,但至少脑海中有了一个知识体系的框架,在工作中想往某个方向发展的话,找到相应的资料研究下思考下,总会比非科班的人轻松很多的
  • 打赏
  • 举报
回复
说“是设计模式里的”,是有一定根据的。它的根据不是GOF的书,你要是对历史有点研究也会发现,在java中有无数抄袭雷人的开源软件是抄袭更早的东西的,借着概念炒作的。而“三层架构”确实就是从java中超做起来的词儿。 java的我们不多说,单说微软平台。在.net中,大概在2004年以后把,微软的一个小项目组为了证明.net跟java在设计web服务程序方面一样有运行效率,模仿人家java里的比较流行的petshop开源小项目而编写了c#的petshop开源项目。从此以后,一众c#程序员开始鼓吹起“三层架构”来了。而这已经被人家java的时髦开源“三层框架”晚了好几年。 我并不是说微软有什么不好,更不是说“三层架构”有什么不好。应该感谢这些努力。毕竟吸引大家关注技术架构,哪怕是非常简单的东西,也是件好事。 但是这不是具体的基础理论,距离经典的课程(例如操作系统、编译系统、数据库原理、硬件体系结构等等)内容的千分之一技术含量都没有,不入软件专业的教材。
fayeshao 2015-01-06
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
这是一个最基础的概念,在任何一个编程课程中都可能提及,就好像你问“加减法是大学哪门课程”, 没有那个课程把这个东西当作一个值得研究的课题。 一般来说,对于程序员入门书,都会提及它。没有什么技术含量,所以很普通,就是一个概念。
加减法虽不是大学课程,但大家都知道它是“数学课”上的概念。 “这是一个最基础的概念,在任何一个编程课程中都可能提及” “一般来说,对于程序员入门书,都会提及它” 这个还真没有,我也看过一些书,编程语言类的、操作系统类的、数据结构类的、设计模式类的、计算机网络类的,从来没见过它的影子。 所以今天才来发问的。 有没有什么课程是将软件架构的?
  • 打赏
  • 举报
回复
引用 7 楼 fayeshao 的回复:
[quote=引用 2 楼 q7q7w8jay 的回复:] 是设计模式里的.
网上说,这个是架构模式,而不是设计模式[/quote] 这在软件工程课程中,会随便提及一下。这没有任何技术含量,这就是一个历史过程。
  • 打赏
  • 举报
回复
比如说你去学给门手艺——在路边给人擦皮鞋,你可能学到的就是用两只手如何擦好皮鞋。用什么工具、什么配方、什么流程才能比别人更好地扬名立万。这就好像你看到的许多专业书籍,交给你的都是技术。 现在,你需要研究如何让20个人的皮鞋在你店里同时擦,而你只雇3名员工,你需要研究用什么招牌、什么经营宗旨、什么员工培训方法、什么样机器设备,什么样的流水作业,等等。这就是另外一门课程。 没有专门学过软件工程课程的人,可能懒得去读20年前的软件工程著作,只知道在网络上捕捉一点最近出现的新鲜字眼。这就好像连擦皮鞋都懒得干了,只想去赚轻松的块钱(例如买彩票),谁还关心擦鞋店呢?
fayeshao 2015-01-06
  • 打赏
  • 举报
回复
引用 2 楼 q7q7w8jay 的回复:
是设计模式里的.
网上说,这个是架构模式,而不是设计模式
  • 打赏
  • 举报
回复
大概在1993年以前,pc机联网已经越来越普遍了(pc机移植了大量原本在小型机上的软件),于是出现了“client-server结构"的说法,基本上大公司(那些服务于跨大洲、大洋、跨省的网络系统)的框架都很自然地慢慢都是“pc机-pc服务器/小型机服务器-小型机数据库/大型机数据库”的网络结构。 实际上今天的系统,远不是20年前的样子了。以前的数据库有几个G就很巨大了,现在则经常可以见到几百pb的数据库。 这其实也是很自然的东西。可是只会做pc机单机软件的人,没有做过复杂的网络系统,想不到需要分开系统进行设计。
jhdxhj 2015-01-06
  • 打赏
  • 举报
回复
是培训机构的砖家提出的,没有任何学校开这门课程
  • 打赏
  • 举报
回复
这是一个最基础的概念,在任何一个编程课程中都可能提及,就好像你问“加减法是大学哪门课程”, 没有那个课程把这个东西当作一个值得研究的课题。 一般来说,对于程序员入门书,都会提及它。没有什么技术含量,所以很普通,就是一个概念。
winnowc 2015-01-06
  • 打赏
  • 举报
回复
按照维基百科,参考http://en.wikipedia.org/wiki/Multitier_architecturehttp://en.wikipedia.org/wiki/Open_Environment_Corporation ,应该是1993年由 John J. Donovan 提出,然后在1995年其它人的一本书里有明确的概念了。 这个东西属于架构模式,三层或n层架构这一篇文章就能讲清楚了,主要靠实践。所以应该不会有课程单独讲它,而是在讲架构的时候会提到。比较经典的架构模式的书是Martin Fowler 的 EAA(企业应用架构模式),微软p&p也写过Layered Application Guidelines .net这个我记得计算机专业是没有的,一些学校的软件专业会讲。不过这个主要还是靠自学,大部分学校/老师都跟不上它的发展,很可能学到的是已经不建议的方式。
q7q7w8jay 2015-01-06
  • 打赏
  • 举报
回复
是设计模式里的.
  • 打赏
  • 举报
回复
不清楚,反正不是我先提出来的

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧