不知不觉已经实习有一段时间了,主管让我自己先想想成长计划。索性就把这几天实习的经历整理记录下来。
2019.03.27(day1)
- 入职培训
- 申请各种公司账号
- 认识同事
- 配置IDEA环境
- 在禅道上拆解任务
- 学习状态机
- 学习观察者模式
- 学习UML
- 学习事件驱动
day1学习笔记
在禅道上拆解任务
在禅道上新建任务,估计任务完成的时长、优先级,完成之后做好记录。每天晨会要报告自己昨天做了什么,今天预计做什么。
状态机
在学校学了编译原理之后,觉得状态机原理跟自动机差不多啊,学起来也很快。看一两篇文章就弄懂了。基本就是,在当前状态下,满足一定条件或完成什么动作之后,就可以进入下一状态。
观察者模式
之前二面被面试官问到设计模式的时候,真的是一脸懵逼。于是回去后趁热打铁学了一下单例模式、工厂模式、适配器模式,不得不说这对我学习观察者模式帮助很大。看几篇博客之后就差不多理解了。
被观察者和观察者是一对多的关系。观察者会维持一个被观察者列表(一般用 list 实现),观察者把自己注册到该列表中。当被观察者状态发生改变之后,会主动通知列表中的观察者更改后的状态。
UML
就是制图语言,学起来挺快的,用几次就得心应手了。不过UML对于设计和看懂别人的设计帮助真的很大。
事件驱动
学习这个源于指引人给布置的一个小任务,实现事件驱动异步全量加载数据到缓存中。事件驱动?异步?全量?缓存?单看我都懂,不过揉在一起是个什么东西(?_?)。于是心虚地向指引人请教。指引人非常耐心地跟我讲了一下事件驱动,让我去看看安卓的EventBus。
然后稍微懂了一下。主要就是维持一个事件队列(可以用阻塞队列实现,这样队列空的时候会自己阻塞),EventBus每消费一个事件,就会把这个事件告诉Controller,由它根据事件类型,发放给不同的模块完成事件。
“事件驱动异步全量加载数据到缓存中”状态图
事件驱动异步全量加载数据到缓存中,就是实现一个以事件驱动的方式,异步加载数据库的数据到缓存中(好像只是做了扩句。。。)
先设想了一下 cache 的状态:int、loading、running
状态转换过程:init状态下,接收到“初始化”事件,切换状态到loading。当数据加载完成后会发送“加载完成”事件到数据总线。在 loading 状态下接收到“加载完成”事件会切换到running 状态并启动定时器&#x