面试项目 金字塔模版

76 阅读2分钟

c 端

性能优化

  • 图片 -- 懒加载、CDN、webp
  • 接口 -- 首屏
  • ssr -- nossr\流式SSR
  • 宿主特性--微信、客户端
  • 代码 --
  • SEO 优化

转化路径优化

  • 不同宿主 获取手机号方法
  • help
  • 一推三

B端

  • 稳定性

    • 安全 csrf
      • 单token
      • 双重cookie验证
    • 监控 错误上报 、 onerror 、js error 接口error 、白屏 eslint
  • 可维护性、可读性

    • 系统迁移

      • monorepo\iframe
      • 登录、sso
    • oncall机器人

      • 维护文档、链接 拦截oncall 60% -->30%
  • 需求迭代、人力分配

    • 需求评审、优先级分配
    • 人力分配-需求拆分
    • 技术文档-技术支持
    • 人力培养、能力提升
      • 单周汇报。给目标、看结果
      • 边界感 -- 讲东西但不是替他写代码,要讲明白
      • 文档产出、使用文档
  • 低码

    • 零码

      • -- 每个editor 都有一个function API 可以用以监控它的改变,修改其他editor的值
      • 将内容塞入props中获取
      • 可二次开发、代码没有混淆-抽奖、表单等等
    • 低码

      • 模块
        • 需要考虑好扩展性、代码层面
        • 先写一个布局组件、再写内部的组件、所有的交互都是可预测 或者说留好的插槽
        • 代码会混淆、导出一个 JSON 串 通过提供的API 解析scheme成组件
  • 微前端

    • iframe 缺点

      • 增大内存和计算资源
      • 自带样式、环境隔离机制沙盒
      • 加载失败,主应用不容易感知
      • 无法共用基础能力
      • 通信比较繁琐、限制比较多
    • spa

      • 沙箱
      • 路由托管
      • 子应用通信
      • 公共依赖、公共组件、公共方法
    • 优点

      • 多个项目放在同一个主项目下维护
      • 单独部署、发布
      • 共用能力
      • 便于维护
      • 按需加载,切换路由时才会加载对应组件
      • 预加载、首次进来加载首页、其他子项目预加载
    • 沙箱

      • 收集、隔离、清除副作用包括:样式、网络请求、定时器、全局事件、全局变量、缓存
      • 静态副作用、动态副作用
        • 静态-- HTML中的标签,style、link等等
        • 动态-- 通过JS处理的副作用动态创建style\全局变量、动态移除元素、网络请求
    • 沙箱实现

      • 快照沙箱

        • 快照保存当前执行环境
          • 进入-时
            • 保存上一个环境的window
            • 更新当前window 为自己这个沙箱的内容
          • 离开时
            • 保存此次修改的内容,记录当前的window快照
            • 恢复window为之前进来时保存的
      • 样式隔离

        • 进入子项目 动态添加style
        • 离开子项目时 动态移除style

    webpack