软件开发通用工程性问题

发布时间:2026/6/20 7:41:28

软件开发通用工程性问题 路由与控制器- 做什么: 将 URLHTTP 方法路由到具体处理函数控制器。- 为什么: 让入口清晰、可维护版本化/分组/权限隔离避免 if-else“手写分发”。- 产出: 清单式路由、控制器代码、OpenAPI 文档。- 数据序列化/反序列化- 做什么: 请求体/查询参数⇄应用内对象JSON/Protobuf/XML。- 为什么: 保证类型正确、统一格式与时区/编码减少手动解析错误与安全风险。- 产出: DTO/Schema、全局 Content-Type、序列化器配置。- 参数校验- 做什么: 必填、类型、范围、格式、枚举、跨字段规则校验。- 为什么: 把错误挡在入口防止脏数据/业务异常向下游扩散。- 产出: 校验注解/规则、统一错误码与国际化错误消息。- 认证与鉴权AuthN/AuthZ- 做什么: 认证身份JWT/OAuth2/Session/mTLS鉴权权限RBAC/ABAC/策略。- 为什么: 保护资源、审计合规防重放/越权/会话劫持。- 产出: 登录/令牌/密钥管理、中间件/守卫、权限模型与策略。- 会话/中间件- 做什么: 在请求链路前后统一处理横切关注点CORS、限流、压缩、追踪ID、缓存、幂等。- 为什么: 复用与可观测按顺序组合避免散落在业务代码。- 产出: 中间件链配置、顺序与开关。- ORM/数据库访问- 做什么: 连接池、事务、实体映射、查询构造、迁移。- 为什么: 降低样板代码与注入风险保证一致性与性能索引/分页。- 产出: 实体/仓储、事务边界、迁移脚本、索引策略。- 配置与依赖注入DI/IoC- 做什么: 多环境配置、密钥管理、对象装配与生命周期管理。- 为什么: 可测试、可替换、可扩展避免硬编码与强耦合。- 产出: 配置分层dev/stage/prod、DI 容器、配置中心/环境变量规范。- 日志与错误处理- 做什么: 结构化日志、关联 ID、统一异常映射为 HTTP 状态告警。- 为什么: 可观测与排障用户友好错误支持重试与熔断。- 产出: 日志规范、全局异常处理器、告警规则与仪表盘。- 测试与部署支持- 做什么: 单测/集成/E2E/契约测试CI/CD、健康检查、指标、灰度/回滚。- 为什么: 防回归、可持续交付降低上线风险、满足 SLO/SLA。- 产出: 测试用例与覆盖率、流水线、/health 与 /metrics、发布策略蓝绿/金丝雀。需要的核心知识对应常见工程问题- 路由/控制器: HTTP/REST、状态码、Web 框架用法与路由中间件- 序列化/反序列化: JSON/Proto/XML、字符编码、SchemaOpenAPI/JSON Schema- 参数校验: 约束校验器、正则/格式、国际化错误消息- 认证与鉴权: OAuth2/OIDC、JWT/Session、RBAC/ABAC、CSRF/CORS- 中间件/会话: 请求生命周期、链路追踪ID、限流/压缩/缓存- ORM/数据库: SQL/事务/索引、连接池、迁移、锁与一致性- 配置与依赖注入: 环境分层(dev/stage/prod)、密钥管理、IoC/DI 容器- 日志与错误处理: 日志级别、结构化日志、全局异常处理、相关性ID- 测试: 单测/集成/E2E、Mock/Fixture、覆盖率、契约测试- 部署与运维: CI/CD、容器/Docker、K8s、滚动发布/回滚、健康检查- 可观测性: 指标/日志/追踪Prometheus/Grafana/OpenTelemetry- 安全: OWASP Top 10、输入输出净化、依赖漏洞治理- 性能与扩展: 缓存/CDN、异步与队列、水平扩展、性能分析- 文档与规范: OpenAPI、代码规范与风格、变更日志- 项目协作: Git 工作流、需求拆分、敏捷实践Scrum/Kanban典型软件开发流程SDLC1. 需求与可行性: 目标/范围/约束澄清验收标准定义2. 架构与设计: 接口契约、数据模型、组件与依赖、非功能需求性能/安全/合规3. 计划与任务分解: 里程碑/优先级、风险与缓解4. 实现: 编码、代码规范、静态检查、单元测试5. 评审: Code Review、架构与安全评审6. 测试: 集成/E2E/性能/安全测试缺陷修复7. 发布准备: 打包、版本化、变更说明、回滚策略8. 部署: CI/CD、灰度/蓝绿/滚动、配置管理与密钥注入9. 运行与监控: 指标/日志/追踪、告警阈值、容量与成本10. 反馈与迭代: SLO/SLA 复盘、问题单闭环、技术债治理11. 运维与应急: 事故响应、根因分析RCA、演练12. 文档与知识沉淀: 架构/运行手册/排障手册、自动化脚本

相关新闻