架构设计00-架构师知识体系10-对软件认知层次的思考

架构设计系列文章,请参见连接。

前言:对于软件的认知层次代表着不同的专业程度,也代表着不同层次需要完成的工作的不同。在架构设计过程中需要有效的利用分层的认知,对不同层次的问题进行有针对性的解决确定。

1. 背景

在架构设计与实现过程中,需要对软件系统做全局的分析与考虑以求全局的认知。在分析和考虑过程中软件的不同层次都有独特的问题。为了在设计阶段做出更全面的决策,以解决绝大部分实现过程中可能遇到的问题,需要对软件开发过程中不同的层次的工作内容进行具体的分析。

所以需要对软件设计与决策提供全局框架,并把握每个层次的关键点。

软件层次

2. 层次

可以将软件的实现过程分为如图的几个层次,软件从业人员也可以根据图中的层次进行划分。对于软件实现层级的划分也印证了现在的软件设计与实现已经超越了算法和数据解构,对系统结构的设计与治理成为架构设计的重点。分层结构如上图所示,软件分为7个层次:

2.1 代码=数据结构+算法:

在学校学软件的时候有一种普遍的认知:软件=算法+数据结构。在当时(零几年)没有微服务、没有DevOps、没有超大互联网企业,那会对于软件的认识可能就是单体,mfc这种模式的软件。所以,将软件认为就是数据结构加算法即可解决绝大部分问题。

其实这样的认知也是受到时代的局限。在大部分软件都是小型的C/S、B/S的时候,当时最大的问题还是怎样开发一套业务系统的年代,不会涉及到分布式系统的情况下能做出来就很不错了。更不用谈对于软件的认知。

2.2 程序=代码+设计模式:

在代码使用设计模式。为什么?

软件规模在不断的扩大,不断的发展。而在这个过程中遇到的规模化代码的管理问题,可扩展问题,可修改性问题。急需为软件的持续发展提供一种解决方式,让软件规模增长提供管理的方法。

这时小规模的问题通用解决方案可以使用设计模式进行管理。因为每一个设计模式都是解决代码规模化的一部分问题。

2.3 模块=程序+分包模式:

这是伏羲一画开天式的创举,但很少有人提到分包模式。因为现在的mvc,mvp,acp等已经很流行而且已经深入人心。所以分包模式对于现在的开发已经很平常。但是分包模式是第一次进行了高内聚低耦合的实践。

2.4 软件=模块+架构模式:

设计模式之上的架构模式。为什么?

到现在为止并没有对软件系统中的工作内容进行划分,例如:MVC的各种变种。软件层之下的主要是管理代码,代码编写的内容。而架构模式管理的是对于复杂业务下模块的拆分,模块的关系,代码的复用的工作。这部分内容之所以需要做是因为意识到软件的工作中并不是所有的工作都需要用到算法和数据结构,需要将不同的业务之间隔离并确定业务之间的关系。

所以架构模式负责的是给业务分包、模块。让软件中的每一个模块都可以做到单一职责。

2.5 系统=软件+架构风格:

架构模式之上的架构风格。为什么?

上一个层次中已经说明通过使用分包、模块化的方法进行模块的职责的划分。那么一个系统应该以怎样的方式将系统中的服务链接起来。

在常见的架构的定义中有一种:一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系

2.6 平台=系统+企业架构:

架构风格之上的企业架构。为什么?

软件的最终目标是什么?按照作者理解应该是解决人们现实中的切实问题,不管是提升效率、降低成本、提升便利性还是提供特定帮助都是可以通过计算机的计算能力来解决的事情。抱着这个目标去实现

传说中的EA,它最主要的解决问题是:为了解决IT与业务对齐、业务和战略对齐问题。

2.7 企业架构

企业架构有多种方法论,也有不同层面的解决方案。例如:EA可以有togaf,zachman,dodaf等。产品开发方法有ipd,精益等方法。

我个人一般喜欢以:理想、目标、原则、方法这几个方向去分析一个公司是否真正的解决了现实问题。并根据四个元素去确认公司的目标与个人目标的一致性。

3. 总结

每个层次的认知都是对的,并没有错误一说。这里最主要的区别是你处在什么阶段就会认知到什么样的软件。行业所处的阶段也会影响从业者对于这个行业的认知,就像文中所说的一样认知是受到时代的局限。

就像《演进式架构》中所说的:适度的重复是有益的。而不像之前人们认为DRY,不能重复任何东西。所以,站在邓宁克鲁格的开悟之坡的人并不会去嘲笑处在愚昧之峰的人。

再比如《软件架构:架构模式、特征及实践指南》中所说的:适合的才是最好的。很多时候没有对错,只有合适,在马丁富勒的《单体优先》中也有类似的描述。

在这里说这么多要证明的是:认知处在任何阶段都是正常的,不过需要不断的提升认知

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

推荐阅读更多精彩内容