加入VIP
软件架构设计电子书书-软件架构设计温昱第二版pdf免费版

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版

编辑点评:软件架构设计温昱第二版pdf

本书对于有志于成为架构师的程序员们具有非常有效的指导意义,对于已经成为架构师的同行们系统化规范架构设计也是一本很好的教材。感兴趣的欢迎下载阅读学习

软件架构设计温昱第二版pdf

内容简介

本书围绕“软件架构设计”主题,从“程序员”成长的视角,深入浅出地讲述了架构师的修炼之道。从“基础篇”、到“设计过程篇”、到“模块划分专题”,

本书覆盖了架构设计的关键技能项,并且对于架构设计过程中可能出现的各种问题给与了解答。

本书对于有志于成为架构师的程序员们具有非常有效的指导意义,对于已经成为架构师的同行们系统化规范架构设计也是一本很好的教材。

相关内容部分预览

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(1)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(2)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(3)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(4)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(5)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(6)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(7)

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(8)

作者简介

温昱资深咨询顾问,软件架构专家。软件架构思想的传播者和积极推动者,中国软件技术大会杰出贡献专家。十五年系统规划、架构设计和研发管理经验,

在金融、航空、多媒体、电信、中间件平台等领域负责和参与多个大型系统的规划、设计、开发与管理。

目  录

第1章 从程序员到架构师

1.1 软件业人才结构

1.1.1 金字塔型,还是橄榄型?

1.1.2 从程序员向架构师转型

1.2 本书价值

1.2.1 阅读路径1:架构设计入门

1.2.2 阅读路径2:领会大系统架构设计

1.2.3 阅读路径3:从需求到架构的全过程

1.2.4 阅读路径4:结合工作,解决实际问题

第1部分 基本概念篇

第2章 解析软件架构概念

第3章 理解架构设计视图

第2部分 实践过程篇

第4章 架构设计过程

第5章 需求分析

第6章 用例与需求

第7章 领域建模

第8章 确定关键需求

第9章 概念架构设计

第10章 细化架构设计

第11章 架构验证

第3部分 模块划分专题

第12章 粗粒度“功能模块”划分

第13章 如何分层

第14章 用例驱动的模块划分过程

第15章 模块划分的4步骤方法——运用层、模块、功能 模块、用例驱动

10 个常见的软件架构

有没有想过如何设计大型企业及系统?在开发之前,我们必须要选择一个合适的架构,以保证我们软件的功能和质量。今天就简单介绍一下常用的 10 个架构。

什么是架构?

一直以来,在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。甚至于很多架构师一说架构,就开始谈论什么应用架构、硬件架构、数据架构等等。

我曾经也到处寻找过架构的定义,请教过很多人,结果发现,没有大家都认可的定义。套用一句关于 big data 流行的笑话,放在架构上也适用:

Architecture is like teenage sex,everybody talks about it,nobody really knows what is it。

事实上,架构在软件发明时的 N 多年以前,就已经存在了,这个词最早是跟随着建筑出现的。在软件工程中,架构以理解为:

根据要解决的问题,对目标系统的边界进行界定。

并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。

并对这些切分出来的部分,设立沟通机制。

根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

(上面关于什么是架构摘自 InfoQ,资深架构师王概凯 Kevin 的专栏)

这篇文章将简述常见的 10 种架构模式的概念、用法以及其优缺点。

分层模式 (Layered pattern)

客户端/服务器模式 (Client-server pattern)

主/从模式 (Master-slave pattern)

管道/过滤器模式 (Pipe-filter pattern)

代理模式 (Broker pattern)

对等模式 (Peer-to-peer pattern)

事件总线模式 (Event-bus pattern)

模型/视图/控制器 (MVC) 模式 (Model-view-controller pattern)

黑板模式 (Blackboard pattern)

解析器模式 (Interpreter pattern)

1. 分层模式 (Layered pattern)

分层模式用于对结构化设计的软件进行层次拆解,每个层次为独立的抽象,为其上层抽象提供服务。

系统通常被拆分为以下四个层次:

表示层(也称为 UI 层)

应用层(也称为服务层)

业务逻辑层(也称为领域层)

数据访问层(也称为持久化层)

使用场景

通用桌面应用程序

电子商务 Web 应用

2. 客户端/服务器模式 (Client-server pattern)

客户端/服务器模式由两个部分构成:一个服务器与多个客户端。服务器组件同时为多个客户端组件提供服务。客户端向服务器发启服务请求,服务器将相应服务信息回应给客户端。此外,服务器持续监听来自客户端的请求。

使用场景

电子邮件、文件共享及银行业务等在线应用

3. 主/从模式 (Master-slave pattern)

主/从模式由两个部分构成:主设备与从设备。主服务组件将作业分发给多个从设备组件,并根据这些从设备反馈的结果,计算生成最终结果。

使用场景

数据库复制,主数据库被认定为权威数据源,各从数据库与主数据保持同步

在计算机系统中通过总线互连的各设备(包括主设备与从设备)

4. 管道/过滤器模式 (Pipe-filter pattern)

管道/过滤器模式用于构造用于生成及处理数据流的系统。每个处理过程都封装在过滤器(filter)组件之中,要处理的数据通过 管道(pips) 进行投递。管道同时用于作为 过滤器(filter) 间的缓冲及同步。

使用场景

编译器,一系列的过滤器用于词法分析、语法分析、语义分析及代码生成

生物信息学的工作流

5. 代理模式(Broker pattern)

代理模式用于在结构化系统中对组件解耦。系统内各组件间采用远过程调用(remote service invocations)的方式交互。代理(Broker)组件充当组件间通讯的协调角色。

提供服务的组件将其能力(服务以及特性)发布给代理,客户端均向代理请求服务,由代理将请求重定向到先前已发布过对应服务的组件进行处理。

使用场景

消息中间件软件:Apache ActiveMQ,Apache Kafka,RabbitMQ 与 JBoss 等等

6. 对等模式 (Peer-to-peer pattern)

对等模式中的组件称之为对等体(peer),对等体既作为向其他对等体请求服务的客户端,同时也做为响应其他对等体请求的服务端。对等体可以在运行过程中动态地改变其角色,即,既可以单独做为客户端或服务端运行,又可同时作为客户端与服务端运行。

使用场景

网络文件共享:Gnutella 与 G2)

流媒体协议:P2PTV 与 PDTP.

流媒体应用: Spotify.

7. 事件总线模式(Event-bus pattern)

事件总线模式应用于事件处理,主要由四个组件构成:事件源(event source),事件侦听者(event listener),通道(Channel)以及总线(event bus)。 事件源将消息发布到总线的特定通道,侦听者订阅相应的通道,事件源所发布的消息经通道通告给订阅通道的侦听者。

使用场景

Android 开发

通告(Notification)服务

8. 模型/视图/控制器 (MVC) 模式(Model-view-controller pattern)

模型/视图/控制器模式(简称 MVC 模式)将交互式应用程序拆分为三个部分:

模型(model) – 包含核心功能及数据

视图(view) – 呈现信息给用户(通过有多个视图)

控制器(controller) – 处理用户的输入操作

MVC 模式通过将内部信息表示、用户信息呈现以及用户操作接收分开的方式解耦组件,实现高效代码重用。

使用场景

主流开发语言所构建的互联网网页应用架构

Django 与 Rails 等网页应用开发框架

9. 黑板模式(Blackboard pattern)

黑板模式适用于 无预知确定解决策略 的问题,主要由三个组件构成:

黑板(blackboard) – 用于存储解空间对象的结构化全局内存

知识(knowledge)源 – 能自表意的专用模块

控制(control)组件 – 选择、配置与执行的模块

所有的组件均能访问黑板,组件可将新生成的数据对象写入黑板,也可以通过模式匹配从黑板中获取知识源所生成的特定数据。

使用场景

语音识别

车辆识别和追踪

蛋白质的结构鉴定

声纳信号解析

10. 解析器模式(Interpreter pattern)

解析器模式用于设计语言的解析程序,主要用于指定评估程序代码行,即解析出特定语言的语句与表达式,其核心思想是为语言的每个符号定义相应的类。

使用场景

SQL 等数据库查询语言

通讯协议描述语言

软件架构设计温昱第二版pdf截图

软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(9)软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(10)软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(11)软件架构设计电子书书-软件架构设计温昱第二版pdf免费版插图(12)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

评论