首页 新闻 会员 周边

请问Web开发中用MVC有哪些好处?

0
悬赏园豆:20 [待解决问题]

好几年前有一个项目是用MVC开发的,那时候我刚刚入行,把前辈们的页面拿来修修改改就完成开发了,给我感觉是前后台代码有点混乱,但是验证什么的很方便。。

 

现在,我重新去看它时,发现优点不是很明显啊,如果说是为了模型、视图和逻辑分开。。那么下边这种做法会不会更好?

 

1、所有为前端提供数据源的方法,统一写成WebAPI,不仅可给web的ajax用,还可以给移动端调用。

 

2、按不同的前端平台,分别写展示界面,如web就纯html+ajax就能搞定了。IOS和Android也直接通过HttpClient之类的去向WebAPI请求数据,这样一来后台的业务逻辑只要写一次,开发和维护都很方便。

 

3、对于Web开发人员,对HTML、CSS、JS、JQ都熟悉,基本不存在学习难度。方便团队成员快速上手。

 

大家觉得这种方法和MVC相比,有什么优缺点?

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2017-02-15 16:55
< >
分享
所有回答(7)
0
1  测试友好性(如果你需要写单元测试的话,MVC会很不错的)

2 可定制性(在MVC中基本上所有的东西都是可以定制的,对于某些定制性要求比较高的工作可以轻易胜任)

3 代码清晰(CodeBehind虽说分离的不错,但是还是有很多人直接在CodeBehind里面写SQL的)

4 轻量级.(没有控件,没有视图状态,没有控件状态,页面加载速度快)

5 对HTML的控制比较深,比如div的id之类的(好吧,ASP.NET WebForm 4.0也加深了控制允许你控制控件生成的html的id)只有对HTML的结构比较清晰才容易写脚本不是.

6 开源.

7 扩展性很强

魏夫人的魏蜀黍 | 园豆:211 (菜鸟二级) | 2017-02-15 17:19
0

服务端渲染 VS 客户端渲染。前后端分离 VS 模块化开发。

 

具体对比要看项目类型,人员配备,需求。

幻天芒 | 园豆:37175 (高人七级) | 2017-02-15 17:21
0

看情况来的。简单说明我们公司

后台:直接mvc

pc:webapi,html+ajax

app h5:webapi(数据) ,nodejs(服务端页面渲染),html+ajax(vue组件模块化)

czd890 | 园豆:14412 (专家六级) | 2017-02-15 17:32
0

好处只有一个:提高开发效率.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-15 17:54
0

视环境、规模、人员等因素而定。

通常来说:

过分简单宁可选择webForm框架;

次之mvc框架;

再次之 api结构。

就几个非重用结构而言,webForm模式往往简单,即便用webForm框架做成api,开发效率也往往快于mvc或者api(实际还是mvc框架)框架。

流水化作业, 规模化作业,当然有分段流水线模版“设备”最好,用webForm当然也可以构建mvc结构,那么需要自行造“框架”,不造——出来的东西那基本上会惨不忍睹。既然有现成的,我们这时选择mvc现成的。

 

花飘水流兮 | 园豆:13560 (专家六级) | 2017-02-16 00:09
0

了解了解SOA,其实设计模式这个东西适合自己就是最好

Jade_K | 园豆:208 (菜鸟二级) | 2017-02-16 09:03
0

1:耦合性低
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
2:重用性高
随着技术的不断进步,需要用越来越多的方式来访问应用程序。MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型,它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。
MVC使开发和维护用户接口的技术含量降低。
3:部署快
使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
4:可维护性高
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
5:有利软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。
缺点:
1:没有明确的定义
完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。
2:不适合小型,中等规模的应用程序
花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
3:增加系统结构和实现的复杂性
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
4:视图与控制器间的过于紧密的连接
视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
5:视图对模型数据的低效率访问
依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
6:一般高级的界面工具或构造器不支持模式
改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,会造成MVC使用的困难。

大黄人 | 园豆:641 (小虾三级) | 2017-02-20 17:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册