杂谈(1) — 浅谈项目中横向思维和纵向思维

横向思维和纵向思维,这是一个比较有意思的东西,特别是处理一些复杂的业务的时候。

1. 场景一:校验器

场景:B端复杂接口。根据type创建不同类型的计划。

当然实现底层逻辑无非就是CURD。

  • 需要对字段进行可用性校验;
  • 将字段入库;

问题?如何对这些字段进行校验?

纵向思维(模板方法模式):父类抽取共有校验校验,子类实现个性化校验;
横向思维(责任链模式):每一个字段的校验均是一个Filter,将这些Filter串联起来进行校验;


纵向思维(逻辑集中,父类需时刻升级):需要在设计入参对象的时候就需要确认父类对象与子类对象。一般来说需要随着需求的迭代而对项目框架优化升级的。

横向思维(逻辑分散,但是更加灵活):有些字段需要联动校验,所以需要将完整的对象传递到Filter中。校验逻辑分散到很多Filter中,而大量Filter组装成链会导致逻辑分散。

个人看法:要看复杂度,若业务特别复杂(需校验字段超多),开发人员很多的情况下,横向思维更加好。

2. 动态配置

一些逻辑我们需要配置到Redis等实现动态修改,但是这些逻辑又会有两个维度的思路?

纵向思维:这个计划下面有多少目标,会有很多限制条件,例如必须是白名单的才可等,返回值是List;
横向思维:这个目标是否可用,返回条件是boolean。先拿到一个全量的目标List,然后根据条件(例如某个计划,账户等)去遍历目标List返回每个目标是否可用。

个人看法:如果业务复杂或公司存在例如规则平台这种基建时,推荐横向思维。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容