美文网首页
何时分?何时合?

何时分?何时合?

作者: 全新的饭 | 来源:发表于2022-05-10 11:12 被阅读0次

给定的2个功能,应该把它们放到一起实现,还是各自实现各自的?

分或合的依据:哪个能降低使用功能者的使用成本(理解、操作……)
即降低复杂度。

无限细分的坏处:增加了复杂度

  1. 模块太多,要找到目标模块很难
  2. 需要增加额外代码去管理一组关系稍近(需一起使用来实现一项功能)的模块
  3. 依赖关系太多,增加认知成本
  4. 可能会出现重复内容

两个功能的关系

关系紧密的就应放在一起,不紧密的就应分开。
怎样判断两个功能是否相关?
它们是实现一项功能过程中的不同步骤,在更高的抽象中归属于同一概念,需要一并了解之后才能看懂它们是干嘛用的。

可以将它们包一层后再供外部调用。

何时合?

合了之后能简化接口。
合了之后能消除重复。

重复

对待重复有2种处理方式

  1. 提取重复的部分生成新模块,其他地方调用它。
    重复的部分越长,这种做法越有价值。
    需注意:提取重复后,是否需传入很多参数才能用?考虑将这些参数包成一个数据结构传入。
  2. 重复真的有必要?
    修改实现流程(只要保证最终功能仍可实现)可能就可以减少重复。

通用代码和专用代码

当你发现你在不同的地方写了几乎相同的代码内容,这说明你当前的抽象架构可能不够合理。
越底层越通用,越顶层越专用:将专用代码尽量放到较高层,将通用代码留在底层。

方法的拆分和合并

核心目标:提供简单明晰的抽象,降低使用者的使用成本。
其接口(签名)比具体实现应简单得多。

结论

分或合的依据是怎样能更好地降低复杂度。
理想状态:

  1. 隐藏尽量多的信息(用起来简单)
  2. 依赖尽量少(开发者理解起来简单,方便修改)
  3. 接口尽量深(开发者理解起来简单,方便修改)

当前大前提是:能提供满足需求的功能。

相关文章

  • 何时分?何时合?

    给定的2个功能,应该把它们放到一起实现,还是各自实现各自的? 分或合的依据:哪个能降低使用功能者的使用成本(理解、...

  • 何时何世

    看开即解脱 谁都没错 谁都有错 不需要肯定 也不需要否定 该来的挡不住 该走的留不住 本无苦海 放下自在 别挥霍短...

  • 谋文要略 第024章 小说的酝酿与写作

    小说故事发展进程中,各色人物何时出场,何时退场;何时贫穷,何时富有;何时分手,何时相聚;何时背井离乡,何时衣锦还乡...

  • 沙盘作品何时分析

    二、沙盘作品何时分析 卡尔夫也说,有些时候需要用通俗易懂的方式向求助者传递自己对沙盘作品分析的洞见,然而,什么时候...

  • 和你

    何时何地何景 何情何思何理 和你

  • 办案五要素

    何时何地何人何情何果

  • 何归?何归?何时归?

    说好的,我们说好的,你要来参加我的毕业典礼的,你必盛装出席,携礼相依。可毕业典礼马上开始了,我翘首以盼,还是不见你...

  • 何世何时合适

    闲散者,闻戏;独与,尽戏言。吾在,此者,甚是款款,犹记一朝一影。 一语惊,二谈拢,三言及,终是关己,知此未语,却道...

  • 何时读何书

    缘起 微雨,呆在家里有点儿闷,遂外出买了点儿西瓜、花生、桃子,到家沏了一杯热茶,喝了几口疲惫尽消。准备写点儿字了,...

  • 2021-01-27

    何时何地因何带上口罩 就如何时何地因何用上手机 何时何地因何骑上单车 就如何时何地因何飞上天空 有朝一日在月亮火星...

网友评论

      本文标题:何时分?何时合?

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