开头
在大厂,写得一手好文档是一个非常吃香的技能。这可不只是一个锦上添花的东西,而是很多工程师晋升,打造自己话语权的武器。 我这两年在组内的深刻体会就是,大部分厉害的高级工程师(不包括那些纯混日子靠资历晋升的人),写文档的能力一点也不含糊,很能抓住上级和项目的G点。
可能有人会觉得,我技术牛逼就行了,为啥还要提高写文档的能力,有这功夫我还不如多看看源码分析?这是一些初级或者刚入门的工程师的普遍的困惑。这是因为大部分刚刚入行的朋友有一个很深的误区,就是他们以为做软件工程是一个和计算机打交道的工作,其实不然。软件工程不只是和代码打交道,更重要的是和人打交道,是一份社会性质很强的工作。在大部分公司里面,尤其是大厂,牵涉到的人,组,都是非常非常多的。在小厂,人与人之间交流意见和设计可以口口相传,心领神会,但是一旦人开始多了,就只能靠文档了。除非你可以厉害到一个人把所有代码撸完,不然还是最好老老实实的夯实自己写文档的能力。
如果你有写技术博客的习惯,那么恭喜你,相信你已经对如何抓住文档受众的技巧有所了解了。这对你在大厂生存有很大的帮助。如果没有也不要伤心,这篇文章就是为你精心设计的。
在这篇文章里,我会大致的把一份安卓的项目设计文档的骨架,和一些我工作中实际遇到的正反例都列出来,方便大家以后在工作中实践。
下面的这些关于Kotlin的一些技术进阶大纲,希望对小伙伴们有一定的帮助。
一、数据类型
- Boolean数据类型
- Number数据类型
- 拆箱装箱与Char数据类型
- 基础数据类型转换与字符串
- 类和对象
- 空类型和智能类型转换
- 包(package)
- 区间(Range)
- 数组(Array)
二、程序结构
- 常量与变量(val,var)
- 函数(function)
- Lambda表达式
- 类成员(成员方法、成员变量)
- 基本运算符
- 表达式(中缀表达式,分支表达式,when表达式等)
- 循环语句(for循环,while循环,continue,break)
- 异常捕获(try,catch,finally)
- 具名参数,变长参数,默认参数
三、面向对象
- 面向对象-抽象类与接口(abstract,interface)
- 子承父业-继承
- 类及其成员的可见性(private,protected,internal,public)
- object
- 伴生对象与静态成员
- 方法重载与默认参数
- 扩展成员
- 属性代理
- 数据类(allOpen,noArg插件,再见,javaBean)
- 内部类(this@Outter,this@Inner)
- 枚举(enum)
- 密封类(sealed Class)
四、高阶函数
- 高阶函数的基本概念
- 常见高阶函数(forEach,map,flatmap,fold,reduce,filter,takeWhile,let,apply,with,use)
- 尾递归优化 (tailrec)
- 闭包(函数式编程的福音)
- 函数复合(f(g(x)),infix)
- 柯里化(Currying)-函数调用链
- 偏函数
五、Lambdas编程
- lambdas简介
- lambdas和集合
- lambda表达式
- 访问作用域中的变量
- 成员引用
- 集合的函数式API之filter和map
- all、any、count和find
- groupBy
- flatMap和flatten
- 序列
- 使用Java函数式接口
- 把lambda作为参数传给Java方法
- 显式地把lambda转换为函数式接口
- 带接收者的lambda之with函数
- 带接收者的lambda之apply函数
六、领域特定语言 DSL
- DSL 的基本概念
- Gradle Kotlin 脚本编写
七、协程 Coroutine
- 协程的基本概念
- 协程的原理剖析
- Kotlinx.coroutine框架介绍
八、反射语法与库
- Kotlin中使用 Java 反射
- Kotlin中使用 Kotlin 反射
九、泛型,型变,星投影
- 泛型的基本语法
- 泛型的实现机制
- 型变
- 星投影
十、Kotlin与Android
- Anko配置及使用
- anko-commons
- anko-layout
- anko-coroutines库
- anko-sqlite库
-
Kotter Knife
-
RxKotlin及RxAndroid配置
-
Kotlin Retrofit
-
Kotlin Android Extensions
- 插件原理
- 插件使用
学习路线+知识梳理
花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。
本文在开源项目:Android开发不会这些?如何面试拿高薪 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md) 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
这次就分享到这里吧,下篇见。