Skip to content

技能清单

1. 处理客户端请求

  • 请求协议与方法
    • HTTP 协议:请求方法(GET、POST、PUT、DELETE)、请求头、响应头、状态码。
    • HTTPS:TLS/SSL 加密,确保数据传输的安全性。
    • 非 HTTP 协议:WebSocket、gRPC、GraphQL 等,用于特殊需求下的通信。
  • 请求路由与解析
    • 路由机制:RESTful 设计、路径参数、查询参数的处理。
    • 请求体解析:JSON、XML、表单数据、文件上传(MIME、Multipart)。
    • 请求头解析:处理用户代理、语言、认证信息、跨域头(CORS)。
  • 请求验证与过滤
    • 输入验证:必填项、格式校验、类型校验。
    • 防护机制:防止 SQL 注入、XSS、CSRF 攻击等。
    • 身份验证:Session、JWT、OAuth、API 密钥等。
  • 速率限制与缓存
    • 速率限制:防止 DDoS 攻击与过度请求。
    • 请求缓存:客户端缓存、CDN 缓存、反向代理缓存(如 Nginx)。

2. 执行业务逻辑

  • 业务流程设计
    • 分层架构:Controller 层(处理请求)、Service 层(执行业务)、Repository 层(与数据库交互)。
    • 领域驱动设计(DDD):业务模型、实体、值对象、聚合根等。
  • 中间件设计与使用
    • 权限与认证中间件:身份验证、角色授权。
    • 日志与监控中间件:日志记录、性能监控、错误处理。
    • 请求处理流程:跨域处理、请求限流、请求重试。
  • 业务逻辑与算法
    • 核心业务逻辑处理(如支付、订单、库存等)。
    • 并发控制:锁机制(悲观锁、乐观锁)、事务控制。
    • 异步任务与消息队列:通过队列系统(如 RabbitMQ、Kafka)异步处理长时间任务。
  • 事务与一致性
    • 数据库事务管理(ACID 原则)、事务隔离级别。
    • 分布式事务管理(如 Saga 模式、TCC 模式)。
    • 最终一致性:事件源、CQRS 等架构设计模式。

3. 与数据库进行数据交互

  • 数据库设计与建模
    • 关系型数据库:表设计、规范化、索引设计、外键与约束。
    • NoSQL 数据库:数据模型(文档、键值、列族、图等),适用场景与优势。
  • 数据库查询与优化
    • 复杂查询:联表查询、分组、排序、聚合操作。
    • 数据库优化:查询优化、索引使用、查询缓存、分页处理。
  • 数据库事务与锁管理
    • 事务管理:数据库 ACID 属性、事务控制(commit、rollback)。
    • 锁机制:悲观锁、乐观锁、死锁预防。
  • 数据库扩展与高可用性
    • 分库分表:水平拆分、垂直拆分。
    • 数据库复制与分布式数据库:主从复制、读写分离。
    • 数据库连接池:连接池管理,优化数据库连接使用效率。
  • 数据安全与备份
    • 数据加密:对称加密、非对称加密、哈希。
    • 数据备份与恢复:定期备份、灾难恢复方案。

4. 返回响应数据

  • 响应格式设计
    • JSON 格式响应:统一的 API 响应结构(成功、失败、错误码)。
    • HTML 响应:使用模板引擎(如 EJS、Handlebars)生成动态 HTML。
    • 文件响应:如 CSV、PDF、Excel 文件下载。
  • 响应优化与压缩
    • 响应缓存:缓存策略(浏览器缓存、CDN 缓存、代理缓存)。
    • 响应压缩:Gzip 压缩,减少响应体大小,提高传输速度。
  • 响应安全性与错误处理
    • 错误码与异常处理:设计规范的错误码,避免泄漏敏感信息。
    • 响应脱敏:确保返回数据不含敏感或隐私信息。
  • 性能与延迟优化
    • 延迟优化:API 调用并发、批量操作、异步响应。
    • 响应分页:分页查询与响应,避免大数据量一次返回。

5. 安全性

  • 认证与授权
    • 身份验证:基于 Token(JWT、OAuth2)、Session 管理、API 密钥。
    • 角色与权限控制:基于角色的访问控制(RBAC)、基于资源的权限控制(ABAC)。
  • 数据加密与安全通信
    • 加密协议:TLS/SSL(HTTPS)、数据传输加密。
    • 敏感数据存储:加密存储、哈希存储(密码保护)。
  • 防止常见漏洞
    • SQL 注入、XSS、CSRF 等攻击防护。
    • API 安全:API 密钥管理、速率限制、身份验证。
  • 日志与审计
    • 安全日志记录:敏感操作日志、审计跟踪。
    • 防篡改与防伪:确保日志的完整性与真实性。

6. 可维护性与可扩展性

  • 模块化设计与服务解耦
    • 微服务架构:服务拆分、服务间通信(REST、gRPC、消息队列)。
    • 组件化与复用:模块化代码设计,确保可复用性和高内聚低耦合。
  • 代码质量与测试
    • 编码规范:保持代码简洁、可读、可维护。
    • 自动化测试:单元测试、集成测试、API 测试。
    • 测试覆盖率:确保关键功能经过充分测试。
  • 错误处理与监控
    • 全局错误处理:捕获未处理的异常并返回标准错误响应。
    • 实时监控与告警:使用工具(Prometheus、Grafana)进行实时监控,异常报警。
  • 版本控制与发布管理
    • Git 版本管理:分支策略(GitFlow)、合并与回滚策略。
    • 持续集成与持续交付(CI/CD):自动化构建与部署流程。

7. 部署与运维

  • 容器化与虚拟化
    • Docker:容器化应用,保证环境一致性。
    • Kubernetes:容器编排,自动化部署与伸缩。
  • 自动化配置与部署
    • 配置管理工具:如 Ansible、Terraform 进行环境配置与管理。
    • 自动化部署流程:通过 Jenkins、GitLab CI 等工具实现自动化部署。
  • 高可用性与负载均衡
    • 负载均衡:使用反向代理(如 Nginx、HAProxy)进行负载均衡。
    • 高可用性:冗余部署、主备切换、故障恢复。
  • 故障恢复与数据备份
    • 数据备份与灾难恢复计划。
    • 自动化故障切换与数据恢复机制。

8. 开发与调试工具

  • 开发工具
    • IDE 与代码编辑器:VS Code、IntelliJ IDEA、PyCharm 等。
    • 调试工具:如 Postman、Insomnia、Swagger UI 等进行 API 调试。
  • 性能调优工具
    • 性能分析:如 JProfiler、GoTrace 等分析应用性能瓶颈。
    • 压力测试:如 JMeter、Gatling 进行性能与压力测试。
  • 日志管理与分析工具
    • 日志收集:如 ELK(Elasticsearch、Logstash、Kibana)进行集中化日志管理。
    • 日志分析与报警:分析日志异常,实时告警。