首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏深度学习与python

    解读 5软件架构模式

    作者 | Orkhan Huseynli 译者 | Sambodhi 策划 | 辛晓亮 当一些人开始涉足软件工程领域,总有一天他会需要学习软件架构模式的基本知识。 在我发现 Mark Richards 的 Software Architecture Patterns(《软件架构模式》,暂无中译本)一书之前,这个问题就一直存在。 Mark Richards 在他著的书中,描述了 5 种模式: 分层架构 驱动架构 微内核架构(或插件架构) 微服务架构 基于空间的架构(或云架构模式) 1. 图 4:微服务架构 5. 基于空间的架构 基于空间的模式背后的主要思想是分布式共享内存,以缓解经常发生在数据库层面的问题。 图 5:基于空间的架构 你可以在我的 GitHub 账户中找到其中一些架构模式的最简单例子。

    44630编辑于 2022-03-23
  • 来自专栏Java技术进阶

    【系统架构】-什么是软件架构5大风格

    软件架构的概念 软件架构 = 软件体系结构,架构设计就是需求分配,将满足需求的职责分配到组件上。 架构的本质 1、软件架构软件系统提供一个结构、行为和属性的高级抽象 2、软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束。 架构的作用 1、软件架构是项目干系人进行交流的手段 2、软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量 3、软件架构使推理和控制的更改变的简单,有助于循序渐进的原型设计,可以作为培训的基础 超文本系统 数据流风格 前一步的处理结果是后一步的输入内容【数据驱动】 优点 缺点 实例 1、松耦合【高内聚-低耦合】 2、良好的重用性、可维护性 3、可扩展性【标准接口适配】4、良好的隐蔽性55大风格,关注我,给你分享更多知识。

    2K32编辑于 2022-12-02
  • 来自专栏超级架构师

    软件架构软件架构概述

    软件架构(architecture)是指软件系统的基本结构以及创建这种结构和系统的规程。每个结构都包含软件元素、它们之间的关系以及元素和关系的属性。[1]软件系统的架构是一个隐喻,类似于建筑物的架构。 范围 对于软件架构的范围,人们的看法各不相同:[5] 宏观系统结构:这是指体系结构,它是一个软件系统的高级抽象,由一组计算组件和描述这些组件之间交互的连接器组成。 [4]:5–6该抽象提供了许多好处: 它为在系统构建之前对软件系统的行为进行分析提供了基础。[2]验证未来软件系统是否满足其利益相关者的需求而无需实际构建它的能力代表了大量的成本节约和风险缓解。 这反映了软件架构、企业架构和解决方案架构之间的关系。 架构活动 软件架构师执行的活动有很多。 IEEE软件专门出版了一期专门讨论敏捷性和体系结构之间的交互的专刊[37]。 软件架构侵蚀 软件架构侵蚀(或称“衰退”)是指在软件系统的实现过程中,在软件系统的计划架构和实际架构之间观察到的差距。

    1.9K11发布于 2020-07-20
  • 来自专栏IT大咖说

    软件架构设计-软件架构风格、分层架构

    软件架构设计 软件或计算机系统的软件架构是该系统的一个(或多个)结构,而结构由软件元素、元素的外部可见属性及它们之间的关系组成。 软件系统架构是关于软件系统的 结构、行为和属性 的高级抽象。 指定了软件系统的组织结构和拓扑结构。 软件架构是可传递可复用的模型,架构就是体系结构。架构设计介于需求分析和软件设计之间。架构设计就是需求分配,即满足,需求的职责分配到组件上。 ◆ 软件架构风格 软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式;惯用模式则反映众多系统共有的结构和语义特性。强调对软件设计的重用。 (一般用在人工智能领域和DSS中) 5. 仓库风格 ? 在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行。 一个视图(View)包括一个或者多个架构模型(Model),一个模型也可能参与多个视图。模型较文本的表述的好处在于,可以更容易的可视化、检查、分析、管理和集成。 5.

    3.6K41发布于 2021-07-19
  • 来自专栏全栈程序员必看

    软件架构设计—软件架构概述

    5架构具有“基础”性:它通常涉及解决各类关键的重复问题的通用方案(复用性),以及系统设计中影响深远(架构敏感)的各项重要决策(一旦贯彻,更改的代价昂贵)。 我们可以将软件架构归纳成 5 种模型:结构模型、框架模型、动态模型、过程模型和功能模型。最常用的是结构模型和动态模型。 (1)结构模型。这是一个最直观、最普遍的建模方法。 (5)功能模型。该模型认为架构由一组功能构件按层次组成,且下层向上层提供服务。它可以看作是一种特殊的框架模型。 这 5 种模型各有所长,也许将 5 种模型有机地统一在一起,形成一个完整的模型来刻画软件架构更合适。即将软件架构视为这些模型的统一体,通过这些模型的表述(文档)来完整反映软件架构。 “4+1” 视图模型从 5 个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。每一个视图只关心系统的一个侧面,5 个视图结合在一起才能反映系统的软件架构的全部内容。

    3.2K40编辑于 2022-08-23
  • 来自专栏网络虚拟化

    5G核心网软件架构介绍一

    本期我们将介绍一款备受关注的开源核心网软件,是一款基于5G标准的开源核心网软件,包含一系列软件组件和网络功能,实现 4G / 5G NSA 和 5G SA 核心功能,旨在为运营商和企业提供一个灵活、可靠的解决方案 非独立组网架构可以在5G建设初期利用现有的4G站点资源进行5G网络的部署可以达节省投资加快5G网络部署的目的。 5G独立组网模式在3GPP TSG-RAN第72次全体大会上共提出了4个选项,分别为选项1、选项2、选项5、选项6,非独立组网模式下每一个系列均只有一个选项 该软件采用了现代化的架构和设计理念,包括模块化设计 、微服务架构和容器化部署。 总的来说,这是一款功能强大、灵活可靠的开源核心网软件,适用于各种场景和需求,可以作为5G网络部署和管理的首选方案或者基于该软件包进行迭代开发。

    1.2K10编辑于 2024-02-29
  • 来自专栏深度学习与python

    架构师必须了解的 5 种最佳软件架构模式

    用来实现推荐模块的软件架构只是整个架构模式的一部分。 现在,我们已经知道了什么是软件架构模式,让我们再看看为什么要使用它们。 为什么要使用软件架构模式? 现在,软件架构模式的意义已经明确,让我们来看 5 种流行的软件架构设计模式,以及可能应用在开发的什么地方。 5 种最佳软件架构模式 让我们看几种流行的软件架构模式,许多软件公司用它们开发应用和软件。 分层软件架构 顾名思义,这种设计中的组件(代码)被划分为子任务层,多个层叠加在一起。 分层架构模式适用于: 亚马逊式的电商 Web 应用开发。 一般桌面应用程序。 微内核软件架构 微内核软件架构模式的另一个名称是插件式软件架构模式。 target=https%3A%2F%2Fterasol.medium.com%2F5-best-software-architectural-patterns-you-must-know-about-

    68720编辑于 2023-03-29
  • 来自专栏超级架构师

    软件架构软件架构样式和模式列表

    架构模式是一种通用的、可重用的解决方案,用于解决给定上下文中软件架构中常见的问题。架构模式通常被记录为软件设计模式。 架构样式目录 三层 多层体系结构 模型视图控制器 领域驱动设计 微内核 黑板模式 传感器控制器执行器 表现-抽象-控制 架构风格目录 结构 基于组件 整体应用 分层的 管道和过滤器 微服务 共享内存 以数据库为中心 黑板 基于规则 消息传递 事件驱动 aka隐式调用 发布订阅 异步消息传递 自适应系统 插件 微内核 反射 特定于域的语言 分布式系统 客户机服务器(2层、3层、n层展示了这种风格) 无共享架构 基于空间架构 讨论:请加入知识星球或者微信圈子【首席架构师圈】 微信公众号 关注微信公众号【首席架构师智库】 微信小号 希望加入的群:架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps 点击加入知识星球【首席架构师圈】 微信圈子 志趣相投的同好交流。 点击加入微信圈子【首席架构师圈】 喜马拉雅 路上或者车上了解最新黑科技资讯,架构心得。

    1.1K31发布于 2020-07-20
  • 来自专栏程序那些事

    架构之:软件架构漫谈

    简介 每一个程序员心中都有个架构师的梦想,架构是如此的重要,以至于每个程序员都在谈架构,仿佛没有架构软件是没有灵魂的,不想做架构师的程序员不是一个好的码农一样。 那么架构到底是什么呢? 架构是怎么得到的呢?今天本文将会从自身的经验来阐述一下对架构的看法。 什么是架构软件发展的初期是没有架构而言的。 软件越来复杂,要处理的任务越来越多,最终导致了系统架构的产生。 架构是在复杂软件结构中产生的,它的任务就是让这些复杂软件中的任务能够互相协作从而来完成共同的任务。当然这是从软件的目标来说的。 如果再考虑软件的实现和扩展性,那么好的架构需要让系统可读性和可扩展性更强,给未来留出一定的空间。如果从可靠性和可用性来讲,好的架构还需要保证系统高可用和容错性。 ADL 架构描述语言ADL是一种语言,提供用于定义软件体系结构的语法和语义。它是一种注释规范,提供了用于对软件系统的概念体系结构进行建模的功能,这与系统的实现有所不同。

    80830发布于 2021-06-01
  • 来自专栏程序那些事

    架构之:软件架构漫谈

    简介 每一个程序员心中都有个架构师的梦想,架构是如此的重要,以至于每个程序员都在谈架构,仿佛没有架构软件是没有灵魂的,不想做架构师的程序员不是一个好的码农一样。 那么架构到底是什么呢? 架构是怎么得到的呢?今天本文将会从自身的经验来阐述一下对架构的看法。 什么是架构软件发展的初期是没有架构而言的。 软件越来复杂,要处理的任务越来越多,最终导致了系统架构的产生。 架构是在复杂软件结构中产生的,它的任务就是让这些复杂软件中的任务能够互相协作从而来完成共同的任务。当然这是从软件的目标来说的。 如果再考虑软件的实现和扩展性,那么好的架构需要让系统可读性和可扩展性更强,给未来留出一定的空间。如果从可靠性和可用性来讲,好的架构还需要保证系统高可用和容错性。 ADL 架构描述语言ADL是一种语言,提供用于定义软件体系结构的语法和语义。它是一种注释规范,提供了用于对软件系统的概念体系结构进行建模的功能,这与系统的实现有所不同。

    65120发布于 2021-06-09
  • 来自专栏超级架构师

    软件架构软件架构权衡系列 - 第 1 部分

    我们所说的“软件架构”有很多定义和含义。构成“软件开发”、“软件设计”和“软件架构”的内容之间也存在相当大的重叠,因为这三个概念在许多方面融合在一起。 从本质上讲,它有助于将软件架构的学科视为在我们以这种或那种方式构建应用程序时做出的选择所产生的权衡之间做出有意识选择的学科。 为什么会有权衡,我们为什么关心? 这个“架构权衡”系列的目的是在涉及到软件架构的不同原则之间的权衡以及此类决策的具体技术含义时,阐明决策过程。 我们在权衡什么? 软件架构权衡和一般软件开发的现实要微妙得多,并且确实代表了选项的梯度。例如,您可以在此处选择具有一定程度的可扩展性,同时具有一定程度的简单性和互操作性。 由数字系统驱动的企业必须制定适当的计划和流程来制定软件架构、技术决策和权衡。

    50620编辑于 2022-09-26
  • 来自专栏采云轩

    浅谈软件架构

    软件架构软件系统的顶层设计,它明确软件系统包括哪些个体:子系统、模块和组件等;同时明确了个体运作和个体之间协作的规则。 软件架构便应运而生,但由于软件系统的复杂性和多变性,没有一种架构可以满足所有系统的设计需求。它与面向对象编程、软件工程一样,不是软件设计领域的银弹。 3、需求驱动架构,架起分析与设计实现的桥梁。 4、架构与开发成本的关系。 架构设计理论 1、架构设计复杂度来源 软件架构定义中我们总是能看到复杂软件这个词,什么是复杂软件呢? (5)JAVA 虚拟机参数调优以及避免 FULLGC。 (6)合适的 IO 模型和线程/进程模型。 3、存储性能优化 磁盘 IO 优化:使用 SSD 代替机械硬盘,使用 HDFS 代替普通文件系统。 主要有以下几种优化方法(高性能 Mysql): (1)增加索引 (2)优化 SQL 语句 (3)分库分表 (4)读写分离 (5)分布式关系型数据库 (6)使用 Nosql 高可用 如果系统不可用,性能再高也没卵用

    74430编辑于 2023-11-16
  • 来自专栏数据人生

    公司软件架构

    本文将介绍公司里面常用的开源软件 架构 版本管理工具Git:https://about.gitlab.com/ codereview工具phabricator ,可以和git集成:http://phabricator.org

    53320编辑于 2022-09-29
  • 来自专栏斑斓

    软件架构预述

    软件架构编年史》 作品连载 《软件架构编年史》是Herberto Graca的系列作品,我在ThoughtWorks的同事覃宇在征得作者同意与授权后,在简书陆续发布了该系列的译文。 该系列回眸了软件架构的发展历程,对主流的架构模式与设计方法进行了系统的梳理和介绍,可以作为架构师的入门读物。 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。 软件架构[…]是系统需要考虑的一组结构,它们包括软件元素和它们之间的关系,以及这些元素和关系的属性。 [3]; 它是系统的全景图[5]:pp.2,粗略的描绘,结构,组件及其关系[4] [6]; 它使项目做好变化的准备[5]:pp.30,常常是将决策推迟到最后允许的时刻[5]:pp.32; 它让项目做好重用组件和模块的准备

    53730编辑于 2023-03-23
  • 来自专栏Linyb极客之路

    软件架构入门

    软件架构(software architecture)就是软件的基本结构。 合适的架构软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。 O'Reilly 出版过一本免费的小册子《Software Architecture Patterns》(PDF), 介绍了五种最常见的软件架构,是非常好的入门读物。 ? 软件架构就是软件的基本结构。 微服务架构(当前比较流行的服务化架构,解决单体架构面临的问题,适合敏捷开发,快速迭代) 5. 一、分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。 事件驱动架构不适于做顶层架构,但适合做局部实现,几乎遍布在通信软件的各个角落。

    1.2K31发布于 2019-07-22
  • 来自专栏码农沉思录

    软件架构概念

    “你对架构这个词怎么理解?” emm ….. 实际上,软件架构分成 2 派。 1 软件架构的派别 组成派 组成派的定义非常简洁。 定义:软件系统的架构将系统描述为计算组件及组件之间的交互。 该架构关注架构实践中的客体——软件,以软件本身为描述对象。 b. 分析了软件的组成,即软件由承担不同任务的组件组成,这些组件通过相关交互,完成更高层次的计算。 但核心思想非常明确:软件架构是在一些重要方面所做出的决策的集合。 软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制及权衡,以及美学等。 …… 最后,管他什么派,只是角度不同罢了,好的架构,我认为是这样的:模块边界清晰,依赖合理,弹性灵活,性能优越,易于理解。 参考 软件架构设计——温昱

    1.2K30发布于 2019-05-05
  • 来自专栏阮一峰的网络日志

    软件架构入门

    软件架构(software architecture)就是软件的基本结构。 合适的架构软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。 一、分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。如果你不知道要用什么架构,那就用它。 这种架构软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。层与层之间通过接口通信。 虽然没有明确约定,软件一定要分成多少层,但是四层的结构最常见。 ? 事件驱动架构(event-driven architecture)就是通过事件进行通信的软件架构。它分成四个部分。 ? 优点 分布式的异步架构,事件处理器之间高度解耦,软件的扩展性好 适用性广,各种类型的项目都可以用 性能较好,因为事件的异步本质,软件不易产生堵塞 事件处理器可以独立地加载和卸载,容易部署 缺点

    97740发布于 2018-04-13
  • 来自专栏全栈程序员必看

    软件架构介绍

    一、软件架构是个什么概念,架构的定义: 1.软件架构是一个系统的草图。 2.软件架构描述的对象是直接构成系统的抽象组件。 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯。 5.在面向对象领域中,组件之间的连接通常用接口来实现。 行业专家、产品咨询师、资深顾问通常我们说的架构师是1和2的结合 三、常见软件架构分类: 1)分层架构 分层架构(layered architecture)是最常见的软件架构,也是事实上的标准架构。 事件驱动架构(event-driven architecture)就是通过事件进行通信的软件架构。它分成四个部分。 分布式的本质使得这种架构很难实现原子性操作,交易回滚会比较困难。 5)云架构 云结构(cloud architecture)主要解决扩展性和并发的问题,是最容易扩展的架构

    1.2K20编辑于 2022-08-04
  • 来自专栏Frank909

    汽车软件架构学习笔记(一):九问软件架构

    Q1.什么是软件架构软件架构的定义没有一个统一的标准,各有各的看法。 比如,一个汽车软件架构师,你说不你懂CAN协议终归不合适。 Q3.架构重要吗? 重要,关系到软件系统的成败。 Q5. 什么是推定架构和参考架构? 推定架构(presumptive architecture) 是行业占主导地位的架构族,不采用会需要特别做说明的技术。 企业架构师是站在企业的角度负责多个应用系统的开发,不负责单个系统的具体功能,专注于打造企业内的软件生态系统,促进每个软件系统为企业贡献力量。 应用架构师关注于单个软件系统的架构设计。 我举个例子。 企业架构师的职责就是打造整个智能汽车软件生态。应用架构师可以只负责其中一个系统或者子系统的架构。 8.康威定律如何描述软件架构

    1.2K20编辑于 2022-01-11
  • 来自专栏超级架构师

    软件架构」10种常见的软件架构模式

    在主要的软件开发开始之前,我们必须选择一个合适的架构,为我们提供所需的功能和质量属性。因此,在将它们应用于我们的设计之前,我们应该了解不同的体系结构。 ? 什么是架构模式? 根据维基百科, 架构模式是一种通用的、可重用的解决方案,用于解决给定上下文中软件架构中常见的问题。架构模式类似于软件设计模式,但范围更广。 5. 经纪人模式 此模式用于构造具有分离组件的分布式系统。这些组件可以通过远程服务调用相互交互。 代理组件负责协调组件之间的通信。 服务器将其功能(服务和特性)发布到代理。 用法 消息代理软件,如Apache ActiveMQ、Apache Kafka、RabbitMQ和JBoss消息传递。 ? 6. 点对点模式 在这种模式中,单个组件称为对等组件。 架构模式比较 下表总结了每种架构模式的优缺点。 ?

    1.7K11发布于 2020-05-14
领券