后端工程技能:面向生产系统建设的高级后端工程师决策框架。该技能围绕后端工程六大支柱展开——模式设计、可扩展系统、可观测性、性能、安全与API设计——重点说明每种模式的适用时机而非仅讲用法,面向了解基础、需要权衡取舍建议的中级工程师(3至5年经验)。
触发场景:设计数据库模式或规划迁移;在单体与微服务间选择或评估扩展策略;设置日志、指标、追踪或告警;诊断性能问题(慢查询、高延迟、内存压力);实现认证、授权或密钥管理;设计REST、GraphQL或gRPC API;需要重试、熔断或幂等模式;规划跨服务数据一致性(Saga、发件箱、最终一致性)。不适用于纯前端问题(CSS、React组件、浏览器API)和DevOps/基础设施配置(应改用Terraform/Docker/K8s技能)。
核心原则:为失败而非仅成功而设计;先观测后优化;在证明必要前保持简单;默认安全而非事后补救;API是契约而非实现细节。
常见任务:设计数据库模式时从访问模式出发,读多写少可规范化并加针对性索引,写多高吞吐考虑反规范化和追加表,复杂关系遍历考虑图模型,非结构化数据考虑文档存储;索引列应出现在WHERE、JOIN、ORDER BY中,复合索引(a,b,c)可服务(a)、(a,b)、(a,b,c)但不服务(b,c);迁移须规划回滚,破坏性变更用扩展-收缩模式。选择扩展策略:单服务器够用则优先纵向优化;计算瓶颈用无状态服务加负载均衡横向扩展;数据读多用读副本再加缓存,写多用分区/分片;仅在需要独立部署、不同扩展特征或团队边界时引入微服务,且按业务域而非技术层拆分。可观测性建立日志(结构化JSON加关联ID)、指标(RED:速率、错误、时长)、追踪三大支柱,先定义SLO再写告警,按错误预算消耗率告警。性能诊断依次检查指标、慢查询日志、连接池、外部依赖,最后再剖析代码。安全最低清单包括认证(OAuth 2.0/OIDC、服务间API密钥加HMAC、bcrypt/argon2存储密码)、中间件层默认拒绝的授权、边界输入校验与SQL参数化、密钥管理器与定期轮换、全程TLS。API设计按需求选择REST、GraphQL、gRPC、WebSockets或Webhooks;大数据集用游标分页并返回next_cursor;公共API用URL路径版本化;限流对用户用令牌桶、对内用固定窗口,429响应带Retry-After。部分失败处理包括指数退避加抖动的重试(上限3至5次)、熔断器(关闭→打开→半开)、幂等键、始终设置超时。分布式数据一致性:强一致用单库ACID;可容忍最终一致用发件箱模式事件驱动;多步业务流程用Saga(简单流程优先编排式,复杂流程用协调式)。
常见反模式:过早微服务、查询列缺索引、记录一切却不告警、循环中N+1查询、自研认证加密、从数据库向外设计API、无回滚的破坏性迁移、无失效策略的缓存。
注意事项:删除列只能走扩展-收缩;连接池耗尽表现像数据库慢;发件箱模式要求消费者幂等;ORM中N+1在生产负载前不可见;熔断器需半开超时以自动恢复。
参考文件(按需加载以免占用上下文):references/schema-design.md、scalable-systems.md、observability.md、performance.md、security.md、api-design.md、failure-patterns.md。首次激活时会检查已安装的配套技能,缺失时提示安装命令:npx skills add AbsolutelySkilled/AbsolutelySkilled --skill <name>。