JTalk第四期《Android进阶之旅》活动结束啦,此次讲师带来了哪些干货? 有幸参与本次活动,将本次JTalk讲师分享内容进行了一个小总结,但愿能帮到未能到场的同窗们~ 受限本人水准,总结可能稍有误差或者不到位不清晰之处,还望见谅并请指出~前端
activity、fragment,view、control=>指望抹平android、ios平台差别android
动态下发ui组合配置(不一样国家不一样地区等区分方式)ios
指望能下发业务逻辑程序员
内部开发框架面试
代码高度复用算法
快速上线api
反fragment联盟(便是view又是control)性能优化
概念:router->数据传递/序列化网络
目前大量处在mvp->后期迁移为mvvm数据结构
简化activity、fragment生命周期
思惟纠偏
限制本身的是:思考深度,对业务的理解力
走出温馨区
逃离本身的温馨区,拓展更多
思考本质
不能停留在API阶段,深刻思考理解内部底层设计及实现
理解业务,助力业务
迁移
快速进入某个领域,在于本身的知识迁移能力
机遇
发展和机遇有必定相关
Q: 对测试的友好支持
Router不一样场景的入口,方便测试
复制代码
Q: 知识迁移
方法论、概念的迁移
复制代码
Q: 业务角度看MVP、MVVM选型
数据量小:MVP足够且方便用
大数据量:电商等,数据处理多,很痛苦MVVM会较好
强数据和强交互的划分
复制代码
高高山顶立,深深海底行
业务开发时间太紧
业务过于庞大
隐藏的阻力
组件化:须要站在更高的山去看他们
深深海底行->沉入代码
------以上胖体系(巨大开发包袱/拖慢开发节奏/下班晚)------
组件化
插件化
组件化/插件化阵营
组件化使用的人多,开源内容少
组件化设计时容易和业务强耦合
代码搬家,隔离结偶
组件单独调试
避免资源冲突
组件生命周期
运行时动态打开组件(加载)
运行时动态关闭组件->ABTest(卸载)
组件降维H5(降维)
更庞大须要更多
交互互通有无
每一个组件怎么提供服务
怎样作到更方便的服务发现
服务接口如何自动化与其余代码剥离
组件和组件之间的Router
UI跳转
是否支持scheme跳转
路由和传递仓鼠是否支持自动注解生成
是否能够生成清晰的路由->路由表的生成自动
集成调试
任何组件可否充当host
组件由host切换到library是否能够无感知的完成
代码和资源隔离
如何作到代码隔离
语法 | 旧语法 | 功能 | 支持类型 | 代码隔离效果 |
---|---|---|---|---|
implementation | compile | 编译期间对其余组件不可见,运行期间对其余组件可见 | jar aar | “隔代”编译期间隔离 |
api | compile | 编译和运行期间均可见 | jar aar | 没有隔离 |
compileOnly | provided | 只参与编译 | jar | 没有隔离 |
runtimeOnly | apk | 编译期间不可见,运行期间可见 | jar aar | 编译期间隔离 |
compile无法作到资源隔离
runtimeOnly编译不可见,运行可见。其实也不行
能否作到编译期组件不可见,但同时所有组件参与打包?
组件化过程一直都很痛苦
寻找业务边界,抽离边界清晰的业务模块
将形成组件依赖主项目的模块继续抽离
将主模块抽离成一个host壳子
走出温馨区,作好充足的准备
组件化会长期停留在中间状态
你的app会长期很胖,期望一次成功时不可的
基于组件彻底平行,集成交给app即成调试的方案时不可行的
这不是停滞的理由,要抓紧一切时机
无止境的优化
看好护城河,防止地道战
康威法则 组织架构和架构之间的映射关系
团队共识 就是:我知道,你知道,我知道你知道,你知道我知道……
测量,分析,优化=>循环
采集->预处理->预览->编码->发送->接收->解码->后处理->渲染
紧扣场景作优化
脱离场景谈优化,都是耍流氓
推流首屏时间
屏到屏的延迟
cpu占用
内存抖动优化
首屏时间 视频慢动做录制。。。。会玩 视屏延迟
多操做并行
预操做提早
pos机->收银功能整合
业务观:时刻理解业务规则及特色
全局观:关注上下游服务,以全局的视角审视问题
视野观:技术宽度不限于客户端(某一块)
发展观:架构是面临的问题一步步迭代出来的,不多一步到位
运营观:关注产品各项指标
0.5时代
资源缺少&业务快速推动->复琐事情简单化,取得0的突破
架构自己就不是一步到位的事情,如何在短期内集中稀缺资源推进项目上线?这势必要分清主次、有所取舍,将复琐事情简单化。只有取得零的突破,才有谈演进的资本
1.0时代
面临着:稳定性、厂商对接复杂度、多版本管理
索取主动权,思考从新设计
创建硬件抽象层,自研银行卡收银
银行卡收银分层模块化
异常处理:充分暴露异常,而不是试图消灭异常
下层收集异常,上层处理异常->异常处理模块统一对异常进行处理 埋点:技术侧埋点与产品侧埋点
2.0时代 拥抱开放
总结
技术离不开业务,努力写简单代码
1. 业务优先,关注所作工做的上下游,眼界不局限于客户端
2. 不要把自身局限于当前“身份”
1. 追本溯源,当程序员的出发点。享受红利的同时,承担其风险(技术变化快等)
2. 走出温馨区
3. 新技术,去尝试。大前端的趋势,具体技术不能肯定
1. 核心:学习能力
复制代码
美团: 校招:基础(数据结构算法等),解决问题能力 社招:解决问题,思考问题的能力
不要试图把握面试主动性:睡个好觉直接去就好了
日常:注重提高我的核心竞争力
面试是一个互动的过程,不要拘束,不要埋头想问题,多互动交流