MVC滥用害人不浅

opal 发布于 2016/11/20 07:41
阅读 4K+
收藏 0

一个很简单的功能,硬生生的被拆分成 control, service, dao, model, view

除了view,其他都是同一个人写的

有时view也是同一个人写的

我几分钟能做完并发布的,这些家伙要几天才能做完,还要到下班才能发布,因为工作时间不能停应用,发布程序要停应用。难怪人越来越多,效率越来越差,加班越来越多。

加载中
11
朱__朱
朱__朱

如果项目这辈子都靠你一个人维护,写成屎都没关系.

否则,就要有项目的规范和模式.

1
公孙二狗
公孙二狗

还要到下班才能发布,因为工作时间不能停应用,发布程序要停应用

就这还敢出来乱喷,不知道啥是集群么,不知道 Rolling update 么

不日小鸡
你这无脑喷,无非就是要显示自己技术优越
1
huihuiyule
huihuiyule
只看到眼前的方便,没考虑实际应用环境。小项目随便无所谓,试试大项目,多人合作,后期维护等,当项目一大,一多了 再来说吧· ·
1
螃蟹大叔
螃蟹大叔
你都没搞清楚为什么要用mvc,如果只顾当前的利益只为了加快当前的开发进度,你把代码揉在一起都没事,但是你要考虑到后期的扩展性可维护性你还觉得这样是很浪费时间的吗?但往往互联网项目都要考虑后期的维护、可扩展、模块拆分、重构等等,除非是那种外包项目,写完了就把代码丢给客户了,但自己的项目肯定是需要有良好的架构这样后期的坑才会更少
1
eechen
eechen
MVC的核心思想是分离界面和逻辑.
简单说就是控制器操作模型获得数据后通过一个自定义函数比如render来加载视图.
这样视图就独立出来成为模板,模板内把控制器中整合好的数据按界面要求输出即可.
这样就实现了MVC.

MVC分层大多数情况下都是有好处的,楼主厌恶的其实是Java开发中八股文似的硬性分层.

比如我有一个要提供多个界面的PHP页面:
功能设定
    基本设定 /admin/settings.php?section=setup
    功能选项 /admin/settings.php?section=features
    论坛公告 /admin/settings.php?section=announcements
    电子邮件 /admin/settings.php?section=email
    会员注册 /admin/settings.php?section=registration

settings.php页面经过MVC分层,就会清晰很多,比如:
<?php
if(!defined('APP_ROOT')) define('APP_ROOT', dirname(__FILE__).'/..');
require APP_ROOT.'/include/common.php';
switch($_GET['section']) {
    case 'setup':
        $app['data'] = query(); //逻辑
        echo render('settings/setup.php'); //界面
        break;
    case 'features':
        $app['data'] = query(); //逻辑
        echo render('settings/features.php'); //界面

        //不需要界面的请求返回JSON即可
        //echo json_encode($app['data']);

        //如果这个section界面下有多个表单(多个action)
        //则可以在这里进行switch($_POST['action'])/case.
        break;
}
界面(模板文件):
/admin/views/settings/header.php
/admin/views/settings/setup.php
/admin/views/settings/features.php
/admin/views/settings/footer.php

你也可以把:
/admin/settings.php?section=setup
/admin/settings.php?section=features
拆分为:
/admin/settings/setup.php
/admin/settings/features.php
这样就可以避免在settings.php中switch/case多个页面控制器.
同样符合MVC分层设计.

所以说MVC思想总体来说是好的,某些语言和框架把MVC搞得复杂难懂令人厌烦的锅不应该由MVC来背.

PHP: The Best or Nothing.
乌龟壳
乌龟壳
谁和你说java是硬性分层了?用的人死板这锅语言表示不背。
0
Tuesday
Tuesday

人与人之间要产生工作呀.



0
opal
opal

回复之前,先把内容看清楚

0
百世经纶之傲笑红尘
百世经纶之傲笑红尘
敢问如果你全写在一个.jsp页面里,下次可有做代码维护的勇气???
opal
opal
我有说过 都写在jsp里?
0
kakai
kakai
人与人协作难免有障碍,MVC是简化和明确项目结构的,这也是为了以后方便维护,其实整体比一盘散沙的普通结构的项目是要好的,如果你有足够的能力或者说能让以后接手的人更容易融入项目,你完全可以不用MVC
554330833a
554330833a
@BoXuan 回复@BoXuan : 这样设计比mvc的使用Model好?
kakai
kakai
回复 @554330833a : 在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller
554330833a
554330833a
MVC,MVP有什么区别啊
0
梦想岛
梦想岛
什么叫流程化,可维护性,命名法。如果是做个企业网站就没必要,但是要做一些需要维护的网站,多人工作的,这样的命名大家也去维护,也好知道你在做什么,还可以生成api文档。
返回顶部
顶部