9

字节跳动前技术总监开源分享《Android架构设计权威指南》,YYDS!

 3 years ago
source link: https://blog.csdn.net/Android23333/article/details/119779672
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

架构就像是一场进化史,根据不同时期的需求,演变出不同的架构,车轮滚滚,到今天,移动端框架百花齐放,让人目不暇接。但是其中的本质是磨灭不了的,换言之根本没有磨灭而是隐藏到了人们所看不到的地方,但是依旧发挥着不可或缺的作用。

为什么需要架构?

  • 一个Activity走天下,包含各种模块和功能
  • 臃肿类太多
  • 不同功能,不同层次拎不清楚,混合在一起
  • 重复代码太多,复用性为差
  • 无法协作开发,
  • 耦合严重,bug太多

当我们新进一个公司,接受别人的项目的时候,基本都会说句MMP,SHI一样的代码啊,啥玩意啊,搞得什么啊。

我擦,我就改了一个参数,怎么全乱套了,一个功能怎么天上地下都需要改啊。

没有经受过痛苦的人,是不会想了解架构的,只有痛苦过的人,才会急切的了解架构。

大厂热门架构演进之路

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,网上碎片化的文章让人摸不着头脑。

特此分享这份字节跳动前技术总监汇聚了上百篇业界知名架构文章整理的而成的《Android架构设计权威指南》,帮助大家在以简驭繁的代码中,对架构乃至标准化开发模式 形成正确、深入的理解!

指南主要介绍Android框架的初始化过程及主要组件的工作原理。分析Android框架的主要源代码,理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架,,下面是详细内容:

第一章 Android Jetpack实战和教程

1.Android Jetpack - Navigation
2.Android Jetpack - Data Binding
3.Android Jetpack - ViewModel & LiveData
4.Android Jetpack - Room
5.Android Jetpack - Paging
6.Android Jetpack - WorkManger
7.Android Jetpack - Paging 3

第二章. MVC/MVP/MVVM

1.MVC框架-导言
2.MVC框架-ASP.NET窗体
3.MVC框架-第一应用程序
4.MVC框架-文件夹
5.MVC框架-模型
6.MVC框架-控制器
7.MVC框架-视图
8.MVC框架-布局
9.MVC框架-路由引擎
10.MVC框架-动作过滤器
11.MVC框架-高级示例
12.MVC框架-Ajax支持
13.MVC框架-捆绑
14.MVC框架-异常处理
15.MVP架构设计:Google官方MVP思想解读
16.开源MVP框架
17.MVC、MVP、MVVM,到底该怎么选?

第三章. 国内知名架构文章

1. 抖音 iOS 工程架构演进

1.1 前言介绍
1.2 抖音工程架构演进
1.3 组件化
1.4 流水线式迭代开发
1.5 抖音工程架构演进
1.6 组件化探索过程中遇到的一些问题:

2. 美团外卖 Android 平台化架构演进实践

2.1 平台化背景
2.2 屡次探索
2.3 搜索库拆分实践
2.4 页面组件化实践
2.5 MVP 分层复用实践
2.6 中间层实践
2.7 平台化实践
2.8 平台化总结
2.9 展望

3. 安居客 Android 项目架构演进

3.1 三网合并
3.2 由RxJava驱动的MVP架构
3.3、组件化与模块化

4. 携程 Android App 插件化和动态加载实践

4.1 需求驱动
4.2 原理
4.3 实现
4.4 收益与代价

5. 微信Android客户端架构演进之路

5.1拓荒
5.2成长
5.3变革
5.4 进化
5.5 开放

6. 千万级用户的 Android 客户端是如何养成的 | 架构师实践日

6.5 模块内的解耦
6.6 灰度发布机制
6.7 模块间通信
6.8 总结

7.手机淘宝构架演化实践

7.1.Bundle
7.2 WebApp
7.3 PackageApp
7.4 研发支撑
7.5 测试支撑
7.6 运维支撑
7.7 发布支撑

8. 英语流利说 Android 架构演进

8.1 英语流利说早期架构
8.2 英语流利说核心架构
8.3 核心架构说明
8.4 引入多进程层
8.5 英语流利说常用辅助架构
8.6 英语流利说常用支持型架构

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0FuZHJvaWQyMzMzMw==,size_16,color_FFFFFF,t_70#pic_center

文末

其实成为一名优秀的程序员并不难。

但是怎样才能成为一名优秀的程序员?

我认为最大的阻碍在于:广度与深度难以兼顾。

计算机专业基础课,如OS,数据库,网络,算法等,抽象且难以理解,大学时不学,以后就很难拾起来。

既强调动手,又强调抽象,二者缺一不可。但善于思考的人,往往喜欢谋定而后动;善于行动的人,往往没功夫回顾思考。

对于要先理解才动手的人,是种折磨。往往做了一两年,才突然理解某个概念。

对于初学者,难以区分学的知识,还是配置。

杂讯太多,不知道学什么。

总得来说,编程里最简单的地方往往价值不高,困难的地方这次避开了,下次还是要理解,逃也逃不掉。

以上,与诸君共勉


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK