xChar
·6 months ago

概念定义

完备性

  • 指对当前需求所能提供的服务的覆盖率

架构的目标

架构是一个比较宽泛的概念
为了某个需求实现的一个或是一系列业务
旨在高效率地解决问题

重构

重构的本质就是:对当前架构的 完备性 不够充分而remake的

重构软件,意味着你可能会对某个模块 / 某个应用,甚至是某个系统进行再次覆写
这种行为一般产生于:

  • 原代码存在大量问题,修复成本巨大
  • 原系统性能不足以处理业务的不断增长情况
  • 新功能无法快速接入系统内
  • 架构本身存在缺陷

无论是什么原因,重构肯定是为了解决上一代产品出现的问题
重构无法避免,但是重构的频率一定要在 ==可控制的范围内==
否则三天一小改,一周一大改 (这样带来的时间成本和心智负担十分巨大)

  • 解决问题的最好方法就是解决出现问题的根源
    试想一个情景:

你为某API(假定是一个天气接口,数据有温度/湿度/变化情况/地区)实现了封装
而你认为目前不需要湿度这一参数,则可能会直接丢弃湿度这一数据
当你某天自己实现的功能需要依赖湿度这一参数时,你要么直接从原代码中补上湿度(这无疑是增加心智负担,尤其是代码在一个系统中),要么就是实现一个新的封装来获取这一参数
上面的两种方法,都会让系统变得更加 复杂
那么如果一开始,你将参数保存在封装的内部(向外输出的数据仍没有湿度),而不是直接丢弃,那么实现新的功能时,只需要调用该API拿到湿度参数即可!

  • 以上例子显示了一个比较容易出现的情况,与其丢弃数据,不如直接封装在内部供下次使用
  • 当然可能会消耗更多的计算资源和带宽(对于稳定性和开发成本来说,这并不是太大,不是吗?)
生活中的实例

就拿B站作为例子,其Web端API接口中存在多个看起来"无用"的参数和重复项(比如bvid和bv_id)
这就是以兼容性换取开发的遍历,用bvid和bv_id可以减少混淆所带来的 隐式问题 和沟通成本

Loading comments...