书籍作者:李云鹏 | 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架构在后端开发中依旧广泛流行。
尤其推荐以下人群阅读本书:
·移动端进阶工程师。
·移动开发爱好者及从业人员。
·计算机爱好者及从业人员。
里面的架构模型说的都挺清晰的,之前有好多不懂的知识,看了以后都能理解了。
2019-11-25
终于理解组件化,插件化,还有mvc,mvp,mvvm这一堆了!!!之前看了好多博客都看不懂,感动!!!感谢这本书救了我
2019-11-26