Fullstack 面试复习笔记:项目梳理总结
Fullstack 面试复习笔记:项目梳理总结
之前的笔记:
- Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理
- Fullstack 面试复习笔记:Java 基础语法 / 核心特性体系化总结
这篇笔记主自用,系统地梳理一下最近几年的项目都做了什么东西
B2B 数据管理平台(内部工具,五百强金融企业)
关键词:React, Redux Toolkit, TypeScript, Zustand, RTK Query, Electron, PostgreSQL, CSV 导出工具, 企业权限系统, 架构重构
RDM 管理系统,需要从上游不同的 pipeline 获取数据,通过清理、验证进行整合,提供给下游消耗
项目前期为 JavaScript,后期逐步迁移至 TypeScript,并结合业务场景构建出多个“类型驱动配置模块”(如 Enum Store),显著提升了工程可维护性与开发体验
- 主导重构前端架构,替换原有
useCase + repo + rxjs
实现,统一为 Redux Toolkit ,优化状态冗余和页面性能,减少大量 callback 的链式调用 - 前端表单验证体系:主导前端的验证实现,使用 Yup 完成了 UI 的验证功能
- 构建响应式状态模块,建立统一类型期约,用于跨组件配置共享
- 基于 Yup 和它的 meta 属性,构建了统一的表格/表单配置结构,大量减缓冗余配置 → 原本不同的地区有独立的配置,管理非常的困难,现在重构为声明式实现,如:
{isAvailable: [{region: "A"}, {region: "B"}]}
的方式,减少不同地区之间的属性重载,增强代码可读性
除了isAvailable
,同样的功能还支持isEditable
,isDisplayed
等多种配置,实现统一的配置期约 - 利用 Zustand 动态生成 enum store,完成静态/动态 enum 的统一管理(静态 enum 已落地,动态部分 POC 阶段)
- 设计并实现了通用 Enum Store 模型,用于构建可配置的下拉枚举与依赖映射。通过
satisfies
+ 泛型约束,定义枚举引用切片的类型边界(如 major → courses),实现“数据驱动 + 类型安全”双重保障。 - 基于
as const
、keyof
、泛型递归推导等 TS 技巧,使 dropdown 枚举之间的映射具备完善的 IDE 提示与自动补全能力(如图所示),实现开发体验最大化。 - 类型抽象能力增强:通过
SliceId<K>
与SliceValue<K>
类型工具,抽象任意枚举切片的键值结构,使组件调用时自动感知类型,无需重复定义。 - 该 Enum Store 同时为 Zustand store 设计提供了基础类型定义,支持静态与动态枚举管理,POC 阶段已成功完成静态枚举接入与联动。
- 搭配 [React] 如何用 Zustand 构建一个响应式 Enum Store?附 RTKQ 实战与 TS 架构落地 重新复习一下实现
- 设计并实现了通用 Enum Store 模型,用于构建可配置的下拉枚举与依赖映射。通过
- 研发 pub/sub 机制,通过 zustand 打通 Redux 与 Yup 数据流,实现下拉枚举与表单配置的自动联动(研发中)
- 计划从 DD(Data Definition)文件自动生成 enum,借助 pipeline 自动同步,减少人工干预(early stage impl)
- 基于 Yup 和它的 meta 属性,构建了统一的表格/表单配置结构,大量减缓冗余配置 → 原本不同的地区有独立的配置,管理非常的困难,现在重构为声明式实现,如:
- 后端验证协作:维护 Spring Boot 校验模块,确保 UI 与后端验证规则一致
基于 message factory + Kafka event pool 实现事件驱动的跨端校验与数据流转 - 工具链开发:基于 Electron 实现桌面端 CSV 导出工具,支持 PostgreSQL 多环境连接、schema 差异检测及本地配置管理
- 自动化协作:与 QA 团队配合,辅助编写 Cypress UI 自动化测试,保障关键流程的稳定与回归能力
- **GraphQL 架构探索(POC 阶段):**配合团队评估使用 GraphQL 简化复杂配置结构的可行性,探索其在 Enum Store 与 reference data 聚合场景下的表达能力与查询灵活性
- 使用轻量客户端
graphql-request
,实现基本 query/fetch 流程 - 当前仍处于早期验证阶段,尚未替换原有 REST 接口,但相关 POC 已有 remote 分支为后续演进做准备
- 使用轻量客户端
- AI Chatbot 功能探索(POC 阶段):配合 AI 团队进行 LangChain Chatbot 的原型验证,目标是借助 LLM 模型提升本地 CSV 数据的查询/处理能力。该功能目前运行于隔离的 Sandbox 环境,仅用于架构与 prompt 实验
- 基于团队提供的 AI Chat 模板(Python)
- 利用 AWS S3 提供的连接模板,从远端 bucket 拉取结构化 CSV,并读取为 Pandas DataFrame
- 将 prompt + DataFrame 传入 LangChain 中,生成执行 Python 代码片段
- 转译 + 执行模型生成的 Python 代码,用于数据清洗与统计提取
- 当前支持简单自然语言提问(如 “在模型 A 与 B 中,属性 C 和 D 之间是否有关系”),结果由 LLM 翻译为 Pandas 操作代码并返回清洗结果
通过上述工作,项目实现了跨地区配置统一、前后端验证协同与工具化高效导出,有效降低了后续维护与协作成本
电商平台(MERN 项目,隶属五百强零售集团)
关键词:MERN Stack, Lazy Loading, JWT, 安全中间件
B 端电商系统,涵盖前后台一体化管理
- 使用 React 实现多商户前台 UI 与后台管理面板
- 应用 Redux + Lazy Loading 优化模块加载,提升初始加载速度
- 后端使用 Express + JWT 实现登录认证、token 刷新,主要负责用户登录验证及产品模块
- 集成 Helmet、XSS-Clean、HPP 等中间件,提升 Express 项目基础安全性
表单自动化平台(内部 SaaS 工具,五百强制造企业)
关键词:form.io, 表单数字化, APAC 多区域协作, 环境友好型系统
使用 form.io 实现纸质流程的电子化,显著减少纸张使用;避免补录/誊抄等造成的误差以提升数据精确值。同时,计划是通过 SaaS 平台和初/中期的设计实现,使 BA 可以自行设计/实现表单,摆脱对开发的依赖,并与客户原有系统(如 SharePoint)集成,打通数据流
职责:
- 参与多个核心业务表单的配置与开发,实现动态字段、表单联动与多级审批流
- 基于 form.io 的规则引擎,定制字段校验与审批流程,如动态必填、条件显示、流程分支
- 整理表单配置文档与操作指引,帮助团队和业务方提升上线效率
- 与业务分析团队(BA)合作,将纸质业务流抽象为可配置表单模板,提升表单复用率与可维护性
- 实现多种登录方式,AML,Auth0 - 测试/POC 阶段
- 参与商讨 express 的实现,作为中台更好的聚合当前的数据,以便传到已有的 pipeline(Sharepoint)- 测试/POC 阶段
物流重构平台(APAC 区头部托运公司)
关键词:老旧代码重构, 前端工程体系建立, UI/状态管理优化
与后端紧密合作,将原始 .NET MVC 项目迁徙为前后端分离功能,后端依旧维持在 .NET 中,前端则使用 React 实现,使得嵌入 drupal (CMS) 的过程更加的简易与模块化
职责:
- 使用 redux 和 redux-thunk 建立统一状态管理
- 使用 module.css 对 CSS 进行模块化管理,避免样式污染
- 抽象业务逻辑,开发了类似 react-form 的动态表单组件,支持通过表单定义一键生成 UI、onChange handler 与校验规则,显著提高表单开发效率
- 发现前端使用
POST
+DELETE
代替PATCH
,察觉 RESTful 实现的缺失,与后端合作完成完善了对应的业务逻辑,减少 payload 和 request 数量
早期项目与实习经历
某某科技(已凉凉):使用 Java + Spring MVC + JSP 构建内部管理系统,初步了解后端框架结构与 MVC 模式。
实习:参与测试流程与小型模块开发,使用 Java + Spring MVC + HTML5,侧重于代码规范与项目协作流程。
个人电商项目(Multi-Vendor 电商平台,独立开发)
关键词:MERN Stack, TurboRepo, TypeScript, RBAC, Token Refresh, 多商户支持, LLM 规划, TS Decorator, 架构优化
完全独立开发,技术栈覆盖全栈主流方案,突出架构与自动化能力提升
- 构建 Multi-Vendor 电商平台,支持卖家入驻、商品上架、购物车管理、订单处理等完整业务流程。
- 前端使用 React + Redux Toolkit + RTK Query + Tailwind CSS,抽象出复用性组件与模块化页面布局。
- 后端使用 TypeScript + Express + MongoDB,重构为
routes + controller + service
三层架构,采用ts-node
实现 HMR - 引入 RBAC(基于角色的权限控制),配合 JWT 实现登录、Token 刷新、访问限制控制。
- 项目采用 TurboRepo 组织前后端 monorepo,提升代码管理与部署效率。
相关文章:
Fullstack 面试复习笔记:项目梳理总结
Fullstack 面试复习笔记:项目梳理总结 之前的笔记: Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理Fullstack 面试复习笔记:Java 基础语法 / 核心特性体系化总结 这篇笔记主自用,系统地梳理一下最近…...

星闪开发之Server-Client 指令交互控制OLED灯案例
系列文章目录 星闪开发之Server-Client 指令交互控制OLED灯案例 文章目录 系列文章目录前言一、核心流程服务端客户端 二、图片资源三、源代码四、在Hispark Studio中配置将sle_oled-master文件夹下的相sle_oled放在peripheral文件夹下。peripheral目录下的 Kconfig文件中添加…...

MySQL补充知识点学习
书接上文:MySQL关系型数据库学习,继续看书补充MySQL知识点学习。 1. 基本概念学习 1.1 游标(Cursor) MySQL 游标是一种数据库对象,它允许应用程序逐行处理查询结果集,而不是一次性获取所有结果。游标在需…...
《前端面试题:CSS有哪些单位!》
CSS单位大全:从像素到容器单位的前端度量指南 精通CSS单位是构建响应式、灵活布局的关键技能,也是面试中的必考知识点 一、CSS单位的重要性与分类 在网页设计中,CSS单位是控制元素尺寸、间距和定位的基础。不同的单位提供了不同的计算方式和…...

[ctfshow web入门] web80
信息收集 过滤了php和data if(isset($_GET[file])){$file $_GET[file];$file str_replace("php", "???", $file);$file str_replace("data", "???", $file);include($file); }else{highlight_file(__FILE__); }解题 大小写…...

【设计模式-4.5】行为型——迭代器模式
说明:本文介绍设计模式中,行为型设计模式之一的迭代器模式。 定义 迭代器模式(Iterator Pattern),也叫作游标模式(Cursor Pattern),它提供一种按顺序访问集合/容器对象元素的方法&…...

C++_核心编程_继承中的对象模型
继承中的对象模型 **问题:**从父类继承过来的成员,哪些属于子类对象中? * 结论: 父类中私有成员也是被子类继承下去了,只是由编译器给隐藏后访问不到 */ class Base { public:int m_A; protected:int m_B; private:int…...

使用cephadm离线部署reef 18版并配置对接openstack
源 curl --silent --remote-name --location https://download.ceph.com/rpm-squid/el9/noarch/cephadm chmod x cephadm./cephadm add-repo --release reef监视节点 离线下载 apt-get --download-only install ceph ceph-mon ceph-mgr ceph-commonmkdir /reef/mon mv /var/…...
Redis最佳实践——性能优化技巧之缓存预热与淘汰策略
Redis在电商应用中的缓存预热与淘汰策略优化 一、缓存预热核心策略 1. 预热数据识别方法 热点数据发现矩阵: 维度数据特征发现方法历史访问频率日访问量>10万次分析Nginx日志,使用ELK统计时间敏感性秒杀商品、新品上线运营数据同步关联数据购物车关…...

2024年数维杯国际大学生数学建模挑战赛D题城市弹性与可持续发展能力评价解题全过程论文及程序
2024年数维杯国际大学生数学建模挑战赛 D题 城市弹性与可持续发展能力评价 原题再现: 中国人口老龄化趋势的加剧和2022年首次出现人口负增长,表明未来一段较长时期内我国人口将呈现下降趋势。这一趋势必将影响许多城市的高质量和可持续发展,…...
3D Gaussian splatting 06: 代码阅读-训练参数
目录 3D Gaussian splatting 01: 环境搭建3D Gaussian splatting 02: 快速评估3D Gaussian splatting 03: 用户数据训练和结果查看3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云3D Gaussian splatting 05: 代码阅读-训练整体流程3D Gaussian splatting 06: 代码…...

QT聊天项目DAY13
1. 重置密码 重置密码label也要实现浮动和点击效果,所以将忘记密码这个标签提升为ClickedLabel 1.1 ClickedLabel的复用 由于样式表(.qss) 文件中可以写入多个控件的状态UI,所以为了ClickedLabel能够复用,将成员变量的初始化方式修改为函数…...

Web3如何重塑数据隐私的未来
在这个信息爆炸的时代,数据隐私已成为我们不得不面对的严峻问题。Web3,作为下一代互联网的代表,以其去中心化、用户主权和数据安全等特点,正在重塑数据隐私的未来。它不仅仅是技术的革新,更是对个人隐私保护理念的一次…...

【鸿蒙】HarmonyOS NEXT之如何正常加载地图组件
1、不支持模拟器,需要真机! 2、Map地图需要在AGC上申请权限,需要在AGC上创建对应的项目 地址: AppGallery Connect 2.1 AGC中项目创建 2.1.1 添加项目 2.1.2 起个名字 2.1.3 添加应用: 2.1.4 选择HarmonyOS APP&…...

前端框架进化史
本内容是对 You’ll Never Manually Update the DOM Again // Here’s Why 内容的翻译与整理。 你再也不需要手工更新DOM, 以下是原因 现代 JavaScript 框架,如 React、Vue、Svelte、Solid、Quick,以及本周推出的其他 786 个框架,都试图做一些…...
“轻量应用服务器” vs. “云服务器CVM”:小白入门腾讯云,哪款“云机”更适合你?(场景、配置、价格对比解析)
更多云服务器知识,尽在hostol.com 当你第一次踏入腾讯云这个“数字百货大楼”,面对琳琅满目的“云产品”,是不是有点眼花缭乱,特别是看到“轻量应用服务器”和“云服务器CVM”这两位都号称能帮你“安家落户”的“云主机”时&…...
day63—回溯—全排列(LeetCode-46)
题目描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2: 输入&#x…...

(二)stm32使用4g模块(移远ec800k)连接mqtt
下面代码是随手写的,没有严谨测试仅供参考测试 uint8_t msgBuf[200]{"msg from mcu"}; uint8_t txBuf[250]{0}; uint16_t msgid0; uint16_t mqttTaskState0; uint16_t t100msCount0; uint8_t sendFlag10; uint8_t sendFlag20; void t100msTask1(void) { …...

防火墙iptables项目实战
目录 一、网络规划 三、环境准备与检测 1、firewall (1)配置防火墙各大网卡ip并禁用firewalld和selinux (2)打开firewall路由转发 2、PC1(内网) (1)配置ip并禁用firewalld和s…...

webpack继续学习
认识PostCSS工具 PostCSS是一个通过JS来转换样式的工具,这个工具可以帮助我们进行一些CSS的转换和适配,比如自动添加浏览器前缀,css样式的重置 实现这些功能需要借助于PostCSS对应的插件 自动添加浏览器前缀需要: npm install…...

Scrapy爬虫框架Spiders爬虫脚本使用技巧
我们都知道Scrapy是一个用于爬取网站数据、提取结构化数据的Python框架。在Scrapy中,Spiders是用户自定义的类,用于定义如何爬取某个(或某些)网站,包括如何执行爬取(即跟踪链接)以及如何从页面中…...

PowerBI企业运营分析—全动态盈亏平衡分析
PowerBI企业运营分析—全动态盈亏平衡分析 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 该平台通过整合多源数据,实现关键指标的实时监控,从而迅速洞察业务动态,精准…...

docker的基本命令
容器的三大组成 镜像image 一个静态文件,特点:分层结构,不可更改 容器container 镜像运行的结果,容器可以修改,运行完后直接停止 仓库registry 用来存放镜像文件的地方 容器的常用命令介绍 关于镜像的命令 docker …...

【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!
在管理 Web 服务器时,确保数据安全且在发生故障时能够快速恢复至关重要,备份和镜像 Web 服务器数据最可靠的方法之一是使用 rsync。 Rsync 工具可以帮助在两台服务器之间同步文件和目录,非常适合用于创建 Web 服务器数据的备份和镜像。 下面…...
实时通信RTC与传统直播的异同
实时通信(RTC)与直播虽然在音视频传输领域密切相关,但设计目标和实现原理是存在显著差异的。 一、核心联系 共同目标:均需实现音视频数据的采集、编码、传输与播放。技术重叠:使用相似的编码标准(如H.264/…...
Python-正则表达式(re 模块)
目录 一、re 模块的使用过程二、正则表达式的字符匹配1. 匹配开头结尾2. 匹配单个字符3. 匹配多个字符4. 匹配分组5. Python 代码示例 三、re 模块的函数1. 函数一览表2. Python 代码示例1)search 与 finditer2)findall3)sub4)spl…...

AgenticSeek 本地部署教程(Windows 系统)
#工作记录 Fosowl/agenticSeek:完全本地的 Manus AI。 部署排错参考资料在文末 或查找往期笔记。 AgenticSeek 本地部署教程(Windows 系统) 一、环境准备 1. 安装必备工具 Docker Desktop 下载地址:Docker Desktop 官网 安装后启…...

基于 qiankun + vite + vue3 构建微前端应用实践
核心内容摘要 技术栈组合 采用 Vite Vue3 Qiankun 构建微前端架构主应用和子应用独立开发部署,通过 Qiankun 集成 2. 主应用关键配置通过 registerMicroApps 注册子应用,配置路由匹配规则(activeRule)使用…...
VR教育:开启教育新时代的钥匙
VR 教育,即虚拟现实教育,是将虚拟现实技术(Virtual Reality,简称 VR)应用于教育领域的一种创新教育模式。它借助计算机技术、图形图像技术、传感器技术等,创建出高度逼真的虚拟学习环境,让学生通过头戴式显示设备、手柄…...

机器学习:逻辑回归与混淆矩阵
本文目录: 一、逻辑回归Logistic Regression二、混淆矩阵(一)精确率precision(二)召回率recall(三)F1-score:了解评估方向的综合预测能力(四)Roc曲线…...