APP开发的技术开发模式是在初期非常重要的一件事情。无论是自己组建的有开发团队,还是找第三方APP开发公司做,在技术形式的选择上都需要有足够的重视。
APP应用架构解析
技术选型实际上是从不同维度对产品进行分解的过程。通过分析,合理分解出各项技术需求,然后对各项技术需求进行综合评估并最终选择合适的框架。
首先,所有产品都可以从架构上大体上划分为几类,具体到每一类都有相似的架构风格,它们通常在各种架构要素的具体要求上有很大的相似性。因此确定产品类型和架构风格有助于我们参照现有的产品来做技术选型,这样可以大大节省技术选型的工作量并降低由于技术选型不合适而带来的后期的开发维护风险。
技术框架的类型很多,不同的类型还有更多的细分。如WEB应用,信息展现类和社交类选型显然是不同的。除此之外,每种产品类型的选型也会存在重叠,如RCP和RIA应用,尽管UI层的选型完全不同,但是并不妨碍两者后端选型的相似性,如两者都是数据展现及交互复杂的企业应用。
总之,产品类型就如程序设计上的设计模式一样,便于我们快速将产品分解为几个重要的架构要素并且对应到其常见的解决方案,为我们的技术选型工作发挥很大的指导作用。
其次,架构分层可以帮助我们以“分而治之”的思路来进行技术选型。这既包括“逻辑分层”,也包括“物理分层”。逻辑分层使得我们将技术选型分为展现层选型、业务层选型、持久层选型以及数据资源层选型等,然后我们再按步完成选型工作,每一步除了要考虑其对应的架构要素外,还要考虑上下层的集成方案。如方案的复杂度、健壮性、性能等。而“物理分层”则确定了各层之间的通信框架选型,同样我们需要考虑通信的性能、安全性、有效性等。
最后,无论是产品类型还是架构分层,这两者的结合都是便于我们将技术架构选型进行合理的分解,将关注点充分聚焦,从而在各框架间做有效取舍。但是除了各项技术要素及指标外,还有很重要的一方面对技术选型有非常大的影响,那就是学习成本、社区活跃度和技术成熟度。
对于两个技术框架的各项技术指标相近的情况,我们自然要选择学习成本更低、社区活跃度更高以及技术成熟度更高的一个。
对于一些新出现的框架,虽然理念非常好、社区非常活跃,但是其框架可能并不够健壮,需要更多的时间在生产环境中去完善。此时纵使其有更好的性能等的表现,我们也要审慎的来选择,或者在一些非核心的模块局部进行引入试验,或者不引入该框架,而是合理设计系统的集成方案,以便在其足够完善时能够轻易的进行框架迁移替换。
换句话说,当我们认为一款新框架有足够好的性能、可扩展性、可伸缩性时,我们更需要冷静的考虑以下它是否足够健壮,它的这些特性是否是我们所必须的。有时候你会发现,它很快、很灵活,但是却并不是你必须要拥有的,你引入它带来的系统质量的提升远远抵消不了因为维护它增加的成本。
选择一款适合你设计的APP开发技术框架,而不需要对各个项目架构要素都进行极限的追求。这也就是为什么现在技术虽然不断在更新,而很多年都还能继续保持旺盛生命力的也有他的道理。