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

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

分层的依据有两点,一是职责,另一个是特征。基于职责,软件实体可以根据负载的任务类型不同,把同质化的功能、能力聚合到一个层次中。无论是云计算的IaaS、PaaS、SaaS分层,还是系统软件、中间件、应用分层,还是前后台分层等等,都是基于软件负载的


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

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

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

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

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

模块化和简单性是软件工程的基石。蒂姆博纳斯这句充满哲理性的名言可以说准确指明了分层解耦的最终目标或者说最终结果。无论是层次还是一个个有边界的逻辑聚合软件实体,都是一个个模块。无论是高层次的基于特定场景的企业应用、个人消费者应用,亦或是低层次的系统软件,如Linux、Oracle,甚至是编译器软件等等,任何一款软件产品、原型,它的设计者、实现者都会把整个软件系统划分为一个个相互协作的单元,分别实现,再统一整合。这就是软件部分与整体的哲学,是软件实体的内在规律。简单性可以基于划分后的单元是否足够聚焦,是否职责趋于单一。这种简单性你可以通过

分层解耦的好坏取决于软件设计、实现者的水平。主要包括以下几个方面:

* 领域经验,是否能够洞察待解决问题的核心本质,构思软件系统解决方案,这一能力要求必须准确的把握整体解决方案的核心能力要求。基于对整体的理解,进而识别出构成整体的要素,分解为功能层次和单元。

* 技术能力,也就是软件实现能力。必须清晰的为解决方案寻求最佳技术路径。包括技术的能力、竞争力和演进趋势,约束。

组织分工,构建大规模软件的工程基础。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容

  • 分层解耦是最常见也被认为是最入门级的架构能力。看似简单,实质具有非常深刻的内涵。 分层的实质是隔离关注点。依据是软...
    RussellSN阅读 8,722评论 1 4
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,865评论 2 89
  • 教育教学关的书我读的最多的便是《中学政治教学参考》,它的栏目比较齐全,有骈散类的雅致,有学术类的深邃,当然更实用的...
    王艳随笔阅读 932评论 0 0
  • 做人应如湖水,当清且深,既要清澈又要深邃。清澈的是性情,深邃的是学问。清澈即温煦,深邃即厚重。清澈性情无所...
    冰夫阅读 311评论 0 0
  • 才子剪的头发,还可以嘛,没有我想象的那么差,哈哈哈!
    一只思考的熊阅读 199评论 0 0