跨职能需求(NFR,非功能性需求)是IT系统的非功能特征,例如性能、安全性、故障恢复、可扩展性和可维护性。它们在架构设计中发挥着关键作用,通常与功能需求同样决定技术解决方案和基础设施。
例如:如果商业系统要求高可用性(正常运行时间 > 99.99%),架构师必须实施自动切换(failover)、数据复制和平衡负载的机制。否则,商业价值可能会丧失。
示例:NFR如何影响架构(使用Python和FastAPI):
from fastapi import FastAPI from starlette.middleware.cors import CORSMiddleware app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # 如果NFR中有支持与外部前端集成的要求,则这种方法是必要的
关键特性:
可以在开发的后期阶段添加NFR而不产生后果吗?
不可以,关键的NFR必须从一开始就考虑,否则将需要对架构进行彻底重构。
NFR的执行责任仅限于架构师吗?
不正确。这是整个项目团队的责任范围——从分析师到DevOps。
可扩展性和安全性能否仅被视为基础设施的任务?
不可以。可扩展性和安全性既是架构任务也是基础设施任务(例如,按用户划分数据是在服务层级实现的)。