现代软件工程管理复杂性之关注点分离,使模块化和内聚力更易执行

关注点分离是将计算机程序分成不同部分,以便让每个部分处理一个单独的关注点的设计原则。

关注点分离的简单口语化描述是:一个类,一件事,一个方法,一件事。

这是关于代码和系统的清晰性和焦点的。它是帮助我们改进所创建系统的模块化、内聚力和抽象性的关键促成技术之一,帮助我们将耦合性降低到有效的最小程度。

关注点分离可以在所有的颗粒度上起作用,不管是在整个系统的规模上,还是在系统中单个函数的级别上,它都是一个有用的原则。

内聚力和模块化是代码的属性,是不相关的东西离得远,相关的东西离得近。关注点分离是模块化和内聚力的具体表现。

关注点分离可以帮助降低代码和系统的耦合度、提高内聚力和模块化。

关注点分离可以保持代码和系统架构整洁、集中、可组合、灵活、高效、可伸缩,对于变更是开放的。

关注点分离提醒我们把注意力保持在小范围内。你可以查看每个部分并理解每个部分的功能,无须过多思考。

实现关注点分离的一个有用的工具是依赖注入。依赖注入是将一段代码的依赖项作为参数提供给它,与其实现解耦合。依赖注入将耦合最小化到适当的、有用的程度,是在关注点之间形成分界线的有效方法。

关注点分离帮助分离本质复杂性和偶然复杂性。本质复杂性是问题固有的复杂性,偶然复杂性是我们解决问题带来的副作用。将偶然复杂性最小化符合我们的利益。

领域驱动设计帮助从问题领域的角度入手关注点分离。让我们在发现新的关注点时保持警惕,避免把关注点不适当地合并在一起。

增量式改进代码设计的同时密切注意关注点分离,可以通过提升可测试性得到加强。如果要保证代码易于测试,那么必须关注点分离。测试驱动开发是实现可测试性的强大工具,也能帮助实现关注点分离。

在关注点的接缝处,可以使用端口和适配器。

API是向公开该API的服务或库的使用者公开的所有信息。不同代码之间的任何通信都是API,都是为了支持某种类型的编程。

关注点分离帮助代码容易理解、容易测试、容易更改,也更灵活。关注点分离实现起来比模块化和内聚力更客观、更清晰。

a8887ab27601d220571f59325fd61368.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值