首页 > 编程知识 正文

Web应用架构工程师是干什么的,web应用架构演变

时间:2023-05-06 21:16:10 阅读:220385 作者:2257

前言:博主大三,其实本来学习的是Android移动端开发。近期有幸来到了阿里的菜鸟网络实习,阴差阳错地安排到了Web应用开发。但是我真的是一点都不懂的啊...就是那种连启动tomcat都会想想的那种。到现在已经实习了两周了。学习了很多,很多概念也很是混乱,action,servlet,jsp,javascript,velocity,screen,spring等等。想想就头大。很有必要将所悟沉淀下来。这也是带我的lqddy一直强调的。


一、Web应用的三层架构


下面介绍各个层次的区别:

1.表示层(user interface layer):xsdsn,这个是负责与用户交互的,是用户操作与获取服务的接口。这一层一般由前端和后端的同学一同参与开发。(注意:这里所说的前端对于普通用户来说,他们仍然需要到服务器请求相应的html文档等)。前端负责html、css、javascript这些展示的维度。但是像servlet,action,screen等控制维度的由后端同学开发。

2.业务层(business logic layer):有时候我们也称为service层、逻辑层。这一层是整个Web应用的核心内容,包括我们想要提供给用户的所有服务。比如说用户登录/注册都是一个服务。

3.数据访问层(data access layer):有时候我们也称为DAO层,持久层。这一层是提供给业务层调用的。负责与数据库或是文件等持久存储媒介打交道。


二、Web应用开发各种技术所处的层次

根据上面划分的架构层次,我们容易知道,越上层的东西是越容易变化、越不可控的。因此我们也可以大致有一个推断,就是表示层的技术必然是最变化万千的,业务层次之,数据访问层最次。


1.表示层:如上所说,表示层是变化最多样的。在这一层可以使用到的框架有Struts,Spring MVC框架等等。其实你可能通过Spring MVC这个名称发现了,表示层往往还会用到MVC架构模式进行解耦。按照MVC这种模式对表示层进行划分,我们可以将在这一层面开发的技术做一个大致的划分。

视图层(View):html,javascript,css,velocity,jsp...(前端开发的范畴,事实上这一层还可以进行一层MVC的划分。html是Module,javascript是Controller,css是View,也就是嵌套的MVC架构)

控制层(Controller):控制View的跳转或是调用业务层的功能。action,servlet,screen...

模型(Module):javabean...


2.业务层:Spring,WebX...


3.数据访问层:Hibernate,IBatis(MyBatis)....


三、三层架构和MVC的区别

再来回顾一下三层架构:表示层,业务层,数据访问层。

再来看看MVC的架构:视图层(View),控制层(Controller),模型(Module)

我刻意将可能对上的放在一列,如果说这两者有关系的话。然而,虽然感觉很相似,

三层架构和MVC并没有什么关系!

三层架构和MVC并没有什么关系!

三层架构和MVC并没有什么关系!


在这之前我们先说说什么是模式?

模式其实是一种设计的重用,就是说这种思想(模式)可以应用到不同的场景,甚至是非IT领域。比如说观察者模式,现实中订阅报刊和发布报刊的关系就是一种观察者模式。这里为什么要说模式呢?因为:

MVC事实上是一种架构模式!!!

MVC事实上是一种架构模式!!!

MVC事实上是一种架构模式!!!

也就是说,在许多架构的设计中,MVC都可以发挥其指导意义。但是相反的,我不一定要按照你MVC的模式进行架构设计。而Web应用的三层架构就是不遵循MVC的一种设计。(Spring MVC就用到了MVC设计模式)


我们可以发现,除了视图层和表示层勉强能对上之外,其他的根本对不上。Web应用中没有Controller这个该概念。Web应用中的数据访问层也仅仅是负责访问数据,而不是MVC中的存储模型。


四、总结

我觉得学习就是这样,要学会对知识进行分层,从下往上,下层是最稳定不易变的。只要练好坚实的基础,上层建筑就能搞好了。万变不离其宗!学习的过程中最好能知道自己学习的是处于知识体系中的哪一层,这有助于我们构建知识体系。








版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。