注意⚠️ 本文描述的设计并不合理,可以当做反面案例,下面纯属个人反思。
问题背景
模型搜索算法侧召回出现了badCase,需要对其进行问题排查,以往的人工排查流程划分了很多步骤,现在服务端需要把每一个step的返回值情况串联起来,获得最终的排查结果,流程图结构如下。
一、基本功能实现
根据流程图所示的描述,创建了一个名称为GroundingSerive的接口和对应实现类,一个核心方法 badCaseDetect( GroundingDTO userInputParam ),在方法内部把流程图描述的所有步骤串联起来。由于步骤真的很多,外加大量if-else结果分支校验的判断,这个方法的代码行数最后接近100行,看上去结构混乱复杂并且可读性差。
修改之前的最初版本代码情况大概是下面这个样子: