ios 移动端架构浅析
2016-01-22 11:27
225 查看
一、什么是架构,架构主要考虑什么事情
1、架构(software architecture): 架构是一些列相关的抽象模式,用于指导大型软件系统各个方面的设计。多数架构师会从直接上来认识他,但要给出精确的定义却很难。
2、app架构主要考虑的事情:
(1) 网络层: 如何让开发人员方便安全调用网络API,而且在各种网络环境下都能有良好的体验。
(2)页面展示: 页面如何组织,尽可能降低业务逻辑的耦合度,提高开发效率
(3)数据持久化: 当数据涉及到本地存取的时候,如何降低性能消耗(主要涉及到缓存)
(4)动态部署方案: ios应用有审核周期,如何能通过不发版本的方式展示新的内容给用户,如何紧急修复bug。
……
其实对于ios客户端应用的架构来说,复杂度不亚于服务端。但是侧重点和入手点跟服务端不一样而已。例如: c10k的问题(服务器同同时支持成千上万客户端的问题),正常的app根本就不需要考虑到。
二、架构设计的方法
1、搞清楚要解决哪些问题
你必须清楚你要做什么,业务希望要什么,而不是为了架构而架构,也不是为了体验新技术而去修改架构方案。以前是MVC,最近流行MVVM,如果过去的MVC是个好架构,没有什么特别大的缺陷,就不要推倒搞成MVVM
2、问题分类、模块化
3、搞清楚问题之间的依赖关系
4、推测下一步的可能走向,必要时添加新的模块
5、最重要的一步: 先解决依赖关系中最基础的问题,实现基础模块,然后用基础模块堆叠出整个架构
三、你接触过架构的东西么?
做过项目的肯定接触过,只是,这个精确度定义都不好说。在ios开发中,最常见的就是mvc模式。其实,在某种意义上来讲,它也算是一种架构。我的理解是,架构无非就是一栋大厦的框架,至于砖怎么砌(代码如何放置,如何最大程度将view和controller解耦),就看程序员了。要不怎么会说,程序员是”搬砖”的。
1、架构(software architecture): 架构是一些列相关的抽象模式,用于指导大型软件系统各个方面的设计。多数架构师会从直接上来认识他,但要给出精确的定义却很难。
2、app架构主要考虑的事情:
(1) 网络层: 如何让开发人员方便安全调用网络API,而且在各种网络环境下都能有良好的体验。
(2)页面展示: 页面如何组织,尽可能降低业务逻辑的耦合度,提高开发效率
(3)数据持久化: 当数据涉及到本地存取的时候,如何降低性能消耗(主要涉及到缓存)
(4)动态部署方案: ios应用有审核周期,如何能通过不发版本的方式展示新的内容给用户,如何紧急修复bug。
……
其实对于ios客户端应用的架构来说,复杂度不亚于服务端。但是侧重点和入手点跟服务端不一样而已。例如: c10k的问题(服务器同同时支持成千上万客户端的问题),正常的app根本就不需要考虑到。
二、架构设计的方法
1、搞清楚要解决哪些问题
你必须清楚你要做什么,业务希望要什么,而不是为了架构而架构,也不是为了体验新技术而去修改架构方案。以前是MVC,最近流行MVVM,如果过去的MVC是个好架构,没有什么特别大的缺陷,就不要推倒搞成MVVM
2、问题分类、模块化
3、搞清楚问题之间的依赖关系
4、推测下一步的可能走向,必要时添加新的模块
5、最重要的一步: 先解决依赖关系中最基础的问题,实现基础模块,然后用基础模块堆叠出整个架构
三、你接触过架构的东西么?
做过项目的肯定接触过,只是,这个精确度定义都不好说。在ios开发中,最常见的就是mvc模式。其实,在某种意义上来讲,它也算是一种架构。我的理解是,架构无非就是一栋大厦的框架,至于砖怎么砌(代码如何放置,如何最大程度将view和controller解耦),就看程序员了。要不怎么会说,程序员是”搬砖”的。
相关文章推荐
- Android APP 增量更新demo
- APK瘦身方案
- Android Studio查看SVN历史记录不能正确显示中文
- IOS图片压缩(修改图片大小)
- Android自定义View-绘制扇形实现圆形进度
- iOS开发常用的第三方资源
- android XML file之ClipDrawable
- Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)
- 友盟分享到微信的几点备忘(IOS)
- 微信开发文档笔记整理(一)
- iOS 熟练使用LLDB,让你debug事半功倍
- 自定义Drawable实现图片的圆角效果
- Cocos2d-x与Android利用JNI相互调用
- Android APP 数据存放目录
- unity中的简单水效果实现
- iOS程序猿之NSdate那些事
- Android自定义带动画圆环进度条
- 如何搭建Office Web Apps Server2013,并在SharePoint2013中集成使用
- iOS字符串转数组,数组转字符串
- 第三方SDK接入--微信