架构整洁之道(三)-解耦合与复用

本文探讨了软件架构中解耦合的重要性,旨在减少代码修改和决策的复杂性,提高代码复用性。通过模块化、数据驱动和小函数等方法实现代码的高可维护性。建议使用数据表来表达含义,创建工具库以提升效率,并引用《Unix编程艺术》等书籍作为理论支持。此外,文章强调了重构时缩小修改范围的原则,以确保代码的清晰和简洁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、为什么要解耦合

  1. 前面说到,好的架构是要花费最少的人力成本来构建和维护软件。

  2. 对应到写代码上,有两个关键点。

    • 维护的时候,每次修改尽可能少的代码。
    • 维护的时候,每次修改或者添加功能,工程师要少做决策。
  3. 而要少改代码,少做决策,对应的两个解决方法。

    • 复用。如果之前写的东西总是能复用,那维护的时候要写的代码就变少了。
    • 解耦合。因为每次改动,工程师思考的都是在一小块范围内。工程师要考虑的就更少,就不用那么多决策。而如果不符合正交性,到处要改,我们就要花费更多的时间考虑这个,考虑那个。最后纠结了一天,加班都搞不完。

二、写代码时候的大方向

  1. 给程序的各个组件划分边界,模块化,解耦合。

    尽可能将所有要变化的代码和不怎么需要变得代码分离开。

在这里插入图片描述

如图:

1)M1 和 M2 合作要实现某功能,应该想办法将业务流程变化多的代码尽可能赶到一小块代码中。

2) M1 和 M2 之间的交互点应该只有一个。

1.使用发送消息的方法。

2.如果是调用关系,就可能将调用别的模块的内容放到一个位置。

我认为,对可维护性而言,重构的时候,如果大方向上,是在缩小要修改的代码范围的,就是没有错的。

不要让经常要修改的内容发散开来。

  1. 尽可能使用数据表来表达含义。

    《unix编程艺术》就说过,数据压倒一切。

    使用数据表或者指针树。

    你给我看文字,我感觉很不解。你给我看流程图,我感觉迷茫。你给我看数据表,我秒懂。

    https://blog.youkuaiyun.com/renyongjian1994/article/details/117198867 这里的案例,就是使用数据的一种。

    面向对象的说法,也叫多态。

  2. 使用小函数。

    那些功能比较单一的小函数,才是生命周期最长的。

    而且好复用呀。不涉及太多的流程啥的。

  3. 开发工具库。

    有些通用的,弄个工具库来提升效率。复用性提升。节省人力成本。

    比如字符串,网络操作。

    比如像libevent那样的反应堆模式。

三、参考文献

《unix编程艺术》

《重构:改善既有代码的艺术》

《大话设计模式》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值