尴尬的遭遇
自己从内心觉得对项目分层是一种非常好的思想,于是便在网络中寻找有关iOS项目分层的资料. 无奈,网络中关于iOS的项目架构资料非常少(最后证明我大方向走错了了,架构应该是独立于平台的,所以"iOS"的架构资料是找不到的),就算有几篇博文,也是自己琢磨出来的野路子.(个人思想比较保守,不够权威的东西不能让我信服,而事实上,每个人都能看到那些博文是有过度设计的问题的)
后来尝试在 code4app群里讨论这个问题,结果群里几个发言活跃的群友对这个架构问题"免讨论"
然后在 "跟MJ完虐iOS3.0"这个群中,更是遭到了红果果的嘲笑:MVC就够了,还分什么层?
并无刻意谈论群友,只是想拿事实举例:现在相当一部分开发者,对架构和分层这个东西认知不足.然后, 自己深知分层的好处,虽然有些灰心,但不至于放弃.最终,发现了Martin Fowler写的 <<企业应用架构模式>>一书,顿觉豁然开朗.
对于移动设备来说,分层是否有必要?
我最早是做java的,接触到的项目比较大,会有架构设计. 那么转到移动,就会考虑,移动是否也真的需要架构设计
只要是软件,就会有需求的变更,那么分层就显得非常有必要了. 即,我们需要为自己的软件留一条"后路",解耦合,让其可扩展.
低耦合企业级系统架构涉及及移动平台的分层架构设计
从大方面来讲,架构是必要的,关键是怎么去执行.
一个系统,采用什么样子的结构,有哪些组件,组件之间什么关系,和环境之间有什么关系,这都是设计架构(或者分层)需要考虑的问题.
目的都是为了建立低耦合的企业级应用系统,低耦合的系统的好处是细化开发较色,提高开发效率,提高扩展性
需求是经常变化的,导致了系统不能满足需求变化的需求,因为是强耦合的,模块与模块之间,类和类之间.
低耦合的好处太多了
- 可扩展性强
- 效率高
- 适应用户需求的变化
这样我们系统维护工作就少,就是比较灵活
什么是企业级系统
这个问题在我的架构的基本概念和演化-博客园(或者csdn的架构的概念和最基本的三层架构-iOS企业应用架构设计)一文中讨论过,但是这里还是有必要再提一下:
系统比较庞大,涉及到前端,后台(数据库,中间件,实际的设备)
现在的 java .net 都是可以构建企业级系统的.
设计的注意点
设计一定要考虑的非常周到,这样就存在一个文件,需要降低耦合度.分层,每层里面合理的运用设计模式 这就是:架构设计和设计模式
每层之间的东西必须是具有类似功能的类和子系统的集合.
可以分四层,五层,甚至一层,二层. 每种分法必须要有自己的道理.
比如你的房子,要开个窗户,结果就塌了,就这说明是不合理的设计
此文中很多想法和灵感源自关东升老师的一节视频,视频在 51cto可以搜索到,但是付费的,本人只是学习了免费的第一节的内容,便觉得受益匪浅,更是在尝试寻求老师分层不合理性的时候,发现了
Martin的<<企业应用架构设计>>
一书,开始了更远的探究.在此感谢老师. ---我