refactor(#777): 修复Domain层依赖Adapters的DDD违规(4处) #789
Reference in New Issue
Block a user
Delete Branch "refactor/fix-domain-adapters-dependency"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
变更内容
代码质量专项P1:#777 修复Domain层依赖Adapters的DDD违规
4处违规点
domain/auth/email_service.py→ 反向import adapters.smtpdomain/auth/session_store.py→ 反向import adapters.redisdomain/auth/__init__.py→ 反向import application.auth.jwt_servicedomain/auth/__init__.py→ 反向import application.auth.password_hasher修复方案(DDD依赖倒置)
领域层定义端口(Port):
EmailServicePort(ABC)— 邮件服务接口SessionStorePort(ABC)— Session存储接口JWTServicePort(ABC)— JWT服务接口PasswordHasherPort(ABC)— 密码哈希接口PasswordValidatorPort(ABC)— 密码强度验证接口外层实现端口:
adapters.smtp.EmailService(EmailServicePort)adapters.redis.SessionStore(SessionStorePort)application.auth.JWTService(JWTServicePort)application.auth.PasswordHasher(PasswordHasherPort)application.auth.PasswordValidator(PasswordValidatorPort)其他调整:
EmailConfig从adapters上移到domain层(纯值对象,无基础设施依赖)domain/auth/__init__.py,只导出领域端口接口验证
代码审查结果 - PR #789
⚠️ 问题(0个需要修改)
无
💡 建议(1个可选)
email_service.py,session_store.py)中使用了内置泛型类型(如list[dict],tuple[...]),而在password_hasher.py和jwt_service.py中使用了typing模块的类型(List,Dict,Tuple)。建议统一风格,考虑到项目可能需要兼容旧版本 Python 或保持一致性,建议统一使用typing模块中的类型(List,Dict,Tuple)。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-07-23 14:54:22 | 模型:
🗑️ 预览环境已清理
PR #789 已关闭或合并,对应的预览环境已被清理。