猜你喜欢
移动开发架构设计实战

移动开发架构设计实战

书籍作者:李云鹏 ISBN:9787121375071
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4236
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书覆盖了移动开发中涉及的多种架构模式,基于Android平台对架构模式进行实战,可以帮助入门开发者了解架构模式,进阶开发者掌握架构模式,技术领导者进行架构选型。

本书内容包括:流行架构模型MVX系列——MVC架构、MVP架构、MVVM架构,依赖注入框架Dagger2,函数响应式框架RxJava2,Google推荐的生命周期感知架构组件AAC,整洁的架构“The Clean Architecture”和组件化架构的运用方法与实战。

本书语言精练,内容清晰,代码易于理解,适合计算机相关行业的从业者阅读与学习。

作者简介

李云鹏,网易新闻架构技术组工程师,沐暄网创始人,Oracle、Adobe等企业认证专家;10年互联网经验,曾就职于世界500强企业核心技术实验室;于2009年创立沐暄网,2010年入围凤凰网“全球*具影响力的中文论坛100强”站长。

擅长移动端架构设计、项目重构与Intellij插件开发等工作。参与网易新闻组件化架构设计,视频模块、统计模块等多模块重构工作,利用VIPER对客户端基础架构进行改良。喜欢创新和研究,作为第一发明人,申请了十余项专利和著作权。


编辑推荐
适读人群 :移动开发架构师、程序设计人员

专注:50+实战案例。填补移动开发架构设计书籍空白

全面:10+架构模式。流行移动端架构全面囊括

实战:10+系统设计实战。代码注释丰富,易于理解

易读:学习门槛低。内容精练,语言通俗易懂


前言

Android系统自Google 2008年发布以来, 经过十多年的发展,已经占据了手持设备八成以上的市场份额。在此过程中,有很多非常优秀的开发者加入这个行业,移动开发经过近几年的快速蓬勃发展,在传统的设计思想上有了更多的更新和创新,同时也涌现出不少高效的工具。

软件架构是对软件整体结构与组件的抽象描述,但在实际项目和产品迭代中,架构不仅涉及软件本身,还涉及团队组成、业务现状及发展方向、团队文化、投入产出比等多方面。如何基于业务做出更合理的设计?如何平衡业务和技术?如何在做出决策后顺利落地?从这些方面考虑,需要明确以下几个问题:

·通用的架构有哪些?

·每个架构的适用场景和优缺点是什么?

·架构的设计原则是什么?

·架构之间是如何演化的?

·在架构设计实战的过程中会遇到哪些问题?该如何解决?

作者从架构的定义开始,对MVC、MVP、MVVM等多种架构模式进行了详细的阐述,并辅以案例讲解。通过讲解多个实战案例回答了上述问题。本书非常适合移动开发领域的初、中级工程师阅读,也适合高级工程师阅读,以作参考。

——网易新闻技术总监 刘棉明

前言

过去,我常常寻找一些关于移动端架构模式的资料,以帮助自己全面了解架构模式,并针对企业软件架构存在的问题,指导自己进行架构选型。在现今的技术盛世中,各种架构模式“百花齐放”,然而每种架构模式的概念都比较晦涩难懂,这不仅使得一部分初学者“从入门到放弃”,也让进阶人员耗费了太多的学习成本。

通过博客学习架构需要查阅大量的资料,而且博客中的技术资料学习门槛相对较高,所以,我总结自身经验,写成了这本书,以帮助入门开发者了解架构模式,进阶开发者掌握架构模式,技术领导者进行架构选型,并填补移动端或Android架构实战书籍的空白。

架构设计在现今已经成为软件开发必不可少的环节,而架构学习和架构选型往往是一个困难的“工程”。在软件设计之初,人们习惯使用“面条代码”进行开发,系统代码并无结构可言,由此带来的本质问题就是软件的可维护性和可靠性越来越差,软件的维护成本也越来越高,直到软件危机爆发,人们才开始意识到软件架构的重要性。

软件架构设计可以帮助我们规划系统模型,做出决策,降低软件熵,提供系统可维护性和可靠性,减少企业软件维护成本,使得系统更加有序。

本书特色

1.内容丰富,语言通俗易懂,学习门槛低

阅读本书与阅读技术博客不同的是,架构模式的概念部分清晰易懂,语言精练,包含各种架构的总结性内容。我一直在思索如何表述,能让软件开发人员轻松地理解架构设计中晦涩难懂的概念,所以在每章中,加入了对于架构相关概念的通俗易懂的阐述,以及丰富的图片,以便帮助读者建立架构的记忆模型。

2.架构覆盖广泛,代码注释丰富,易于理解

本书用大量篇幅介绍了MVX系列架构——MVC架构、MVP架构和MVVM架构,但软件架构从不是一成不变的,所以,本书还介绍了组件化和插件化等读者可能会加入自身架构中的技术。而对架构实战的介绍是通过还原一个架构模式的重构过程来完成的,代码注释丰富,易于理解。

3.填补了移动端架构设计和Android架构设计与实战总结类书籍的空白

过去,我一直希望有这样一本关于架构模式实战总结与指导类的书籍,能够帮助企业开发人员进行架构学习和选型。软件架构设计是一个经久不衰的话题,其生命周期较长,而架构之间的区别往往在于“合适”与“不合适”,本书可以帮助你全面了解移动端的流行架构模式,并根据自身所需进行架构学习和选型。

本书内容及体系结构

本书从内容上分为三部分,共16章。

第一部分主要介绍架构的基本概念。

第二部分列举了当下比较流行的几种架构模式,包括MVX系列架构——MVC架构、MVP架构、MVVM架构,以及依赖注入框架Dagger2、函数响应式框架RxJava2、Google官方推荐的Android Architecture Components和组件化架构。

第三部分列举了更多值得推荐的,但目前并不是十分常见的框架,其中包括整洁的架构“The Clean Architecture”、Fragment反对者系列的Fragmentless、Conductor,还介绍了插件化架构的运用方法与实战。

第1章 什么是架构

本章将从架构的起源讲起,走入生活中的架构,探究架构的本质,掌握架构的原则,逐步深入,进而达到了解传统的架构设计思想和设计流程的目的。如果你更注重实践性的内容,可以从第2章开始阅读;如果你更注重从一根“线”的“线头”开始厘清思路,那么,就要从本章开始阅读,阅读本章能够使你更好地了解什么是架构。

第2章 MVC架构:表现层分离

“面条代码”是一种没有结构、紧耦合、“一气呵成”的代码形态。接触“面条代码”你会发现,所有界面展示控制和业务逻辑都缠绕在一起,改动任意一处,都将使你苦不堪言。在无数次凌乱的修改整理后,你会感受到一种“剪不断,理还乱”的痛苦。在探究架构的最佳实战之路上,我们还要从MVC(Model-View-Controller)开始说起,本章将要分析的是经典的MVC架构模式。

第3章 实战:基于MVC架构设计的日记App

本章将通过一个基于Android的日记App,来讨论MVC架构的两种模式——被动模式和主动模式是如何实现的。

第4章 MVP架构:开始解耦

前面的章节针对MVC架构模式进行了讨论与实践,这种模式虽然践行了表现层分离,但难免会出现Massive View Controller(过重的视图控制器)。本章将讨论一种更流行的架构模式——MVP架构。

第5章 实战:MVP架构设计

前面我们讨论了日记App的MVC架构被动模式和主动模式的实现。本章将对日记App的MVC架构模式进行改造,使其成为MVP架构模式,并基于MVP架构模式添加新的功能。

第6章 MVVM架构:双向绑定

前面的章节介绍了移动开发中的两个经典架构模式——MVC架构和MVP架构。本章将介绍移动开发三大经典架构中的最后一种架构模式——MVVM架构。

第7章 实战:MVVM架构设计

本章将会改造基于MVP架构设计的“我的日记”App,利用Google提供的数据绑定框架DataBinding,使其成为MVVM架构模式。

第8章 依赖注入:Dagger2锋利的“匕首”

依赖注入在后端领域开发中是一项非常流行的设计模式,在Google接手了Dagger的开发工作后,依赖注入在移动端也日趋火热。本章我们将在前面介绍的MVP架构的基础上,通过讲解Dagger2来使读者了解依赖注入框架的使用方法,并将其应用在“我的日记”App中。

第9章 函数响应式框架:优雅的RxJava2

在单任务CPU时代,任务只能串联执行,上一个任务没有执行完,下一个任务就只能等待,这样的任务处理效率极低;后来,多任务盛行起来,多个任务可以并行处理,带来了效率的提升;再后来,多任务的模式被运用到每个任务中,一个任务可以被拆分成多个线程执行,每个线程可以并行处理,多线程的时代到来了,它开启了并发,也开启了响应式编程。本章将利用RxJava2实现函数响应式框架的设计。

第10章 AAC:搭建生命周期感知架构

本章将要介绍的是Android官方推荐的系列架构组件Android Architecture Components,其中包括生命周期感知组件、LiveData、ViewModel和Room数据库的使用等。

第11章 组件化架构:极速运行

本章主要介绍各大科技公司使用的主流架构设计模式——组件化架构,这种架构可以让你的工程组件更加清晰,提升软件复用性,加快开发速度,降低测试成本。

第12章 The Clean Architecture:整洁的架构

本章将通过介绍三款符合The Clean Architecture思想的架构——MVP-Clean、VIPER和Riblets,使大家能够对The Clean Architecture有更加全面的了解。

第13章 Fragmentless:Fragment反对者

Fragmentless架构践行了Fragment反对者的思想,即Fragment会给程序的开发和维护带来很多不必要的问题。本章将通过View代替Fragment,来为大家演示Fragmentless架构的实现。

第14章 Conductor:短兵利刃

Conductor是一个小巧精悍的框架,用来帮助移动应用实现基于View的开发,与上一章的Fragmentless架构基于同一核心思想。本章将在MVP架构设计的“我的日记”App的基础上加入Conductor支持。

第15章 插件化:模块插拔

本章介绍的是插件化框架,它与模块化技术、组件化技术有着异曲同工之妙。熟练运用插件化技术,往往能给一个移动应用带来非同凡响的体验感。本章将通过分析一款插件化流行框架,来讲解插件化架构。

第16章 总结

本章是对全书涉及的架构模式的总结,将会针对每种架构模式总结其特点,并给予你架构选型的建议。

本书读者对象

本书适合任何对计算机技术感兴趣或相关领域的从业人员阅读,书中列举了多种移动端的架构模式和使用方法,但架构设计未必局限于某一平台,比如,MVC架构在后端开发中依旧广泛流行。

尤其推荐以下人群阅读本书:

·移动端进阶工程师。

·移动开发爱好者及从业人员。

·计算机爱好者及从业人员。

目录
第1章 什么是架构 1
1.1 架构设计理念 1
1.1.1 软件架构的起源 1
1.1.2 架构设计三要素 2
1.1.3 什么是优秀的软件架构设计 2
1.1.4 软件架构设计的关注点 3
· · · · · · (更多)
短评

里面的架构模型说的都挺清晰的,之前有好多不懂的知识,看了以后都能理解了。

2019-11-25

终于理解组件化,插件化,还有mvc,mvp,mvvm这一堆了!!!之前看了好多博客都看不懂,感动!!!感谢这本书救了我

2019-11-26

标签
计算机,互联网,编程
产品特色