1 / 35
文档名称:

Android开发软件架构思考以及经验总结.doc

格式:doc   大小:44KB   页数:35页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

Android开发软件架构思考以及经验总结.doc

上传人:wz_198614 2017/10/31 文件大小:44 KB

下载得到文件列表

Android开发软件架构思考以及经验总结.doc

文档介绍

文档介绍:Android开发软件架构思考以及经验总结
在项目开发的过程中,也发现存在许多的问题,但是都是一些零散的问题,我很多时候希望能够改变现状,更加优雅地编程,然后实际的情况却是陷入了迭代功能开发和bug修复的死循环。现在回过头来想想,我理想中应该是开发应该是一种由规划和设计指导的开发,那么架构设计就显的尤为重要了。
作者:井方哥来源:井方哥|2016-12-30 13:52
收藏
分享
一、萌芽
作为一只编程经验并不怎么丰富的程序猿来讲,我一直觉得架构师是一个比较神秘的职业,架构设计就更加的高大上了。经过今年的几个项目,之前曾发文叙述我的从MVC到MVP项目重构实战经验,也曾说过我准备对目前手底下的项目进行重构。但是,前段时间,我改变了我的想法。开发模式的重构,仅仅只是换了一个套路,也许在重构的过程中对业务的逻辑进行了一次梳理,也是在基于前人的代码设计上进行了一些优化。但是,这远远还不够,这不是我理想中的开发场景。在项目开发的过程中,也发现存在许多的问题,但是都是一些零散的问题,我很多时候希望能够改变现状,更加优雅地编程,然后实际的情况却是陷入了迭代功能开发和bug修复的死循环。现在回过头来想想,我理想中应该是开发应该是一种由规划和设计指导的开发,那么架构设计就显的尤为重要了。
二、初识架构
1、阅读《架构之美》之论架构
仅看完了《架构之美》的第一部分:论架构,对架构有了一个大概的认识。下图是这部分的知识点概要:
书中很受启发的概念:
?
?
?
?
?
? 架构是一种折中,一种取舍。架构师要学会的就是平衡,质量与成本之间的平衡; 架构师首先关注的不是系统的功能,而是满足需求,满足品质; 架构设计要做的是让关注点分离,并且对每个关注点进行设计一定的结构,该结构都有利于解答这一个关注点所定义的问题; 好的架构应该是可以指导产品、开发、测试人员都对这一设计感到非常的舒适可靠,该设计覆盖了所有该软件系统相关利益的人员以及其中的关注点; 只设计你知道需要的东西,多余的设计是一种浪费; 架构几乎影响了该系统相关的所有的人和事,决定了该软件系统是否健康。
2、分析行业内各个APP的架构演进
这里仅仅通过Google搜索各个app在架构演进方面的一些文章,从中分析他们为什么要演进?怎么演进?带来了哪些好处?
简单的整理如下:
(1)架构为什么需要演进
?
?
?
? 项目需求扩张,旧的架构不适应新的需求开发团队人员增加,协作要求变高新技术引入更高的软件质量要求
(2)他们是怎么演进的
? 饿了么移动APP的架构演进 2016-01-20
o 模块解耦
?
? 共有组件业务组件
o Excalibur映射系统,注册机制
o 引入Hybrid框架
o React-Native & Hot Patch
? 携程移动App架构优化之旅 2016-04-07
o 工程结构调整、业务之前解耦,产品间相互独立,页面跳转使用事件总线或者URL总线方式
o 统一基础功能业务组件,SDK化
o 性能数据采集、监控
o Native的插件化和HotFix
? 糯米移动组件架构演进之路 2016-05-24
o 组件化
o 统一服务入口
o Hybrid框架优化
? :苏宁易购移动端的架构优化实践 2016-11-11
o 分层解耦,解决纵向解耦
o 中介型引用结构(protocol和url方式),横向解耦
o H5容器优化
o 网络链路优化
o 移动App性能监控系统
(3)带来的好处
?
?
?
? 进行了模块化的解耦,产品相对独立,应对需求变化、技术更新更加灵活,团队协作更加方便,并减少了许多是无用功,也给团队留下了一些技术积累; 进行了必要的统一规范,组织结构更加清晰,系统更加健康; 引入了新的技术框架,,产品获得更好的体验; 进行了系统的优化工作,软件的品质更高,体验更好;
3、Google搜索关键字:架构设计
搜索引擎对于我们来说是最棒的学习工具,我通过搜索架构设计等关键字,阅读了一些文章,并仔细研读Keegan小钢的博客文章《小钢的架构思考》系列。这几篇文章在发表之初曾阅读过,但是当时并不怎么理解,大概是对架构还没有一个大概的认识。在请教一位前辈的时候,他和说了对架构的一个理解,并再次推荐了这几篇文章。所以我再次阅读了好几遍。下图是文中关于架构设计的知识概要。
(1)知识概要
(2)个人小结
架构分为三个阶段:规划、设计、构建,每个阶段架构的设计有不同职能。在规划阶段,考虑的是产品的需求、质量的需求,技术的可