模块划分--MVVM指南(课程学习)
实现流水化开发,需要使用“模块划分”的程序开发方式。如此,团队里的每个人负责某项\某几项特定的技术领域,在特定的技术领域更加专业。这样,每个人的效率更高。在专业的技能更熟练,更深入,也会提高队员的成就感。队员之间互相分享技术,还可以增加知识的涉及面。虽然,看似每个人只负责一个领域的功能,但是,通过共享知识,大家都掌握了更多、更深的知识。这一切,需要”模块划分“。
模块划分怎么分?在APP的开发领域,原来的划分是分为MVC,即Model、View、Controller。Model负责业务逻辑、处理数据源和数据模型,View负责界面的布局,Controller负责交互和部分业务逻辑。但是我们实际开发的时候会发现,Controller往往还要负责界面的工作,用代码实现界面的布局。即使不使用代码来实现布局。Controller也往往负责了大多的业务逻辑。这就造成了程序的难以维护和升级,往往后续的工作要推倒重来,别人更是难以接手。
就如同工厂有10个人,每一个人都独立生产一辆汽车。每个零件都自己来做,有些零件是多个零件焊接到一起,模子只能用这么一次,再造新的汽车需要一切重来。每个人的设计理念和零件的尺寸、性能都不一样。各个模块之间的稳定性、差异性都很大。这根本不是一个团队,也不是高效的工作方式。实际上,汽车的零件都是各个供应商分别生产的,都按照统一的协议进行,生产的东西就能组合到一起,每个供应商在各个领域都会越来越精。
同理,APP开发也是这样。我们看到,往往很多软件开发团队会拖延工期。究其原因,五花八门。但是这种开发模式的混乱,往往是最根本的原因。每个人负责一个子系统的上下游所有功能的实现。比如开发一个人员列表子系统,从界面编码到交互设计;从网络请求到接口调试;从按钮样式到动画效果。几乎每个人都完成了一套系统,看似是划分成了”模块“,没人独立完成一个”模块“,实际上,每个系统都是”一辆汽车“。更为可笑的是,每个系统的样式、交互方式都会不同,甚至同一功能使用的类库都不一样。实现同样的功能,可以用了不同的类库;同样的类库,可能引用了不同的版本。这即浪费了资源、降低了效率,又导致程序的难以维护,错误百出。如果这样开发,不造成工期的延误是很困难的。何况,以后的开发不能引用以前的成果。真是痛心疾首,亲者痛、仇者快。
模块划分--MVVM指南(课程学习)的更多相关文章
- MVVM指南(课程学习)
iOS MVVM 参考 iOS MVVM 前世今生 iOS MVVM 优缺点 下面是我对MVVM知识的总结,主要包括模块划分.开发步骤.重点解说三部分.做这篇文章,主要是考虑总结出可执行的开发步骤,按 ...
- 用c写的简单的日历(学习模块划分)
简单日历 主要目的是学习函数模块划分,成品大概是这样,加了一些花里胡哨的东西(/▽\) 分三个模块,主函数.c 显示.c 计算.c 与.h 文件 有两种实现方式,区别在于是否以数组在模块之间传 ...
- 201671010417 金振兴 实验十四 团队项目评审&课程学习总结
项目 内容 软件工程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/sunmiaokun/p/11095027.ht ...
- 201671030108后新莉+实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 代老师博客主页 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 (1)掌握软件项目评审会流程:(2)温故知新自己的所得:(3)反思总 ...
- 201671010447 杨露露 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...
- 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 团队名称 快活帮 作业学习目标 (1)掌握软 ...
- 201671010456-张琼 实验十四 团队项目评审&课程学习总结
博文简要信息表 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu- ...
- 201671010402-陈靖 实验十四 团队项目评审&课程学习总结
项目 内容 任课教师博客主页链接 https://www.cnblogs.com/nwnu-daizh/ 作业要求链接地址 https://www.cnblogs.com/nwnu-daizh/p/1 ...
- 201671030128周琳 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...
随机推荐
- 关于jsp页面 title中文乱码问题的解决方法
我知道了 我jsp饮用了html 是我2个页面都写了Title 然后冲突了 就乱码了 分享给大家
- nullable,kindof,泛型新特性
文章来自: http://blog.csdn.net/majiakun1/article/details/46530245 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后 ...
- (转)多个MapReduce作业相互依赖时,使用JobControl进行管理
原文地址:http://mntms.iteye.com/blog/2086990 要处理复杂关系的数据,一个工程里面绝对不止一个MapReduce作业,当有多个MapReduce作业时, ...
- IE6里面display:inlineblock使得块元素成行排列,没用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- PAT (Advanced Level) 1073. Scientific Notation (20)
简单模拟题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ...
- Qt5:随窗口大小变化背景图片自动缩放的实现
在窗口程序中,当我们改变窗口大小的时候,背景图片通常会岁窗口大小变化而缩放 然而,在我们写的窗口程序中,设置背景图片后,如果缩放大小,会看到背景图片并不会随之缩放, 应为这需要特殊处理,一般常用的方法 ...
- python之路: 基础篇
)或>>> name = ) #按照占位符的顺序):] #下标识从0开始的 wulaoer >>> print name[:] # ...
- Android开发:组播(多播)与广播
近期由于需要编写能够使同一局域网中的Android客户端与PC端进行自动匹配通信功能的程序,学习并试验了JAVA组播与广播的内容,记录一些理解如下: 一.组播(多播) 背景知识:组播使用UDP对一定范 ...
- Inside dependency property
依赖属性的定义,分为3步(以PresentationFramework中的System.Windows.Controls.Button为例) 1. 声明依赖属性 public static read ...
- 仿苹果短信(微信 ,qq)左划弹出菜单
难点: 1.功能的实现,左划.ListView的复用 2.单行显示,多行显示 3.ListView分割线.点击阴影,上下滑动左右滑动无阴影.多点触控改为单点触控 4.融球动画 http://blog. ...