实现流水化开发,需要使用“模块划分”的程序开发方式。如此,团队里的每个人负责某项\某几项特定的技术领域,在特定的技术领域更加专业。这样,每个人的效率更高。在专业的技能更熟练,更深入,也会提高队员的成就感。队员之间互相分享技术,还可以增加知识的涉及面。虽然,看似每个人只负责一个领域的功能,但是,通过共享知识,大家都掌握了更多、更深的知识。这一切,需要”模块划分“。

  模块划分怎么分?在APP的开发领域,原来的划分是分为MVC,即Model、View、Controller。Model负责业务逻辑、处理数据源和数据模型,View负责界面的布局,Controller负责交互和部分业务逻辑。但是我们实际开发的时候会发现,Controller往往还要负责界面的工作,用代码实现界面的布局。即使不使用代码来实现布局。Controller也往往负责了大多的业务逻辑。这就造成了程序的难以维护和升级,往往后续的工作要推倒重来,别人更是难以接手。

  就如同工厂有10个人,每一个人都独立生产一辆汽车。每个零件都自己来做,有些零件是多个零件焊接到一起,模子只能用这么一次,再造新的汽车需要一切重来。每个人的设计理念和零件的尺寸、性能都不一样。各个模块之间的稳定性、差异性都很大。这根本不是一个团队,也不是高效的工作方式。实际上,汽车的零件都是各个供应商分别生产的,都按照统一的协议进行,生产的东西就能组合到一起,每个供应商在各个领域都会越来越精。

  同理,APP开发也是这样。我们看到,往往很多软件开发团队会拖延工期。究其原因,五花八门。但是这种开发模式的混乱,往往是最根本的原因。每个人负责一个子系统的上下游所有功能的实现。比如开发一个人员列表子系统,从界面编码到交互设计;从网络请求到接口调试;从按钮样式到动画效果。几乎每个人都完成了一套系统,看似是划分成了”模块“,没人独立完成一个”模块“,实际上,每个系统都是”一辆汽车“。更为可笑的是,每个系统的样式、交互方式都会不同,甚至同一功能使用的类库都不一样。实现同样的功能,可以用了不同的类库;同样的类库,可能引用了不同的版本。这即浪费了资源、降低了效率,又导致程序的难以维护,错误百出。如果这样开发,不造成工期的延误是很困难的。何况,以后的开发不能引用以前的成果。真是痛心疾首,亲者痛、仇者快。

模块划分--MVVM指南(课程学习)的更多相关文章

  1. MVVM指南(课程学习)

    iOS MVVM 参考 iOS MVVM 前世今生 iOS MVVM 优缺点 下面是我对MVVM知识的总结,主要包括模块划分.开发步骤.重点解说三部分.做这篇文章,主要是考虑总结出可执行的开发步骤,按 ...

  2. 用c写的简单的日历(学习模块划分)

    简单日历 ​ 主要目的是学习函数模块划分,成品大概是这样,加了一些花里胡哨的东西(/▽\) ​ 分三个模块,主函数.c 显示.c 计算.c 与.h 文件 有两种实现方式,区别在于是否以数组在模块之间传 ...

  3. 201671010417 金振兴 实验十四 团队项目评审&课程学习总结

    项目 内容 软件工程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/sunmiaokun/p/11095027.ht ...

  4. 201671030108后新莉+实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 代老师博客主页 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 (1)掌握软件项目评审会流程:(2)温故知新自己的所得:(3)反思总 ...

  5. 201671010447 杨露露 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...

  6. 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 团队名称 快活帮 作业学习目标 (1)掌握软 ...

  7. 201671010456-张琼 实验十四 团队项目评审&课程学习总结

    博文简要信息表 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu- ...

  8. 201671010402-陈靖 实验十四 团队项目评审&课程学习总结

    项目 内容 任课教师博客主页链接 https://www.cnblogs.com/nwnu-daizh/ 作业要求链接地址 https://www.cnblogs.com/nwnu-daizh/p/1 ...

  9. 201671030128周琳 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...

随机推荐

  1. 在数据库里面有这么一个表:用m代表男,用f代表女,现在我要输出格式为中文的:男和女,sql语句该怎么写

    在数据库里面有这么一个表:用m代表男,用f代表女,现在我要输出格式为中文的:男和女, sql语句该怎么写 select  case sex when 'm' then '男' else '女'   a ...

  2. docker入门实战笔记

    1.什么是docker: docker翻译为搬运工,在这里应该可以理解为搬运应用的工具,也就是云.先了解其运用场景之后更容易对他形成深刻理解. Docker提供了一种可移植的配置标准化机制,允许你一致 ...

  3. 基于Nginx的Rtmp流媒体服务器环境搭建

    一.编译安装 wget http://nginx.org/download/nginx-1.4.2.tar.gz wget https://github.com/arut/nginx-rtmp-mod ...

  4. 首页布局时div的宽度设置要注意

  5. how to enable #ifdef macro in the command line of make?

    Compilers normally use the -D flags eg Code: test.o: test.cpp $(CC) $(CFLAGS) -DTEST1 test.cpp -o $@

  6. openstack创建实例测试步骤

    source admin-openrc.shkeystone user-create --name=demo --pass=123456keystone tenant-create --name=de ...

  7. C#代码发送邮件

    本次测试的邮箱为163邮箱 1.首相对邮箱进行一些设置(详见下图):打开设置选取客户端授权密码项,开启设置:以后在客户端登录时将使用刚刚设置的密码! 2.上干货 public static void ...

  8. WEB网页输入框的默认键盘类型控制

    参考资料 http://www.w3school.com.cn/html5/att_input_type.asp : 语法 <input type="value"> 属 ...

  9. 在nltk中调用stanfordparser处理中文

    出现unicode decode error 解决办法是修改nltk包internals.py的java()下增加cmd的参数,cmd = ["-Dfile.encoding=UTF-8&q ...

  10. 高效判断奇偶性,利用位运算符&

    这种位运算判断奇偶性,在程序和数据库里面都是可以用的 public static bool isOdd(i) { return (i&1)!=0 } 最小奇数是:1   最小偶数是:0   所 ...