2020年工作总结
我的工作: 前期: 1. Scratch创作器项目 2. Scratch作品分析服务 后期:架构组 1. 公共组件项目: 登录组件,WASM加解密组件/MD5,发送短信组件,滑动验证组件,上传组件, 标准化:jenkins,sentry,nexus npm私有库 1. WASM签名 , MD5签名,AES加解密,sb3,m3u8加解密 2. 发送验证码 3. 无痕验证,滑动验证 4. 文件上传组件:无界面,oss,网宿云存储,七牛云存储。封装统一的API,peerDependency 2. 负责直播客户端项目 --- 解决的是状态一致性问题 1. 多端状态管理同步。单一数据源原则。发送Action,操作状态和结果状态分离。服务端状态整合计算。 2. 频繁状态操作的防抖。 3. 客户端开发流程 4. 视频流补偿机制。采用屏幕截图上报的方式 遇到的问题 : 1. 学生看不到老师头像, 2. 老师看不到学生共享桌面 二. Scratch创作器 1. 游戏引擎性能优化 2. 涉及到的知识点比较多,动画,声音,图形编辑器。 3. Canvas Pool ,解决过多的canvas原色,在移动端ios设备上渲染不出来的问题。 4. 复杂SVG在移动端的支持。固定画布大小,将svg转成位图模式。 5. 凸多边形,碰撞检测算法。 6. 抽象基础组件,支持快速完成定制 目前小码王的Scratch环境是业界定制的最好的。包括:兼容性,性能(游戏播放时的卡顿等问题的解决) 七。 Scratch 播放器优化的内容: 一. 播放作品的流畅度度 1. 碰撞检测算法优化 1. 凸多边形算法优化:利用缓存,避免重复计算凸多边形的边界 2. 颜色碰撞算法优化:定期内存回收,长期不用。 的颜色内存数据从内存中清除。减少内存占用。 二. 作品的兼容性 中文字体的兼容性 SVG渐变效果 文字位置的兼容性 复杂SVG图片移动端兼容:避免重复重复绘制SVG,提前利用canvas将SVG转换为位图 三. 移动端低配置设备的支持, 针对性的解决问题。 1. 减少内存消耗 2. 降低渲染时资源分辨率 3. 解决内存泄漏问题 四. 内置屏幕录制功能 1. 麦克风和平模播放的声音合成 RecordRTC 2. 声音流与Canvas流合成 3. 获取音频流的音量信号,动态显示音量的波动变化,500毫秒刷新一次 五。其他关键词:骨骼动画, 球体,AABB 轴对其包围盒,OBB, K-DOP 六。使用WebWorker解决sb2文件解压缩,页面卡顿的问题。