状态(2026-06-10 立项):占位提案,未排期 优先级:中。依赖
standardize-client-service-layering先 archive 入 R5;本 change 是 R5 对存量钉钉 14 文件的整改。
R5(命名一致,Impl 后缀)落地后,钉钉模块仍有 14 个存量中缀文件违反规则:
service/dingtalk/impl/DDImplClient.java → DDClientImpl.java
service/dingtalk/impl/DDImplService.java → DDServiceImpl.java
service/dingtalk/impl/DDImplClient_Attendance.java → DDClient_AttendanceImpl.java
service/dingtalk/impl/DDImplClient_Contacts.java → DDClient_ContactsImpl.java
service/dingtalk/impl/DDImplClient_Dedicated.java → DDClient_DedicatedImpl.java
service/dingtalk/impl/DDImplClient_Event.java → DDClient_EventImpl.java
service/dingtalk/impl/DDImplClient_Extension.java → DDClient_ExtensionImpl.java
service/dingtalk/impl/DDImplClient_Group.java → DDClient_GroupImpl.java
service/dingtalk/impl/DDImplClient_Notice.java → DDClient_NoticeImpl.java
service/dingtalk/impl/DDImplClient_Personnel.java → DDClient_PersonnelImpl.java
service/dingtalk/impl/DDImplClient_Report.java → DDClient_ReportImpl.java
service/dingtalk/impl/DDImplClient_Schedule.java → DDClient_ScheduleImpl.java
service/dingtalk/impl/DDImplClient_Storage.java → DDClient_StorageImpl.java
service/dingtalk/impl/DDImplClient_Workflow.java → DDClient_WorkflowImpl.java
新接入子 client 时强行避开(R5 强制后缀)会让钉钉模块产生混搭风格,更难看,必须整改。
但本 change 拆出 standardize-client-service-layering 独立处理,原因:
@Qualifier / @Autowired by-name 字面引用扫,爆炸半径大按 R5 把 14 个中缀文件改为后缀风格。Spring DI by 接口的调用方不受影响(DDClient/DDClient_X 接口名不变);by-name 注入(如 @Qualifier("dDImplClient_Attendance"))需逐一找出替换。
执行策略:分批,每批 3~4 文件,每批一个独立 commit:
DDImplClient + DDImplService + DDImplClient_Attendance(主流量入口)DDImplClient_Contacts / DDImplClient_Group / DDImplClient_NoticeDDImplClient_Personnel / DDImplClient_Report / DDImplClient_ScheduleDDImplClient_Dedicated / DDImplClient_Event / DDImplClient_Extension / DDImplClient_Storage / DDImplClient_Workflow每批落地前按 R4 流程跨仓 grep + 用户 ACK。
client-service-layering:R5 从「新增代码强制」演进为「全仓覆盖」(钉钉存量符合后)dDImplClient_Attendance → dDClient_AttendanceImpl;by-name 调用方需同步改/Users/malk/server/cur/mjava-guangming/:含 mjava-guangming/mjava-shunfeng 模块,可能引用DDClient / DDClient_X 接口名(仅改 Impl)