单元测试编写最佳实践
0
0
2026年7月11日
性能优化方案
// 图片懒加载
const images = document.querySelectorAll('img[data-src]')
const imageObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target
img.src = img.dataset.src
imageObserver.unobserve(img)
}
})
})
images.forEach(img => imageObserver.observe(img))
// 代码分割
const Home = () => import('./Home.vue')
const About = () => import('./About.vue')
// 防抖节流
function debounce(fn, delay) {
let timer = null
return function(...args) {
clearTimeout(timer)
timer = setTimeout(() => fn.apply(this, args), delay)
}
}
CORS跨域解决方案
const express = require('express')
const cors = require('cors')
const app = express()
app.use(cors({
origin: ['https://你的域名.com', 'http://localhost:8080'],
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization'],
credentials: true,
maxAge: 86400
}))
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*')
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
res.setHeader('Access-Control-Allow-Headers', 'Content-Type')
if (req.method === 'OPTIONS') {
return res.sendStatus(200)
}
next()
})
Nginx配置
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
API接口设计
// RESTful API 设计
const express = require('express')
const router = express.Router()
// 获取用户列表
router.get('/users', async (req, res) => {
const { page = 1, pageSize = 10 } = req.query
// ... 查询逻辑
res.json({
code: 0,
message: 'success',
data: {
list: [],
total: 0,
page: parseInt(page),
pageSize: parseInt(pageSize)
}
})
})
// 创建用户
router.post('/users', async (req, res) => {
// ... 创建逻辑
res.json({ code: 0, message: '创建成功' })
})
// 更新用户
router.put('/users/:id', async (req, res) => {
// ... 更新逻辑
res.json({ code: 0, message: '更新成功' })
})
// 删除用户
router.delete('/users/:id', async (req, res) => {
// ... 删除逻辑
res.json({ code: 0, message: '删除成功' })
})
代码重构示例
// 重构前
function calculatePrice(price, type) {
if (type === 'normal') {
return price
} else if (type === 'vip') {
return price * 0.8
} else if (type === 'svip') {
return price * 0.7
}
}
// 重构后
const priceStrategies = {
normal: price => price,
vip: price => price * 0.8,
svip: price => price * 0.7
}
function calculatePrice(price, type) {
const strategy = priceStrategies[type] || priceStrategies.normal
return strategy(price)
}
Docker常用命令
docker build -t myapp .
docker run -d -p 8080:80 --name myapp myapp
docker ps
docker ps -a
docker stop myapp
docker start myapp
docker restart myapp
docker rm myapp
docker rmi myapp
docker logs myapp
docker logs -f myapp
docker exec -it myapp bash
docker-compose up -d
docker-compose down
docker-compose logs -f
Shell脚本模板
#!/bin/bash
set -e
LOG_FILE="/var/log/deploy.log"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
log "开始部署..."
cd /var/www/app
git pull origin main
composer install --no-dev
php artisan migrate --force
log "部署完成!"
Git工作流命令
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
git status
git add .
git add -p
git commit -m "feat: 实现用户登录功能"
git commit -m "fix: 修复登录验证码BUG"
git commit -m "docs: 更新API文档"
git commit -m "refactor: 重构用户模块"
git branch
git checkout -b feature/login
git switch main
git fetch origin
git pull --rebase origin main
git push origin feature/login
git rebase main
git rebase -i HEAD~3
git stash
git stash pop
git reset --soft HEAD~1
git checkout -- file.txt
git log --oneline --graph
git diff
技术分享,欢迎评论区交流讨论。
在线咨询
上一个应该是我,我买了一年,实在没价值,...