首页 > 技术文章 > 从逻辑解偶到物理解耦再到前后端分离

rentj1 2014-11-13 23:16 原文

 

逻辑解偶:

      MVC是一个表现层的架构模式,它把我们的Web应用划分成模型,视图,控制器三部分。从逻辑上解耦了系统的业务逻辑和表现逻辑。但问题在于MVC的各部分并没有一个严格的定义,去指导我们什么时候使用M什么时候应该使用V,这些判断都取决于我们以往的项目经验,所以对于工作应验不多的人来说要完全理解并且合理应用并不容易,甚至可能还会引入不必要的复杂性。

前后端耦合:

      由于模版文件和静态demo由项目中不同的角色来维护,前端修改demo,需要通知后端去同步模版,相应的模版变更也要通知前端去同步demo。如过两者不同步就会产生问题。另外后端套vm模版需要修改HTML,后端不擅长做这些事情,就比较容易出问题。工作可能会遇到这样的场景,前端同学把静态demo交付给开发,开发拿到demo套后端模版,接着进行前后端联调。联调完成后,一直运行的很好。某天后端同学来过来说界面有问题,经过反复沟通,花费时间排查问题。发现原来是修改vm模版文件的时候HTML标签嵌套错了。

前后端分离:

       开发中分离关注点有助于屏蔽项目的复杂性,降低维护成本。前端和后端的分工协作就是为了更好的实现关注点分离。然而由于vm模版这块职责不清,当前这种协作方式导致前后端耦合较多。通过前后端分离,前端关注界面(视图)和界面交互(控制器)的实现,后端关注业务功能和持久化的实现。后端通过接口的形式提供数据给前端使用,后端不用关心数据怎么显示在那显示。前端不关心数据从哪来的比如数据库,缓存还是其他什么地方,也不关心数据是怎么来的,比如经过了那些复杂的逻辑处理。专业人员做自身擅长的领域,使得项目中表现和业务逻辑的物理解耦,进一步提高了前后端开发人员犯错门的门槛,也可以有效提升项目的可维护性和不同角色之间协作沟通效率。

怎么实施

   如果让前端开发参与到java工程中接手项目中的视图和控制器这个明显不符合实际。 javascript,是每个前端前端工程师的必备技能,有很多成熟的基于nodejs的web mvc开发框架。可以很容的帮我实现控制器和和视图的功能。我认为前端工程师不等于浏览端器工程师,和界面、界面交互相关的技术实现都应该属于前端范畴。

 

 

 

 

和后端约定数据接口面向接口开发,

 

分离关注点:

bui迁移的 vmcommon 的问题就不存在


痛点是是什么,问题。
要不要做一个node web 框架
问题:数据通过http传输会不有性能问题
解决当前的ued kpi(擎天柱)还是前后端分离
我们要做前后端分离吗:
前后端分离,midway



 

推荐阅读