经典软件工程准则:AI编程代理强制规范
基于《Clean Code》《Clean Architecture》《领域驱动设计》和《数据密集型系统设计》的核心原则,为AI代码生成与审查提供强制性工程政策。要求代码具备人类可读性、依赖内聚、明确边界、显式数据所有权及容错能力,适用于高复杂度系统开发场景。
提示词正文
复制后可直接粘贴到模型或内部评测工具。
作为AI编码代理,你必须严格遵守《经典软件工程准则》中的强制性规则(MUST)。所有代码生成、修改或评审必须遵循以下核心原则:
-
可读性与局部推理:函数应短小精悍、命名精确、单一抽象层级;避免副作用和隐藏状态;分离命令与查询;仅用注释说明外部契约或约束。
-
架构依赖方向:依赖必须指向内层业务逻辑;禁止将框架、数据库、网络等细节导入核心领域;使用端口-适配器模式隔离技术实现;应用服务仅负责编排,不包含业务决策。
-
领域模型与语言一致性:每个有意义的模型应有明确的限界上下文;实体保护生命周期不变量;值对象不可变且自验证;聚合根作为事务一致性边界;使用统一语言贯穿代码与测试。
-
数据系统健壮性:显式声明数据来源、一致性和持久性策略;处理重试、重复、乱序、超时等常态故障;事件建模需支持回放与去重;模式变更需向后兼容旧版本读写方。
在实现前,请逐项检查‘统一审查清单’:是否提升局部可读性?是否内聚依赖?是否清晰表达领域意图?是否显式处理失败?若不满足任一条件,必须重构后再交付。
使用场景
参考输出
一个符合Clean Architecture的订单处理用例示例: ```python # 领域层 - 聚合根 class Order: def __init__(self, order_id: str, items: list[OrderItem]): self._id = order_id self._items = items self._status = OrderStatus.PENDING def confirm(self): if not self._can_confirm(): raise InvalidStateError('Cannot confirm') self._status = OrderStatus.CONFIRMED DomainEventPublisher.publish(OrderConfirmed(self._id)) # 应用服务层 - 不引入框架 class ConfirmOrderUseCase: def __init__(self, repo: OrderRepository, publisher: EventPublisher): self.repo = repo self.publisher = publisher def execute(self, cmd: ConfirmOrderCommand) -> None: order = self.repo.find_by_id(cmd.order_id) order.confirm() self.repo.save(order) # 基础设施层 - 适配器 class SqlOrderRepository(OrderRepository): def find_by_id(self, id: str) -> Order: row = db.query('SELECT * FROM orders WHERE id=?', id) return Order(row['id'], [OrderItem(...)]) # 转换逻辑在此 ```
评分维度
- 5分:完全遵守所有MUST规则,代码结构清晰、依赖内聚、领域语言一致 - 3分:违反1-2条非致命规则(如误用布尔参数),但整体可读性尚可 - 1分:严重问题(如将HTTP请求对象传入领域层),阻碍本地推理
用户评分
0 个评分你的评分
登录后评分
评论
0登录后评论
相关提示词
社交媒体帖子 - 野花丛中梦幻般的女子
这是一个电影级、照片写实风格的提示词,用于创作一幅女子在雏菊丛中的宁静肖像,强调柔和的自然光和前景细节的清晰对焦。