简历要点

186 阅读2分钟

难点

  1. jspdf+html2canvas

难点:需求要求在页面中预览时,如果内容过多则需要出现滚动条。但是jspdf_html生成的pdf就会将滚动隐藏的内容截断。 解决办法:在生成pdf之前先将overflow值改为visible,在执行完jspdf的实例方法addImage之后改回scroll,这样就能防止内容缺失。

  1. 难点:使用mavon-editor富文本编辑成功之后回显文件名称,点击文件名称可以下载文件。这个时候使用事件代理,在这个组件上设置听函数,利用冒泡原理去触发父级的点击事件,然后再去利用target判断事件发生的节点。 解决办法:查阅can i use, 发现浏览器不支持addEventListner事件,所以增加了attachEvent事件去支持ie浏览器上面的这个功能. addEventListener(event, fn, useCapture) addevent('on'+event, fn)

  2. 不同浏览器的margin、padding不一样 可自己定义重置样式,也可使用nomalize.css插件来重置样式

  3. 第一次独立负责项目 难点:

  • 集团内部首次尝试产线联合开发
  • 跨地区合作,沟通问题
  • 产线差异如何处理
  1. ui规范 UI:枚举、枚举颜色、表单项title后的冒号,表单内容是否换行,表格内容是否换行,时间格式化方式 交互:删除时给出确认提示? 详情使用新页面还是打开抽屉?

  2. 开发过的可复用组件 卡片组件、上传组件&下载组件、可编辑表格、详情抽屉、可操作树(支持添加、删除、编辑节点)、分步表单等

  3. 系统安全平台:资产管理、漏洞管理、告警管理、作业调度、运营后台、系统管理

  4. 最近在学习ts,它比es6增加了类型校验,并且可以充当文档。

  5. 怎么重构?

  • 重构原因
    • 逻辑耦合,维护困难
    • 复制粘贴,重复的代码较多
    • 单文件代码行数过多
    • 硬编码
    • 页面卡顿问题
    • ....
  • 如何重构?
    • 重新梳理业务需求
    • 确定重构目标,时间,人力成本
    • 从全局到局部开始重构
      • 删除没有使用到的文件、没有引用到的依赖
      • 按照公司规范调整项目目录结构的划分
      • 抽离公共组件、样式、工具方法等
      • 拆分耦合的业务逻辑
      • 拆分单文件代码函数过多的组件,标准是250行左右
      • 长列表进行分页/虚拟滚动处理,图片使用精灵图,引入组件库的组件时按需引入
  • 汇总可能影响到的测试用例,测试同学着重对这些地方进行测试
  • 测试完成上线
  • 评估重构结果
    • 文件数量
    • 代码总行数
    • eslint是否全部校验通过
    • 是否覆盖了项目原有的功能
    • ui交互是否一致美观