有时候一些奇怪的想法会忽然出如今脑海中,那一瞬间仿佛有所领悟git
本篇中所分析的全部内容都是以中小型项目为前提的,iOS,Android,Server这3端开发人数不超过20人。因为我自己是作iOS的,所以,会从一个iOS开发者的角度来剖析问题。不必定百分百正确。程序员
产品经理已经设计了app的大部分功能,一些交互上的细节确定不可能彻底设计出来。每每这些被忽略的交互设计会在程序员编码过程当中,形成很大一部分时间的浪费。github
所以,须要有一个方案上的设计,这个设计的主要目的就是处理项目中产品方面的临时变动。网络
在真实开发中,最常常出现的一个场景就是遇到这访问的问题去问产品,产品当时记住了,可能过段时间就忘了。这些产品方面的问题最少哟通知到跟该项目开发相关的全部人,若是到了测试阶段,还须要修改交互设计,那么上述的设计就是有问题的。架构
产品设计是开发前期最重要的一个环节,假定咱们已经有了一个良好的设计,那么接下来,须要让项目开发的相关人员对必须对产品有一个清楚的了解。app
仍是那句话,在这个阶段,让开发人员把问题精确到每个if上,确定不现实,但经过你们的头脑风暴后,大部分隐藏的问题和冲突都能被发现。框架
对于app界面的设计人员,须要制定一套统一的设计方案,方案中应该包含总体设计的风格,统计出有多少须要设计的界面。后续的分工会在任务分解中给出解释。测试
后台开发应该和移动端开发共同制定一份数据交互规则。优化
说点题外话,我一直以为不论是写后台仍是移动端,总体框架的良好设计可以给程序带来巨大好处。每一个人写代码的风格千差万别,有的时候同一份数据须要建立好几个模型,这几个模型大部分的属性都是相同的,想一想,这对于开发和代码优化会带来多大的阻力。编码
我我的认为,若是后台开发,以模型为单位组织数据,会给移动端开发带来极大的便利性。最好有一我的可以专门维护一个属性池,你们全部的属性都在这个池子里获取,从而就可以避免各类冲突了。
简单说说iOS端的设计,基本的文件目录结构的设计,我们就不提了,这都是最最基本的要求。网络层的设计也不提,每一个公司都会有这方面的封装库。咱们首先来探讨下模型的设计:
最单纯的模型就是用来存储数据和提供数据的。若是控制器中的逻辑很复杂,最好写一个处理控制器与数据模型逻辑的管理类,数据的处理全都封装在这个管理类之中,控制器拿处处理好的处理,去轻松的完成他的任务。上边的管理类是一个核心思想,相信有经验的开发者应该明白。
对于存储的设计应该有一个统一的类去管理,数据的持久化不该该随随便便的散落在代码中的各个角落。这个管理类负责了数据存储的读取和写入,以及稳定性的考验。
除了网络,模型,存储,就剩下控件的设计了,控件的设计就一句话,把你写的每个控件都当作一个小的组件来写。每个控件都不该该是仅仅基于当前的一个小的需求考虑的,最起码从其余开发人员也会使用这个角度去考虑问题。
在真实开发中,我发现一个小小的问题,即便组件的接口写的很简单,别人也不必定会用,所以,这些组件应该须要一份文档来描述它的使用方法,一个很好的例子就是github。
上边描述的种种都是基于理论方面的内容,须要在开发中慢慢体会。
任务分解一样是一份颇有技术含量的活,对于一个大型的建筑项目,中小app的开发真的不算什么。
根据每一个人的我的能力,把不一样的模块,不一样的功能指定给合适的开发人员。
我我的认为可以处理好上述的问题的人选必定是架构师,一个良好的设计,一个高度可维护的设计都应该是架构师必备的技能包。
但我认为,在开发中让全部的人的技术提升是一件很难的事情,正是因为技术水平的不同,才产生了开发中的各类障碍,这里就很少说了。
经过这个项目,我我的获得的领悟就是设计很是重要。