关于框架的一些学习笔记

服务端N层架构体系中

MVC   今天才知道原来传统的MVC中V是可以直接与M交互,M也做了些弱业务处理

MVP  所以至今为止公司用的都是MVP,就是M和V是完全分离的,少了P就相当于两个孤岛,MV交互必须通过P

在服务端N层架构体系中,MVC,MVP等架构思想仅是运用在表示层,而移动端的是应用在整个项目

移动端架构

胖Model包含了部分弱业务逻辑。胖Model要达到的目的是,Controller从胖Model这里拿到数据之后,不用额外做操作或者只要做非常少的操作,就能够将数据直接应用在View上

胖Model要处理弱业务,数据转换等。

瘦Model只负责业务数据的表达,所有业务无论强弱一律扔到Controller。瘦Model要达到的目的是,尽一切可能去编写细粒度Model,然后配套各种helper类或方法来对弱业务做抽象,强业务依旧交给Controller

MVCS  是一种基于瘦model的解决方案,把原本对Model数据存取的这块抽象出来形成store层,尽量减小model层的粒度。

MVVM  实际上是M-VM-C-V VM是从M(胖model)中分出来的,负责数据的加工,加工成view能直接展示的数据,c仅仅是负责配置viewModel和view (所以看上去好像view和model直接交互)

用户的操作产生的数据(输入的文本,选择的行indexPath)要从view传到viewModel,viewModel原是属于model层的,View并不适合直接持有ViewModel,所以要靠ReactiveCocoa传数据过去

不管MVVM也好,MVCS也好,他们的共识都是Controller会随着软件的成长,变很大很难维护很难测试

时间: 2024-10-07 12:05:29

关于框架的一些学习笔记的相关文章

Node.js笔记(0003)---Express框架Router模块学习笔记

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: Map the given param placeholder `name`(s) to the given callbac

Python框架之Django学习笔记(十七)

Django框架之表单(续二) PS:本博客欢迎转发,但请注明博客地址及作者~ 博客地址:http://www.cnblogs.com/voidy/ <.)#)))≦ 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部分了,不过也够我们平时搭个简易的网站或者个人博客什么的.希望通过这一系列的博文,让大家也从中体会到Django框架的魅力所在,如果很不幸,你没有体会到,只能说明我水

python框架之 Tornado 学习笔记(一)

tornado 一个简单的服务器的例子: 首先,我们需要安装 tornado ,安装比较简单: pip  install tornado 测试安装是否成功,可以打开python 终端,输入: import     tornado.httpserver 若无报错,则证明安装成功 接下来就可以写一个简单的服务器了,如下: import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web

Python框架之Django学习笔记(十六)

Django框架之表单(续) 今天简直无力吐槽了,去了香山,结果和网上看到的简直是天壤之别啊,说好的香山的枫树呢?说好的香山的红叶呢?说好的漫山遍野一片红呢?本以为在山上,一口气爬上去,沿路基本都是翠绿的松柏,松柏啊亲,难道我不仅红绿色盲,还是一个松枫不辨星人!更坑爹的是回来的时候,排队等公交等了近三个小时,你说为什么不自驾游?没办法,穷人开不起撒.总之,一句话总结香山之旅: 如果你恨他/她,就让他/她周末去香山吧,如果他/她爱你,就让他/她周末带你去香山吧!恩,闲扯到此为止,虽然挺累,不过学习

Python框架之Django学习笔记(十二)

Django站点管理 十一转眼结束,说好的充电没能顺利开展,反而悠闲的看了电视剧以及去影院看了新上映的<心花路放>.<亲爱的>以及<黄金时代>,说好的劳逸结合现在回首看去,如果睡觉吃饭算是的话,那倒是挺多.是啊,十一过去了,也该收收心,开始准备过年了.啊,不对,准备工作.扯淡到此结束,接下来,开始学习Django的站点管理. 管理界面有一问题: 创建它太繁琐. 当你开发对公众的功能时,网页开发是有趣的,但是创建管理界面通常是千篇一律的. 你必须认证用户,显示并管理表格,

Python框架之Django学习笔记(六)

模板 上篇博文学习了动态视图,但是,视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python 代码之中. 1 def current_datetime(request): 2 now = datetime.datetime.now() 3 html = "<html><body>It is now %s.</body></html>" % now 4 return HttpResponse(html) 尽管这种技术便

Python框架之Django学习笔记(十)

又是一周周末,如约学习Django框架.在上一次,介绍了MVC开发模式以及Django自己的MVT开发模式,此次,就从数据处理层Model谈起. 数据库配置 首先,我们需要做些初始配置:我们需要告诉Django使用什么数据库以及如何连接数据库.假定你已经完成了数据库服务器的安装和激活,并且已经在其中创建了数据库(例如,用 CREATE DATABASE语句). 如果你使用SQLite,不需要这步安装,因为SQLite使用文件系统上的独立文件来存储数据.和前面章节提到的 TEMPLATE_DIRS

Python框架之Django学习笔记(九)

模型 之前,我们用 Django 建造网站的基本途径: 建立视图和 URLConf . 正如我们所阐述的,视图负责处理一些主观逻辑,然后返回响应结果. 作为例子之一,我们的主观逻辑是要计算当前的日期和时间. 在当代 Web 开发中,主观逻辑经常牵涉到与数据库的交互. 数据库驱动网站在后台连接数据库服务器,从中取出一些数据,然后在 Web 页面用漂亮的格式展示这些数据. 这个网站也可能会向访问者提供修改数据库数据的方法. 许多复杂的网站都提供了以上两个功能的某种结合. 例如 Amazon.com

Python框架之Django学习笔记(十一)

话说上次说到数据库的基本访问,而数据库我们主要进行的操作就是CRUD,也即是做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete),俗称:增删改查.废话不多说,学习开始. 插入和更新数据 你已经知道怎么做了: 先使用一些关键参数创建对象实例,如下: 1 >>> p = Publisher(name='Apress', 2 ... address='2855 Telegraph Ave.', 3 ... city='Berk

Python框架之Django学习笔记(五)

第一个Django网页小结 进来的请求转入/hello/. Django通过在ROOT_URLCONF配置来决定根URLconf. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目. 如果找到匹配,将调用相应的视图函数. 视图函数返回一个HttpResponse. Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来. 在url映射到函数部分用到了一些正则表达式的相关知识,在http://www.cnbl