MVVM代码重构规范

为了便于MVVM重构后代码维护方便,特制定以下规范:

一、职责:

VC(即ViewController)的职责:

1)处理页面布局以及页面的生命周期(viewDidLoad,ViewWillAppear等)

2)响应页面上的所有交互,包括按钮点击、手势等

3)监听VM中数据的变化,订阅信号,根据信号的内容来作出相应的变化。

4)管理与页面相关VM的创建和销毁

VM(即ViewModel)的职责:

1)处理网络请求、读写本地缓存,以及这些操作相应的视图逻辑(包括提示框、页面跳转等)的信号输入

2)保存视图展现所需的数据,包括在VC初始化时需要的数据

3)处理不依赖于页面的其他逻辑(比如保存登录过的用户名)

二、创建VM的一些规则:

1)一种类型的业务只创建一个VM

2)一个页面对应多种业务的,可以创建多个VM

3)划分的粒度要尽量细,做到相似的业务逻辑可使用同一个VM。可以按照网络接口来划分。(如QMLoginVM)

三、VC与VM的通信方式:

通过ReactiveCocoa 的信号进行挂接

1) 网络请求统一用RACSignal处理,在signal的block中执行请求,收到响应后再发送next信号,传递status给VC。status不用保存在VM中。

2)VC中订阅signal,根据next信号的status值,来进行相应的操作。

3)提示框的显示或关闭、按钮的enable状态等可以单独使用RACSubject信号来处理, 由VM中输入信号,VC中订阅。

4)对于tableView所需的数据,统一在VM中保存数据,VC中通过RACObserve或者KVO进行监听。

四、block与delegate

网络框架同时支持block和delegate两种方式,开发时按模块来区分,如果之前的代码是用delegate,就继续用delegate,反之亦然;如果是新开发的模块,则按自己的偏好来选择。

时间: 2024-10-20 21:01:05

MVVM代码重构规范的相关文章

代码重构规范

1. 修改变量命名方式,简化变量名.数据对象的定义,见名知意2. 将现有的数据处理中的共用的字段数据赋值操作改成公共的3. 页面内具有相同操作方法和业务逻辑的代码提取出公共的方法,提高代码复用性,降低代码量4. js方法拆分,每个函数方法里面不要涉及过多的业务逻辑处理,优化代码写法,减少代码行数,降低代码复杂度5. 模块化拆分,以workload 为例,将应用创建.编辑的代码按照每个折叠面板划分.将其拆成单独的子模块,即组件化6. 收集整理 PaaS 项目下各个功能模块的差异点,以表单校验为例,

编码规范和代码重构的一些建议

首先推荐两个工具,一个是Resharper 一个是dotcover 代码应在注释较少的前提下能让别人读的懂,而不是只能让机器读的懂 如果自己都觉得自己写的代码丑,那么请您重构 尽可能的避免重复代码 必要的时候可以使用静态变量来保存查询出来的数据,建议将静态变量设置为只读的并且私有的,通过只读属性来访问它 区别对待静态变量和静态属性 静态属性中直接调用方法,不会带来性能的提升,而静态变量可以 谨慎使用可读的.非私有的静态变量或属性 代码的暴露程度尽可能的低(能用internal不用protecte

CSS代码重构

CSS代码重构的目的 我们写CSS代码时,不仅仅只是完成页面设计的效果,还应该让CSS代码易于管理,维护.我们对CSS代码重构主要有两个目的:1.提高代码性能2.提高代码的可维护性 提高代码性能 提高CSS代码性能主要有两个点:1.提高页面的加载性能提高页面的加载性能,简单说就是减小CSS文件的大小,提高页面的加载速度,尽可以的利用http缓存2.提高CSS代码性能不同的CSS代码,浏览器对其解析的速度也是不一样的,如何提高浏览器解析CSS代码的速度也是我们要考虑的 提高代码的可维护性 提高CS

CSS代码重构与优化之路

写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如果没有及时对CSS代码进行维护,CSS代码不断会越来越多.CSS代码交错复杂,像一张庞大的蜘蛛网分布在网站的各个位置,你不知道修改这行代码会有什么影响,所以如果有修改或增加新功能时,开发人员往往不敢去删除旧的冗余的代码,而保险地增加新代码,最终的坏处就是项目中的CSS会越来越多,最终陷入无底洞. CSS代码重构的目的 我们写CSS代码时,不仅仅只是完成页面设计的效果,还应该让CSS代码易于管理,维护.我们对CSS

我的代码重构经验

说明 本文在<MDU某产品OMCI模块代码质量现状分析>一文的基础上,分享作者对该模块进行重构时的实践经验. 具体的重构手段可参考<代码大全2>或<重构:改善既有代码的设计>,本文不再班门弄斧,而侧重重构时一些粗浅的“方法论”,旨在提高重构效率. 作者未采用重量级的重构工具,仅用到Source Insight的”Smart Rename”功能.也未使用CUnit等单元测试工具,而是通过在线调测和自动化测试保证代码的正确性. 一 背景 MDU系列产品从他处接手,OMCI模

HTML和CSS的代码编写规范

在很多开发人员眼里,编码HTML简直容易极了,编写CSS不但简单有时还会显得很繁琐-相同的属性得一个劲不停地写.为此,曾经自己也迷惑过也遇到过不少问题,但随着写&读的前端代码渐渐增多,慢慢体会到,“能写”和“会写”之间还是有一定距离的.很多时候,你可以“这样做”,但并不意味着“你应该”这么做. 合理地编写HTML和CSS,可以让代码看起来更专业.即便是很简单的几行代码,也要写的有性格.嗯~用饱含工匠精神的态度去写码,你一定会在苦逼中作乐的. 以下整理些从别人那读到学到的,同时自己认可的琐碎的点,

记录一次代码重构的思路(初稿)

本次重构,需要注意: 1.代码的规范,详细的注释 主要集中 在方法和类的描叙 2.目录结构的合理,包名的设计 首先目录的设计: 1.activitiy的目录 (所有的界面) 2.serverice目录 (后台的服务) 3.通用的目录 (通用的方法与常量:譬如时间,字符串操作,定义常量) 4.数据库 目录 (sqlite的方法) 5.网络通信目录(上传数据与更新软件的) 6.文件目录(文件操作的目录) 7.参数配置目录 (配置xml的方法) 最终设计的结果: 文件目录与参赛配置,都放到tools中

编写灵活、稳定、高质量的前端代码的规范一(推荐收藏)

编写灵活.稳定.高质量的HTML代码的规范 虽然现在前端很多都已经成为SPA(单页面应用)开发,或许连渲染的html都是自动生成的.但是归根结底,还是html和css,必要时候我们还是需要好好了解这些基础的开发规范 当然这都是基础性的规范,和公司规范的并不冲突.你也可以当作课外知识阅读- 一.唯一定律 无论有多少人共同参与同一项目,一定要确保每一行代码都像是唯一个人编写的. 二.HTML 2.1 语法 用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法. 嵌套元

编写灵活、稳定、高质量的HTML代码的规范

一.唯一定律 无论有多少人共同参与同一项目,一定要确保每一行代码都像是唯一个人编写的. 二.HTML 2.1 语法 (1)用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法. (2)嵌套元素应当缩进一次(即两个空格). (3)对于属性的定义,确保全部使用双引号,绝不要使用单引号. (4)不要在自闭合(self-closing)元素的尾部添加斜线 -- HTML5 规范中明确说明这是可选的. (5)不要省略可选的结束标签(closing tag)(例如,</li>