From 445c139bce3472b29efc96cbbde07d818ba17861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Sat, 5 Sep 2026 10:26:50 +0800 Subject: [PATCH] =?UTF-8?q?guard(task-210/212):=20ArchitectureBoundaryTest?= =?UTF-8?q?=20=E5=80=BA=E5=8A=A1=E5=9F=BA=E7=BA=BF=E4=B8=8B=E8=B0=83=20128?= =?UTF-8?q?=E2=86=9284=EF=BC=88Handler=20=E8=BF=81=E7=A7=BB=E5=90=8E=20tas?= =?UTF-8?q?k=E2=86=92=E4=B8=9A=E5=8A=A1=E4=BE=9D=E8=B5=96=E5=AE=9E?= =?UTF-8?q?=E9=99=8D=E8=87=B3=2084=EF=BC=89=E5=B9=B6=E9=9A=8F=E8=BF=81?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=20SPI=20=E5=8C=96=E9=81=97=E7=95=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nanri/aiimage/ArchitectureBoundaryTest.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/backend-java/src/test/java/com/nanri/aiimage/ArchitectureBoundaryTest.java b/backend-java/src/test/java/com/nanri/aiimage/ArchitectureBoundaryTest.java index 423ef498..b267a3b8 100644 --- a/backend-java/src/test/java/com/nanri/aiimage/ArchitectureBoundaryTest.java +++ b/backend-java/src/test/java/com/nanri/aiimage/ArchitectureBoundaryTest.java @@ -13,12 +13,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue; * * 已通过(零违规):任何 Controller 不得直接访问 Mapper 或外部 Client(211)。 * 债务防恶化(210/212,探针 2026-09-05):task 模块经 *ResultFileJobHandler 等依赖具体业务 - * Service/Mapper 共 128 处、modules 切片存在 collectdata→dedupe→task 环;清零需把 Handler 实现 - * 迁回业务模块等大重构。本文件冻结边界(不允许新增违规;存量≤128),消除债务留待专门重构。 + * Service/Mapper 曾达 128 处、modules 切片存在 collectdata→dedupe→task 等环;Handler 已迁回 + * 业务模块(212 大幅收敛)。整体模块切片无环依赖进一步 SPI 化(deletebrand 跨模块扫描/心跳等), + * 尚未达成,故本文件冻结"存量不新增"上限。 */ class ArchitectureBoundaryTest { - private static final int TASK_TO_BUSINESS_BASELINE = 128; + private static final int TASK_TO_BUSINESS_BASELINE = 84; private static volatile JavaClasses cached; @@ -56,9 +57,9 @@ class ArchitectureBoundaryTest { @Test void taskToBusinessDependencyDoesNotGrow() { - // 冻结存量(探针 128):不允许 task→业务 依赖继续增加 + // 冻结存量:Handler 迁移后 task→业务 依赖已大幅收敛;不允许继续增长 int violations = countViolations(taskRule()); - assertTrue(violations >= 1, "存在 task→业务 依赖(Handler SPI 承接点)"); + assertTrue(violations >= 1, "task→业务 依赖仍有存量(心跳/清理等待 SPI 化)"); assertTrue(violations <= TASK_TO_BUSINESS_BASELINE, "task→业务 依赖不得超过基线 " + TASK_TO_BUSINESS_BASELINE + ",当前 " + violations + ";新增依赖走 Handler SPI 或先消除存量"); @@ -66,20 +67,18 @@ class ArchitectureBoundaryTest { @Test void ruleFailuresCarryClearReason() { - // 规则附 because 说明,失败信息可定位(构造性校验:规则对象能生成可读描述) + // 规则附 because 说明,失败信息可定位 assertTrue(taskRule().getDescription().contains("no classes that reside in a package"), "规则描述应可读"); } @Test void spiHandlersAreTheSanctionedBridge() { - // 允许方向:task 模块仅 *ResultFileJobHandler(04 SPI 实现)可依赖业务 Service; - // 其余 task 类若依赖业务即属增长(由 taskToBusinessDependencyDoesNotGrow 守卫上限)。 JavaClasses classes = app(); long handlers = classes.stream() .filter(c -> c.getSimpleName().endsWith("ResultFileJobHandler")) .count(); - assertTrue(handlers >= 10, "Handler SPI 实现应在 task 模块注册,实际 " + handlers); + assertTrue(handlers >= 13, "Handler SPI 实现应在各业务模块注册,实际 " + handlers); } private static com.tngtech.archunit.lang.ArchRule taskRule() {