模块划分--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级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...
随机推荐
- wireshark 使用技巧
Wireshark使用技巧-GeoIP显示IP地理位置 在使用Wireshark时,有的时候需要知道抓取的报文中某个IP地址的具体地理位置,笨一点的方法是将IP地址复制,然后通过一些软件或 ...
- Fiddler 教程 转自小坦克
-- 此文章是转载小坦克的;直接复制文章的目的是因为原文章地址经常被重置,找不到原来的文章.小坦克博客园主页:https://home.cnblogs.com/u/TankXiao/ 目录 Fiddl ...
- 关于WebAPI安全认证的问题
之前项目遇到了一个对外提供API的问题,有些粗浅的想法,抽空记录下. 以下所讨论的都是要解决:谁有资格调用这个API的问题(谁有权限进行这个操作的问题) 为了简化思路,就拿一个查看Java班级的学生举 ...
- 用Date.ToString()输出中英文月份
DateTime.Now.ToString("dddd,dd MMMM,yyyy")//输出 星期三,30 一月,2008DateTime.Now.ToString(" ...
- MountService初探
MountService作为Vold的客户端,会接收来自vold的消息,并且内部定义保存了各种Volume相关的状态定义: 1.VolumeState class VolumeState { publ ...
- ural1316 Electronic Auction
Electronic Auction Time limit: 0.5 secondMemory limit: 64 MB There is a deficit in cast-iron pigs in ...
- Cocos2d-x V2.x -- 开发进阶和高级实例教程(一) 转
第一章 如何在多平台新建Cocos2d-x项目 yangyong2014-06-25 15:04:44848 次阅读 原文链接: http://cn.cocos2d-x.org/tutorial/ ...
- PAT (Advanced Level) 1012. The Best Rank (25)
简单排序题. 注意:分数相同的人排名相同. #include<iostream> #include<cstring> #include<cmath> #includ ...
- DEDECMS模板中dede标签使用php和if判断语句的方法
先来看看下面这个标签{dede:field.tong_gg php=yes}if(@me==""||empty(@me))@me="<p>无</p> ...
- LVS详解
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...