一、什么是架构,架构主要考虑什么事情
1、架构(software architecture): 架构是一些列相关的抽象模式,用于指导大型软件系统各个方面的设计。多数架构师会从直接上来认识他,但要给出精确的定义却很难。
2、app架构主要考虑的事情:
(1) 网络层: 如何让开发人员方便安全调用网络API,而且在各种网络环境下都能有良好的体验。
(2)页面展示: 页面如何组织,尽可能降低业务逻辑的耦合度,提高开发效率
(3)数据持久化: 当数据涉及到本地存取的时候,如何降低性能消耗(主要涉及到缓存)
(4)动态部署方案: ios应用有审核周期,如何能通过不发版本的方式展示新的内容给用户,如何紧急修复bug。
……
其实对于ios客户端应用的架构来说,复杂度不亚于服务端。但是侧重点和入手点跟服务端不一样而已。例如: c10k的问题(服务器同同时支持成千上万客户端的问题),正常的app根本就不需要考虑到。

二、架构设计的方法
1、搞清楚要解决哪些问题
你必须清楚你要做什么,业务希望要什么,而不是为了架构而架构,也不是为了体验新技术而去修改架构方案。以前是MVC,最近流行MVVM,如果过去的MVC是个好架构,没有什么特别大的缺陷,就不要推倒搞成MVVM
2、问题分类、模块化
3、搞清楚问题之间的依赖关系
4、推测下一步的可能走向,必要时添加新的模块
5、最重要的一步: 先解决依赖关系中最基础的问题,实现基础模块,然后用基础模块堆叠出整个架构