认识软件架构:论软件架构的分层与解耦

分层解耦是最常见也被认为是最入门级的架构能力。看似简单,实质具有非常深刻的内涵。

分层的实质是隔离关注点。依据是软件不同部分具有高度一致的本质。比如WEB开发常见的前端、后端分离,就是建立在前后端具有不同的关注点前提上。前端关注不同的渠道灵活快速支持和用户体验,后端关注服务的沉淀、稳定可靠以及性能容量。<br>当前比较常见的分层还有将领域和应用进行分层,从而获得一个比较稳定的领域能力层,这个是DDD的基本主张,也是当前各种领域PaaS存在的理论参照系。

解耦的实质是分离变化点,这是一种适合不同粒度、不同层次的变化点分离架构方法。大到上面的分层,小到一个功能内的两个实现类,都可以找到解耦方法的影子。

分层与解耦最容易被忽略的是只有分和解,没有合。因为软件系统作为一个整体而言,用户对其完成一系列业务case的完整性并没有随着解耦而消失,同时这才是软件产品的根本任务。而解耦只是软件研发组织的内部诉求,不是用户诉求。所以解了以后还要合。“合”比“解”的难度更大。解的同时要考虑合,合要基于解的结果。因此没有先后顺序,要同时考虑解耦与合并才能真正完成“解耦”。

分层是解耦的特例,是完成系统level0的解耦。就企业IT软件看,是完成用户界面、业务逻辑/应用、数据存储几大类IT任务的解耦。围绕着分层有一系列的“合”解决方案的现成实例,如sevlet规范解决界面与业务逻辑的合,jdbc解决业务逻辑与数据存储的合,各类中间件sdk解决业务应用与中间件服务的合。

因此,分层解耦是IT架构最基本也是最有内涵的架构方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容