小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或TL)。所以,架构师在广大码农中的占比大概平均不到 10%。而架构师也可以分为初级、中级、高级三档,江湖上真正高水平的软件架构师就更少了。

所以,大部分(超过九成的)开发干上许多年,还是做不了架构师,这是什么原因造成的呢?

1:码农分为真的能写代码的,以及自认为能写代码的。

2:真的能写代码的码农又分为自认为写的不错的,以及真的还不错的。

3:真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状的。

4:会钻研的码农又分为喜欢广度了解新技术蜻蜓点水的,以及深入钻研用到知识的。

了解广度的码农又有少部分愿意深入某些技术,喜欢深入研究的又往往缺乏广度知识。

5:极少深度广度都关注的码农又分为为技术而技术和为业务而技术的。

纯为技术而技术的码农在国内的软件行业需求太少,且需求的往往不是应用软件领域了。

6:为业务而技术的深度广度都了解的码农,又需要有良好的沟通能力。

7:而沟通好的,又有一部分当PM去了。

8:然后剩下的,又有一部分慢慢脱离实际开发(不再做任何实现)或者开始依靠拿各种中间件搭积木来作为“架构”手段。

9:除去这些,剩下对业务有一定了解,对技术广度上有多种涉猎,深度上对部分技术研究彻底,还有很重要的一点,考虑问题足够细致全面。

10:细致全面善于沟通,技术上深度广度都没问题, 又喜欢这个工作,还会不时做底层实现,从业务和开发两个角度出发,搭出“架构”来是为了开发效率,为了运行效率,为了开发质量,为了业务灵活和运行稳定,为了维护方便等等这样的人,个人认为可以称为“架构师”。

大厂热门架构演进之路

对于很多初中级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 英语流利说常用支持型架构

需要的朋友只需要 点赞支持一下,然后点击我的【GitHub】免费获取。

为什么大部分的Android开发成为不了架构师的更多相关文章

  1. 转:Android开发中的MVP架构(最后链接资源不错)

    Android开发中的MVP架构 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和 ...

  2. 高焕堂《android从程序员到架构师之路》 YY讲坛直面大师学习架构设计

    <android从程序员到架构师之路>YY讲坛活动:  sundy携手高焕堂老师全程YY答疑 与大师一起,分享android技术 时间:7月21日下午2:00   报名联系QQ:22243 ...

  3. 转: Android开发中的MVP架构详解(附加链接比较不错)

    转: http://www.codeceo.com/article/android-mvp-artch.html 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解M ...

  4. 设计模式笔记之二:Android开发中的MVP架构(转)

    写在前面,本博客来源于公众号文章:http://mp.weixin.qq.com/s?__biz=MzA3MDMyMjkzNg==&mid=402435540&idx=1&sn ...

  5. Android:从程序员到架构师之路Ⅲ_高焕堂

    Part-2: 从Android框架代码中学习设计 一 基础设计模式(Pattern)的代码:以Android为例 1.Template Method模式:IoC(控制反转)机制 2.Observer ...

  6. android初级应用到高端架构教程------ 完整体系化学习android开发

    系统的学习android开发技术,从应用到底层,再到架构,告别乱糟糟的学习方式,不再是抓不住重点.从上到下贯通,全面学习android开发.让你拥有清晰的思路,一步步学习android开发! 一般而言 ...

  7. android大牛高焕堂最新力作-android架构师之路

    android大牛高焕堂 个人介绍: Android专家顾问,台湾Android论坛主席,现任亚太地区Android技术大会主席,台湾Android领域框架开发联盟总架构师.发表100多篇Androi ...

  8. Android开发学习之路-记一次CSDN公开课

    今天的CSDN公开课Android事件处理重难点快速掌握中老师讲到一个概念我觉得不正确. 原话是这样的:点击事件可以通过事件监听和回调两种方法实现. 我一听到之后我的表情是这样的: 这跟我学的看的都不 ...

  9. Android开发学习之路-该怎么学Android(Service和Activity通信为例)

    在大部分地方,比如书本或者学校和培训机构,教学Android的方式都基本类似,就是告诉先上原理方法,然后对着代码讲一下. 但是,这往往不是一个很好的方法,为什么? ① 学生要掌握这个方法的用途,只能通 ...

随机推荐

  1. C、C++、python、Java、php、C#六种编程语言大PK 哪个好学习?

    作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调.也难怪有很多初学者会有疑惑,为什么会有这么多编程语言,我到底应该学什么语言? 其实各种语言都各有千秋.接 ...

  2. POJ 1681 高斯消元 枚举自由变元

    题目和poj1222差不多,但是解法有一定区别,1222只要求出任意一解,而本题需要求出最少翻转次数.所以需要枚举自由变元,变元数量为n,则枚举的次数为1<<n次 #include < ...

  3. POJ 2084 Game of Connections 卡特兰数

    看了下大牛们的,原来这题是卡特兰数,顺便练练java.递归式子:h(0)=1,h(1)=1   h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) ( ...

  4. AcWing 242. 一个简单的整数问题

    给定长度为N的数列A,然后输入M行操作指令. 第一类指令形如"C l r d",表示把数列中第l~r个数都加d. 第二类指令形如"Q X",表示询问数列中第x个 ...

  5. iOS 针对txt文档进行解码

    如我上一篇文章记录,我加了打开其他APPtxt文件的小功能,紧接着碰到新问题了,我在测试过程中发现用户上传的TXT编码格式很多不单单是utf-8和gb2312,针对TXT文档进行解码,我一共经历过两个 ...

  6. Prometheus(一):Web服务环境监控

    写在前面 现每个后端的同学的日常都在跟服务(接口)打交道,维护老的比较大单体应用.按业务拆得相对比较细的新服务.无论企业内部用的,面向用户的前端的服务.流量大的有流量小的,有重要的有不那么重要的. 但 ...

  7. Linux查找占用的端口,并杀死进程

    我要使用4040端口,但是被其他的程序占用了 1. 查找占用的程序 netstat -apn | grep 4040 最后一项显示的是pid和对应的名称 2. 杀掉对应的进程,彻底杀死进程 kill ...

  8. pdm文件name与comment互相同步

    1.使用Powerdesigner工具将pdm文件的name同步至comment. 点击Tools->Execute Commands->Edit/Run Scripts 输入脚本: Op ...

  9. mysql中,一个数字加上null,结果为null

    在mysql中,一个数字加上null,结果为null. 这个问题是我用update语句时遇见的,就像下边的例子 update tableName set number = number + x 这里的 ...

  10. C语言相关知识

    1.指针:在程序中定义了一个变量,在进行编译时就会给该变量再内存中分配一个地址,通过访问这个地址可以找到所需变量,这个变量的地址成为该变量的指针.指针看作是内存中的一个地址,多数情况下,这个地址是内存 ...