面试官:如何从0到1搭建一个项目?我......

223 阅读3分钟

前言

阁下可曾在面试过程中听到过面试官问这样的问题——”如何从0到1搭建一个项目架构,这个过程中你需要考虑哪些方面?“别看它如此抽象,在以往的面试过程中我就遇到过类似这样的问题,我觉得面试官更多是想通过这个问题来考察你对项目架构的全局把控能力,以及你解决实际应用问题的思维过程。作为把前端架构师当作岗位目标的我,就着这个问题顺延去思考后,整理出了一些自己的个人理解,希望能对你有所帮助

⭐️ 核心思想:采用渐进式策略,实现技术决策与业务目标的正向循环

听起来是不是很抽象?上面这个表述是为了必要时你拿出去吹得高大上的,翻译成白话文就是:始终要明确需要解决的问题是什么,一步一个脚印地去实现,明白每一个技术上的动作,对应的解决了业务上的什么问题

如果是项目初期,系统还没有时(从0到1),先明确需要解决的问题,然后对此进行需求分析,如果是现有日渐臃肿的系统(从1到n),那就是先明确首要解决的问题是什么,然后对该问题进行痛点分析。到底是业务代码模块混乱导致难以维护,还是编译打包过程慢导致开发效率低系统性能差,实际应用过程还需具体问题具体分析

💼 工作模式:todolist主导 + priority推进

🤔 结构化思维链路

整理了我认为整个过程中需要思考的几个方向,主要包括六个方面:战略层、架构层、实施层、扩展层、运营层、全流程。每个层面列举了若干个需要思考的点,在这里只做概述,不详细展开讨论,这些层面的命名也是出于方便我个人理解的角度去定义的,读者也可以自定义,一千个读者就有一千个哈姆雷特

  • 战略层
    • 业务目标对齐(产品定位,业务指标,需求优先级)
    • 技术价值评估(开发效率,维护成本,扩展能力,性能基线)
  • 架构层
    • 列出技术栈选型矩阵(核心框架、构建工具、UI组件库、样式方案)
    • 项目目录结构分层模型(业务模块结构划分,公共组件,api封装,工具类,配置类,第三方插件,静态资源)
  • 实施层
    • 工程化体系
      • 开发规范定制:代码规范、git提交规范
      • 构建优化:压缩策略、tree-shaking、代码分割
    • 质量保障机制(代码质量,性能质量,视觉UI质量)
    • 部署策略(区分开发、测试、生产环境)
  • 扩展层
    • 微前端:子应用抽离,动态加载
      • qiankun
      • webpack5 模块联邦
      • iframe
    • 插件化支持
    • 依赖包扩展
  • 运营层
    • 监控体系搭建(代码监控,异常监控,性能监控)
    • 风险管理(阶段性方案评审,回滚机制,技术债看板)
  • 全流程
    • 确保每一环节过程可追溯
    • 相应文档记录(需求分析、架构设计、开发规范、技术方案、监控管理)