美文网首页
杂谈(1) — 浅谈项目中横向思维和纵向思维

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

作者: 小胖学编程 | 来源:发表于2022-05-13 15:33 被阅读0次

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

    1. 场景一:校验器

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

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

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

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

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


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

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

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

    2. 动态配置

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

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

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

    相关文章

      网友评论

          本文标题:杂谈(1) — 浅谈项目中横向思维和纵向思维

          本文链接:https://www.haomeiwen.com/subject/gazyurtx.html