⚠️温馨提示: 文档中包含【1个】暂不支持的区域,请通过搜索关键字【暂不支持的文档区域】进行后续处理
很多同学可能第一次来,我之前分享了很多公开课,希望对你的技术成长有帮助!
免费分享都在这里,需要 文档和配套视频回放找咨询老师 领取~
【飞书文档】ESLint 前端编码规范化与原理剖析,特邀字节大佬分享团队代码质量把控细节
【飞书文档】Notion 与飞书文档协同方案精析,字节前端专家传授百万年薪架构师级项目重难点 飞书文档编辑器原理续,进阶
【飞书文档】Ant Design 组件库架构设计与开发实践,高级前端专家带你掌握基建面试技巧 组件库与团队基建面试必看
【飞书文档】Taro、Tauri 多端开发实践与原理剖析,《Taro 多端开发权威指南》作者带你悟透多端框架原理 多端开发涨薪必学
【飞书文档】Nest 服务端开发与原理深度剖析,《NestJS 实战》作者带你领略框架设计之美 全栈进阶,企业级框架
【飞书文档】Babel 与编译原理详解,字节高级前端专家带你从零实现飞书表格公式执行器
【飞书文档】服务端渲染(SSR)与前后端同构技术原理揭秘,字节前端专家带你光速进阶全栈 进阶必学
【飞书文档】大数据可视化引擎与数字孪生平台设计浅析,字节架构师:一起来剖析 DataWind 数据洞察平台架构之道
【飞书文档】飞书文档协同编辑器技术揭秘,特邀字节架构师分享富文本编辑器方案细节
【飞书文档】前端性能与异常监控平台全链路设计与实践,字节架构师:掌握这整套拿个 40K+ 不在话下吧
【飞书文档】字节面试专场——中厂在职学员冲击大厂 30K+,看看面试官如何评价 大厂模拟面试,问得很深慎看
【飞书文档】冲击中大厂筹备与涨薪突击最优方案,特邀字节面试官带你体验大厂面试全流程
【飞书文档】Webpack 原理深度解读与面试专项突击,字节面试官带你手撕难缠打包构建面试原理题 工程化与构建原理深入
【飞书文档】脚手架/CLI 工具原理与开发实践,特邀字节前端专家带你体悟大厂团队基建与研发工作流 团队基建必看
【飞书文档】Vite 构建过程与源码深度剖析,你怎么也想不到一线大厂工程化构建面试会问这么深!
【飞书文档】Vue3 源码深度剖析,字节面试官教你轻松拿捏高级前端专家面试框架原理题
【飞书文档】React18 源码深度剖析,字节面试官教你轻松拿捏高级前端专家面试框架原理题
【飞书文档】前端破局 AI 应用开发,特邀字节大佬分享字节系 AI 场景落地应用与 AI 引擎编排流程 探索前端新方向同学福音
【飞书文档】高级前端专家如何做性能优化?特邀字节大佬细数飞书应用优化细节(二)【内部培训版】
【飞书文档】小小微前端,轻松拿捏,特邀字节大佬开讲微前端架构与源码剖析【内部培训版】 35K+ 同学必看
【飞书文档】高级前端专家如何做项目架构与工程化设计? 特邀字节大佬细数字节开源项目架构细节【超详细内培版】
【飞书文档】高级前端专家如何做性能优化?特邀字节大佬细数飞书应用优化细节【超详细内培版】
【飞书文档】面试被算法干吐了?字节大佬带你突破极限,冲击 30K+ 必掌握算法与 WebAssembly 技术 冲刺年包 50W+ 同学必看
【飞书文档】备战金九银十,进阶大前端,涨薪全突破! 跳槽涨薪需求同学必看
- 【 初中级 】之前项目怎么部署的?有用过 CI/CD 吗?简单说一下部署的过程?
- 【 中高级 】Docker 有没有使用过,简单说说 Docker 使用与 Dockerfile 常见配置
- 【 专家级 】如果你是全栈开发 Leader,请你基于 Docker 设计构建部署流程,前端、服务端、数据库等基础服务
【 初中级 】之前项目怎么部署的?有用过 CI/CD 吗?简单说一下部署的过程? |
- 理解传统部署方式的流程与挑战。
- 掌握 CI/CD 的核心概念及其在现代开发中的作用。
- 学会将项目部署迁移到 CI/CD 流程的最佳实践。
传统项目部署方式回顾
手动部署流程
代码开发完成后 :
- 本地打包代码(如
npm build或mvn package)。 - 将代码通过 FTP、SSH 等方式上传到服务器。
- 本地打包代码(如
在服务器上手动配置运行环境 :
- 安装依赖(如
npm install)。 - 配置环境变量。
- 启动服务(如使用
pm2、systemctl或直接运行node等命令)。
- 安装依赖(如
挑战与问题
效率低下 :
- 每次更新需要重复手动操作。
易出错 :
- 人为疏忽可能导致环境配置出错。
不可回滚 :
- 出现问题时无法快速恢复到上一版本。
多人协作困难 :
- 部署缺乏标准化,团队成员之间操作步骤不一致。
CI/CD 的核心概念
什么是 CI/CD?
CI (持续集成) :
- 每次代码变更都会触发自动构建和测试,确保新代码可以与现有代码无缝集成。
CD (持续交付/部署) :
- 将通过测试的代码自动部署到生产或预生产环境。
CI/CD 的工作流程
代码提交 :
- 开发者将代码提交到 Git 仓库(如 GitHub、GitLab)。
CI 阶段 :
- 自动触发构建脚本。
- 自动运行单元测试、集成测试。
CD 阶段 :
- 自动部署到测试环境。
- 最终自动部署到生产环境(可选的人工审批流程)。
工具链介绍
持续集成工具:
- Jenkins、GitLab CI、GitHub Actions、Travis CI。
持续交付工具:
- ArgoCD、Spinnaker。
部署管理工具:
- Docker Compose、Kubernetes。
我主导将传统部署迁移到 CI/CD【面试核心点】
配置代码仓库与 CI/CD 工具
- 在 Git 仓库中创建
.yml配置文件。 - 示例:使用 GitHub Actions。
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install dependencies
run: npm install
- name: Build application
run: npm run build
- name: Run tests
run: npm test
- name: Deploy to production
run: echo "Deploy scripts here"
基于 Docker 的自动化部署
- 使用 Dockerfile 构建容器镜像 :
FROM bitnami/node:latest
WORKDIR /app
COPY package*.json ./
# RUN npm install
COPY . .
# RUN npm run build
CMD ["npm", "start"]
- 构建和运行容器 :
docker build -t miaoma-base-server .
docker run -d --name miaoma-base-server -p 3000:3000 miaoma-base-server
基于 Kubernetes 的服务编排(了解)
首先需要安装 Kubernetes、minikube
- 编写 Deployment 文件 :
apiVersion: apps/v1
kind: Deployment
metadata:
name: miaoma-node-server-deployment
spec:
replicas: 3
selector:
matchLabels:
app: miaoma-node-server
template:
metadata:
labels:
app: miaoma-node-server
spec:
containers:
- name: miaoma-node-server-container
image: miaoma-base-server
ports:
- containerPort: 3000
env:
- name: NODE_ENV
value: "production"
- 编写 Service 文件
apiVersion: v1
kind: Service
metadata:
name: miaoma-node-server-service
spec:
selector:
app: miaoma-node-server
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: NodePort
- 部署到 Kubernetes 集群 :
minikube start
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
# 查看 Deployment 状态
kubectl get deployments
# 查看 Pod 状态
kubectl get pods
# 查看 Service 状态
kubectl get services
CI/CD 部署的实际落地回顾
传统方式 :
- 手动打包。
- FTP 上传到服务器。
- 启动服务。
CI/CD 改进 :
开发者提交代码到 GitHub。
GitHub Actions 自动触发:
- 代码拉取。
- 单元测试。
- 构建镜像并推送到 Docker Registry。
Kubernetes 自动拉取新镜像并更新部署。
【 中高级 】Docker 有没有使用过,简单说说 Docker 使用与 Dockerfile 常见配置 |
Docker 基础入门
定义 :一种开源的容器化平台,提供容器运行环境,简化开发和部署。
优势 :
- 环境一致性:避免“运行在我电脑上”的问题。
- 高效资源利用:轻量级容器,快速启动。
- 易于扩展:支持微服务架构。
核心概念 :
- 镜像(Image) :容器的模板。
- 容器(Container) :运行时的独立环境。
- 仓库(Repository) :存储和管理镜像。
Docker 的安装
安装 Docker
系统要求 :
- 操作系统:Linux(推荐 Ubuntu)、Windows、macOS。
- CPU:至少 64 位。
- 内存:最低 4GB。
安装步骤 :
- Linux (以 Ubuntu 为例):
sudo apt update sudo apt install docker.io sudo systemctl start docker sudo systemctl enable dockerWindows/Mac :
- 下载 Docker Desktop。
- 按照向导安装并启用 WSL2(Windows)。
- 启动 Docker Desktop,完成初始化。
安装验证 :
docker --version
docker run hello-world
Docker 的基本使用
常用命令
镜像相关 :
- 拉取镜像:
docker pull <image>:<tag> - 查看本地镜像:
docker images - 删除镜像:
docker rmi <image_id>
- 拉取镜像:
容器相关 :
- 创建并运行容器:
docker run -d --name <name> <image> - 停止容器:
docker stop <container_id> - 删除容器:
docker rm <container_id>
- 创建并运行容器:
网络和卷 :
- 查看网络:
docker network ls - 创建数据卷:
docker volume create <volume_name>
- 查看网络:
镜像和容器的生命周期
从镜像到容器:
- 拉取镜像 → 创建容器 → 运行容器 → 停止/重启 → 删除。
示例:启动一个 Nginx 容器:
docker run -d -p 8080:80 nginx
Dockerfile 详解(Node.js 示例)
什么是 Dockerfile?
定义:用于构建镜像的文本文件,包含了一系列指令。
Dockerfile 的用途 :
- 自定义镜像。
- 简化 CI/CD 流程。
Dockerfile 的基本结构
# 基础镜像
FROM <base_image>
# 维护者信息
LABEL maintainer="<your_email>"
# 复制文件
COPY <src> <dest>
# 安装依赖
RUN <command>
# 暴露端口
EXPOSE <port>
# 容器启动时的命令
CMD ["<command>"]
常见指令详解
- FROM :指定基础镜像。
FROM node:16-alpine
- RUN :执行命令并生成新层。
RUN npm install
- COPY/ADD :复制本地文件到镜像中。
COPY . /app
CMD/ENTRYPOINT :
CMD:容器启动时默认执行的命令。ENTRYPOINT:容器启动时不可替代的命令。
CMD ["node", "server.js"]
- EXPOSE :声明暴露的端口。
EXPOSE 3000
- WORKDIR :设置工作目录。
WORKDIR /app
示例 Dockerfile
- 构建一个简单的 Node.js HTTP Server:
# 使用官方 Node.js 轻量镜像作为基础镜像
FROM node:16-alpine
# 设置工作目录
WORKDIR /app
# 复制 package.json 和 package-lock.json 到容器中
COPY package*.json ./
# 安装依赖
RUN npm install
# 复制应用代码到容器中
COPY . .
# 暴露服务端口
EXPOSE 3000
# 启动服务
CMD ["node", "server.js"]
示例应用代码
server.js:简单的 HTTP Server
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, Docker!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
package.json:
{
"name": "miaoma-node-app",
"version": "1.0.0",
"description": "A simple Node.js app to demonstrate Docker",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {}
}
构建与运行
1. 构建镜像
docker build -t my-node-app .
2. 运行容器
docker run -d -p 3000:3000 my-node-app
3. 测试服务
- 打开浏览器或使用
curl测试:
curl http://localhost:3000
- 结果:
Hello, Docker!
优化与最佳实践
- 使用多阶段构建 (适用于大型项目):
# 构建阶段
FROM node:16-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
# 运行阶段
FROM node:16-alpine
WORKDIR /app
COPY --from=builder /app .
EXPOSE 3000
CMD ["node", "server.js"]
【 专家级 】如果你是全栈开发 Leader,请你基于 Docker 设计构建部署流程,前端、服务端、数据库等基础服务 |
全栈开发中,基于 Docker 的部署流程可以有效简化环境配置,提高系统的可维护性和扩展性。
接下来我们详细介绍如何使用 Docker 和 Docker Compose 来搭建前端、服务端、数据库的整体部署流程。
服务盘点
- 前端服务 :使用 Nginx 部署前端静态资源,确保快速响应和高效缓存。
- 服务端 :基于 Node.js 的应用程序,负责业务逻辑和 API 接口。
- 数据库 :采用 bitnami/postgresql 镜像,存储和管理持久化数据。
Docker Compose 配置结构
目录结构
project/
├── frontend/
│ ├── dist/ # 前端打包后的静态文件
│ └── Dockerfile
├── backend/
│ ├── app/ # Node.js 应用代码
│ └── Dockerfile
├── db-data/ # 数据库持久化存储目录
└── docker-compose.yml # Docker Compose 配置文件
前端服务的配置
Dockerfile
在 frontend/ 目录下创建 Dockerfile ,内容如下:
FROM nginx:latest
COPY dist/ /usr/share/nginx/html
EXPOSE 80
Docker Compose 配置
在 docker-compose.yml 中定义前端服务:
version: '3.8'
services:
frontend:
build:
context: ./frontend
ports:
- "8080:80"
networks:
- app-network
服务端配置
Dockerfile
在 backend/ 目录下创建 Dockerfile :
FROM node:16
WORKDIR /app
COPY app/ .
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]
Docker Compose 配置
services:
backend:
build:
context: ./backend
ports:
- "3000:3000"
depends_on:
- database
environment:
- DB_HOST=database
- DB_USER=postgres
- DB_PASSWORD=example
- DB_NAME=mydb
networks:
- app-network
数据库配置
使用官方 Bitnami/PostgreSQL 镜像
services:
database:
image: bitnami/postgresql:latest
ports:
- "5432:5432"
environment:
- POSTGRESQL_USERNAME=postgres
- POSTGRESQL_PASSWORD=example
- POSTGRESQL_DATABASE=mydb
volumes:
- db-data:/bitnami/postgresql
networks:
- app-network
volumes:
db-data:
多服务编排与网络配置
网络设置
确保所有服务可以通过 Docker Compose 的网络进行通信:
networks:
app-network:
driver: bridge
启动验证
启动服务
在项目根目录运行:
docker-compose up --build
验证服务
- 前端 :访问
http://localhost:8080 - 服务端 :访问
http://localhost:3000 - 数据库 :通过工具连接 PostgreSQL。
增加数据库操作与接口
以下是基于原生 http 模块和 pg 实现的一个简单的增和查功能示例,接口名为 miaoma 。
数据库准备
CREATE TABLE miaoma (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
description TEXT
);
安装依赖
安装 pg 模块:
npm install pg
代码实现
创建一个文件 server.js :
const http = require('http');
const { Pool } = require('pg');
// 创建数据库连接池
const pool = new Pool({
user: 'your_user', // 替换为你的数据库用户名
host: 'localhost', // 替换为你的数据库地址
database: 'your_database', // 替换为你的数据库名称
password: 'your_password', // 替换为你的数据库密码
port: 5432, // 默认 PostgreSQL 端口
});
// 请求解析工具
const parseBody = (req) =>
new Promise((resolve, reject) => {
let body = '';
req.on('data', chunk => (body += chunk.toString()));
req.on('end', () => resolve(body));
req.on('error', err => reject(err));
});
// 创建 HTTP 服务器
const server = http.createServer(async (req, res) => {
// 设置通用响应头
res.setHeader('Content-Type', 'application/json');
if (req.method === 'POST' && req.url === '/miaoma') {
// 增加数据
try {
const body = await parseBody(req);
const { name, description } = JSON.parse(body);
const result = await pool.query(
'INSERT INTO miaoma (name, description) VALUES ($1, $2) RETURNING *',
[name, description]
);
res.writeHead(201);
res.end(JSON.stringify({ message: 'Data added successfully', data: result.rows[0] }));
} catch (err) {
console.error(err);
res.writeHead(500);
res.end(JSON.stringify({ error: 'Failed to add data' }));
}
} else if (req.method === 'GET' && req.url === '/miaoma') {
// 查询数据
try {
const result = await pool.query('SELECT * FROM miaoma');
res.writeHead(200);
res.end(JSON.stringify(result.rows));
} catch (err) {
console.error(err);
res.writeHead(500);
res.end(JSON.stringify({ error: 'Failed to fetch data' }));
}
} else {
// 处理未定义的路由
res.writeHead(404);
res.end(JSON.stringify({ error: 'Not Found' }));
}
});
// 启动服务器
const PORT = 3000;
server.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
测试接口
- 添加数据
使用 cURL 或 Postman 发送 POST 请求:
curl -X POST http://localhost:3000/miaoma \
-H "Content-Type: application/json" \
-d '{"name":"妙码学院","description":"让进取的人更具职业价值"}'
响应示例 :
{
"message": "Data added successfully",
"data": {
"id": 1,
"name": "Example Name",
"description": "This is an example description."
}
}
- 查询数据
使用 cURL 或浏览器访问 GET 接口:
curl -X GET http://localhost:3000/miaoma
响应示例 :
[
{
"id": 1,
"name": "妙码学院",
"description": "让进取的人更具职业价值"
}
]
持续集成与优化建议
- 环境变量管理 :使用
.env文件统一配置。 - 镜像优化 :精简 Dockerfile 中的基础镜像,减少构建时间。
- 日志管理 :使用
docker logs或 ELK 堆栈进行日志监控。 - 自动化部署 :结合 CI/CD 工具(如 GitHub Actions 或 Jenkins)实现全流程自动化。
示例完整 docker-compose.yml
version: '3.8'
services:
frontend:
build:
context: ./frontend
ports:
- "8080:80"
networks:
- app-network
backend:
build:
context: ./backend
ports:
- "3000:3000"
depends_on:
- database
environment:
- DB_HOST=database
- DB_USER=postgres
- DB_PASSWORD=example
- DB_NAME=mydb
networks:
- app-network
database:
image: bitnami/postgresql:latest
ports:
- "5432:5432"
environment:
- POSTGRESQL_USERNAME=postgres
- POSTGRESQL_PASSWORD=example
- POSTGRESQL_DATABASE=mydb
volumes:
- db-data:/bitnami/postgresql
networks:
- app-network
volumes:
db-data:
networks:
app-network:
driver: bridge
简历优化(35K+ 简历模板)
技能描述
熟练掌握 HTML、CSS、JavaScript、Typescript 以及 OOP、FP、 AOP 等设计思想
掌握样式体系构建与落地,对 css 预编译、css in js、module css 以及 utility-first CSS 有深入研究,并从零改良过样式体系以支持 SSR、SSG
熟悉 React、Vue 相关技术栈,熟悉 React、Vue 及相关技术框架的实现原理
掌握构建工具 Webpack、Vite 等,掌握编译工具 Babel,并深入理解其原理,并参与 Rspack 构建
丰富的数据可视化经验,熟悉 Canvas、svg 开发范式,理解 Echarts、Antv 原理,能根据业务需求基于 d3、zrender 开发自定义渲染引擎
丰富的跨端开发经验,熟练使用 Taro、Flutter、React-Native 开发跨端应用,对构建 hybird App 有丰富经验,深入理解跨端开发编译原理
基于 Node.js 开发脚手架、打包构建优化工具及中间件服务
掌握常用设计模式、算法与安全知识,追求开发高质量、高可维护性代码,追求极致产品体验
团队管理经验,并在项目架构设计与性能优化方面具有丰富经验
算法与编程技术
- 精通各种算法题的分类及解决方法,包括排序与查找、数据结构、动态规划、贪心算法、回溯算法、分治算法、图论算法、数学算法等。
- 重点掌握动态规划的基本概念、解题步骤和经典题目。
3D 数字孪生平台开发经验
- 熟练使用 WebGL 和 WebAssembly 技术,开发高效的 3D 渲染引擎。
- 精通正射影像和倾斜摄影技术,具备 Tile 和模型(包括白膜和精模)的处理经验,能够使用 Blender 进行模型制作。
- 熟悉材质、光效和粒子系统的实现与优化。
全面性能优化能力
- 具备打包构建优化经验,熟练使用 Webpack 进行模块打包,掌握 chunk、treeshaking、happypack、cache-loader 等优化技巧,并使用 Webpack Module Federation 进行模块联邦管理。
- 精通资源优化,能够有效进行图片、字体压缩,管理请求队列,并通过 OSS 和 CDN 提升资源加载速度。
- 具有应用性能优化经验,包括数据结构优化和应用模块更新。
- 深入了解缓存机制,熟悉强缓存(Expiration、Cache-Control)、协商缓存(Etag)和策略缓存(Service-Worker)的配置与管理。
项目描述
这个环节至关重要,很多同学不重视,简历随便写一写就开始投递了,结果投出去几百份可能一家公司面试都没有,结果就在怀疑前端行情出问题了
STAR 法则:
- 遇到了什么问题 question,需求
- 怎么评估解决方案,方案对比,方案落地 react 状态管理(redux、mobx、jotai、recoil)Vue3 -> Pinia
- 具体方案落地
- 结果反思,细节优化思考
大家先看这段描述:
技术栈:Java、Vue2、echarts、WEui、BaiduMap、JavaScript 、HTTP数据库:MySQL管理工具:SVN
责任描述:
1)产品前端研发负责人,主要负责整体样式沟通,样式调配实现;门户、管理平台、移动端、智端、可视化等前端内容实现;
2)实现组织管理、人员管理、党员关系转接、待办通知、绩效考核(复杂功能算法实现)、发展党员(25个流程)、可视化等主体功能,兼容性优化、适配1920*1080屏幕以及响应式布局实现;
3)相关功能开发,包含前后端、数据库;
4)门户框架搭建、门户整体设计、后端接口、门户前端 UI 实现等;
5)微信小程序框架搭建、小程序页面设计及开发、知识图谱技术预演;
6 )项目经理工作辅助,包含需求沟通、UI设计沟通、交付材料项目经历整理、前端代码质量管理、部分功能设计。
深度优化一下
工作内容和成果
- 【 架构设计 】参与智慧管理平台整体架构设计、技术选型与方案评审,担任全栈开发,完成相关核心模块
- 【 企微开发 】对接企业微信生态,基于企微 SDK 完成平台支付、消息推送、机器人等功能开发
- 【 可视化 】主导完成平台可视化渲染引擎(可视化图表的组件,数据协议)设计与开发,基于 echarts (svgRenderer、canvasRenderer 一千万行数据的表格渲染【不能使用 虚拟滚动 】 canvas table,chunk)封装业务图表库,服务于平台可视化场景
- 【 地图开发 】使用百度地图 SDK,封装业务地图渲染器(MapRenderer),包含:地图撒点、地区数据下钻等功能
- 【 小程序与App 】基于 uniapp 实现智慧党建用户端多端开发落地,产物编译为 H5、微信小程序两端应用
- 【 团队基建 】推进团队业务组件库、图表库与基础库沉淀,完成 10+ 个业务组件沉淀,以此提升了团队协同开发效率
- 【 优化 】设计产品响应式系统,基于 media query 设计响应式端点规则,适配不同端应用的展示
- 【 自研 OA 打通 】...
STAR
【技术栈】
- Java、Vue2、ECharts、WEui、BaiduMap、JavaScript、HTTP
- 数据库 :MySQL
- 管理工具 :SVN
【产品前端研发负责人】
- 情境 (Situation) :担任产品前端研发负责人,负责门户、管理平台、移动端、智端、可视化等前端内容的实现。
- 任务 (Task) :主要任务是与设计团队沟通,调配和实现整体样式,确保产品界面的一致性和用户体验。
- 行动 (Action) :我协调设计与开发团队,定期召开样式沟通会,亲自进行样式的调配与实现,并负责不同平台和设备的前端内容开发。
- 结果 (Result) :成功实现了多个平台的前端开发工作,提升了产品的用户体验和一致性,获得了团队和用户的高度评价。
【实现复杂功能及优化】
- 情境 (Situation) :项目需要实现复杂功能算法和大规模功能模块,包括组织管理、人员管理、党员关系转接、待办通知、绩效考核、发展党员(25个流程)和可视化功能。
- 任务 (Task) :负责上述复杂功能的实现,并优化其兼容性和响应式布局。
- 行动 (Action) :通过设计和实现复杂算法,确保各模块的功能性;进行兼容性优化,使系统适配1920*1080屏幕和响应式布局。
- 结果 (Result) :成功实现并优化了所有复杂功能,系统在不同设备和分辨率下均表现良好,提高了用户操作的流畅度和满意度。
【全面功能开发】
- 情境 (Situation) :需要进行前后端和数据库的全面开发,确保系统各功能模块的无缝集成。
- 任务 (Task) :开发和实现相关功能,包括前端UI、后端接口和数据库交互。
- 行动 (Action) :采用Java、Vue2等技术,开发并调试各功能模块,与后端团队密切合作,确保接口的准确性和数据的一致性。
- 结果 (Result) :成功完成了所有功能模块的开发和集成,系统运行稳定,性能优异,受到了客户的好评。
【微信小程序开发与知识图谱预演】
- 情境 (Situation) :项目需要开发微信小程序,并进行知识图谱技术的预演。
- 任务 (Task) :负责小程序框架的搭建、页面设计及开发,同时进行知识图谱的技术预演。
- 行动 (Action) :使用WEui、JavaScript等技术,设计并开发小程序页面,进行知识图谱的技术预演和验证。
- 结果 (Result) :成功搭建了微信小程序框架,完成了页面设计和开发工作,知识图谱技术预演顺利,通过了技术验证。
【项目经理工作辅助】
- 情境 (Situation) :在项目中辅助项目经理,确保项目需求沟通顺畅,UI设计协调到位,交付材料齐全,前端代码质量高。
- 任务 (Task) :辅助项目经理进行需求沟通、UI设计沟通、交付材料整理、前端代码质量管理以及部分功能设计。
- 行动 (Action) :积极参与需求和UI设计的沟通,整理和管理项目交付材料,进行代码审查和质量管理,并参与功能设计。
- 结果 (Result) :成功辅助项目经理完成了项目的各项工作,提高了项目的开发效率和交付质量,确保了项目的顺利进行。
其实还不够,这些项目才是求职香饽饽
你可能不具备这些项目的实战经验,很多同学写了很多年管理系统,简单增删改查项目,如果不跳出这个圈子,很难在薪资上有非常大的突破!
大厂 UI 组件库(Vue3)整体设计与开发实践(monorepo 架构)
大厂业务 Hooks 库(React 18)整体设计与开发实践(从零到一的架构、规范流程)
企业级脚手架工具开发实践
企业级文档编辑器飞书文档开发实践
前端性能、异常与行为监控
3D 可视化数字孪生低代码实战 💥
- 基于 cesium(arcGis、超图) 方案的 WebGIS 开发实践
- 基于 openlayer、mapbox 开发
- 基于 WebGL 3D 可视化开发实践
年包 50W+ 薪资长线规划
核心要素
全面的技术储备
框架基础
- Vue 和 React 经验:包括 Vue3 + Typescript 和 React18(Hooks、Concurrent)
- 掌握框架原理:React 生态库(React-Router、Redux)和 Vue 生态库原理
工程化能力
- 构建工具:Webpack、Vite、Rspack、ESBuild、swc
- CI/CD 自动化:自动化构建和自动化部署
基建能力
- Node.js、命令行工具开发(Cli)
- UI 库、图表库、工具库开发
业务领域经验
- 管理系统和图表类应用
- 可视化、编辑器、云表格、低代码平台、SaaS 产品、数字孪生、三维可视化
项目经验
- 参与过至少两个大型项目,并主导过一个复杂项目
- 管理系统:包括项目搭建、技术方案选择、技术栈构建、CI/CD 流程
- 其他领域项目:如可视化、编辑器、云表格、低代码平台、SaaS 产品、数字孪生、三维可视化
面试表现
个人介绍
- 准备个人介绍草稿,涵盖基本信息、技术栈和项目重难点
STAR 法则
- 问题描述:阐述遇到的问题或需求
- 解决方案评估:方案对比与选择(如 React 状态管理:redux、mobx、jotai、recoil,Vue3 使用 Pinia)
- 方案实施:具体的实施步骤
- 反思与优化:项目反思及优化建议
面试准备
- 重点复习知识点:如 v8 内存管理、Promise A+ 规范、事件循环、this、面向对象编程原型
- 技术储备:结合项目经验展示技术在项目中的应用
学历提升
- 现有学历:大专
- 未来计划:尽快取得本科证书(不需要注明具体年限)
- 学历背景:民办学校
- 内推建议:应对学历和工作经历问题,通过内推提升机会
补足短板
项目简单,管理后台一做就是大半年,天天 CRUD
- 看开源项目(react-hook-form ts 类型、hook 处理、状态管理、架构 Provider,keyPath)
- 找一些不错的项目练手
- 拿好的项目,学习完放在简历里, 可视化、编辑器、云表格、低代码、SaaS 产品、数字孪生、三维可视化
- 1.自研:15K, 2.外包:20K ,这个火坑, 灰(供需决定)
技术栈掌握不深不广,只会用 Vue2 (Vue3 + Typescript),React18(React stack reconciler)
架构、方案设计没碰过
- React,create-react-app、umi,没有真正从零到一去设计初始化过一个项目
- Vue,Vue CLI,Vite/Webpack。Vue2 CLI 创出来项目 1. webpack、2.vite
没有专精的技能或业务
- 自驱 (假定自己是 Leader),项目的赢利点、商业价值【 可视化、编辑器、白板、团队基建、AI产品 】
- 与生俱来有些东西,好奇心、自驱力、清晰规划
- 我:管理平台,HPE(官网、后台管理),云表格(维格表、飞书云表格)、云编辑器(CKEditor 老【html string】)(语雀、【石墨文档】)
妙码学院——全程陪跑、督学、内推
⚠️ 暂不支持的文档区域,【文档小组件】
- 跨端开发 Taro(Taro 编译器 compiler、运行时 runtime)、uniapp
- 协同编辑器(文档类、画板类)wangEditor、CKEditor
- 团队基建工程(UI 库、图表库、Cli -> 产生产物 npm 包)
- 3D 可视化数字孪生 bigdata
- 低代码平台
课程体系 2.0 升级,除了基础知识夯实,融入了更多项目实战内容,包含:
企业级脚手架工具开发实践
企业级文档编辑器飞书文档开发实践
大厂 UI 组件库(Vue3)整体设计与开发实践
大厂业务 Hooks 库(React 18)整体设计与开发实践
埋点与数据监控平台实战
3D 可视化数字孪生实战 💥
- 基于 cesium 方案的 WebGIS 开发实践
- 基于 WebGL 3D 可视化开发实践
妙码学院全网独家项目实战矩阵
所有项目实战,均完全 从零到一手写 , 纯原创 ,项目架构与编码规范真一线大厂级。
微前端在分拆原子应用场景下的落地与实践
协同编辑器从零到一架构实现
推动团队基建落地
- React UI 库
- Vue Composition API 库
- 企业级脚手架
数字孪生平台整体架构设计
企业级无代码可视化平台实践(Vue3)
低代码平台设计与实现
- 编排引擎
- 流程引擎
- 编辑器
- 代码执行器与 JavaScript 沙箱
用户行为分析 SDK 及监控可视化整体实现
可视化渲染引擎设计与实现
基于 RAG / Agent 前端 AI 应用流程编排平台
不同阶段对前端人的硬性要求
以下是对您提供的内容进行权威和专业化改写的建议:
1~3年
在此阶段,重点在于评估个人的基础知识和热情。对前端基础、计算机原理、网络通信和算法等领域的要求较高。由于在此阶段难以评估业务深度,因此更多关注基础知识的掌握程度。
- 关键在于通过学术教育或网络资源加强基础知识;
- 在简历中以多种方式展示对前端的热情,展现个人潜力;
- 积极探索前沿技术,关注国内外技术动态;
- 尝试开发小型项目或参与社区开源项目;
- 建立技术博客,以输出促进知识吸收。
3~5年
此阶段通常是向成为独立工程师发展的关键时期,避免重复使用有限的经验。
关注社区中关于进阶的资料和路线,强化基础知识;
深入掌握常用框架的高级用法,探索其原理;
在业务开发中不仅完成功能,还需考虑项目结构设计、封装基础工具、设计和开发基础组件;
思考提高团队效率的方法,例如:
- 集成代码检验和风格统一插件(如 eslint、stylelint、prettier、spellcheck);
- 从工程化角度提高本地开发效率,优化webpack构建,探索esbuild、vite等工具;
- 对于多项目开发,整理差异和统一部分,建立内部脚手架以减少重复工作;
- 尝试搭建CI/CD平台,维护公司内部的通用npm包;
- 培养软技能,如沟通协作,协调各角色共同推进目标。
5年以上
进入此阶段,可能朝技术专家或管理方向发展。期望您能够独立负责高复杂度项目,突破关键技术难题。
- 负责技术调研,关注行业趋势,选择最优技术方案,具备决策能力;
- 拥有丰富的技术经验和技术储备,能够解决遇到的困难,并有自己的方法论;
- 协助或主导业务目标制定,合理推动项目达成预期效果;
- 是否具有团队领导经验,能够协调跨团队项目,处理团队成员情绪问题,解决技能分布不平衡等问题;
- 打造技术氛围,促进团队共同成长。
职业规划指导
评论区选取三位同学互动,其他同学也可以联系咨询老师,文字方式提供辅导解答。
【未知组件reminder】
