实习复盘
整理一下第一段实习经历
主要是为火山引擎 RTC 资源售卖业务的前端页面做需求开发
它是会涉及到两个平台,一个平台是给 tob 客户提供一些资源包购买,套餐订阅能力,同时平台会为用户提供一些 RTC 房间数据的展示,以及实时性告警内容的配置和展现
另一个平台则是给运营人员提供一些全局层面管理客户的能力,以客户账户为划分维度,管理不同账户下的资源与配置
需求实现,基本上是在原有的页面上做优化和开发,我们会评估和预测该页面或者组件后续的可迭代程度,对先前代码做小重构和优化
对于实现起来重复代码率比较高的需求,我会提取公共部分,对于差异部分考虑用不同策略渲染,而统一用函数做管理
双平台对用户数据会有一些共有的图表组件,但是可观测的数据范围会因为平台不同有差异 这其中公共部 分可以抽到上层目录中,具体业务组件实现时做好不同平台的逻辑区分,引用需要的 UI 组件;复杂的逻辑用 hooks 分解出来单独管理
对于编码层面会降低性能的地方,我也会做一定优化,比如把常量和渲染函数解耦,使用 useMemo 减少代码重复执行的频率
还有一些可读性差的,字符串拼接用模版字符串代替
图表优化
图例自适应问题,flex 布局
参与视频云团队内组件库维护
平台业务组件日期选择器,只支持 3 天和 7 天的跨度选择(radio)
自定义跨度并非 3 天和 7 天的情况下,radio 要把两种选项置灰
自定义跨度到 3 天和 7 天的情况,需要回显到 radio 选项中
解决方案:
看了项目依赖的源码,在日期跨度选择的回调中增加自定义跨度的逻辑以及重新选择 3 天和 7 天的回显逻辑
项目技术挑战
自定义指令,因为加载态组件的容器不固定,所以需要在容器上手动调用 h 函数渲染组件,然后加入到 dom
但是如何控制加载圈组件的文本内容?常规组件通信方式无效,通过挂载到对象上
为什么要用自定义指令,和组件本身耦合度不高,随用随加