当前位置: 首页 > news >正文

系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)

题目:论软件架构风格 (2017年 试题2)

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格 定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和 连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系结构风格反 应了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织 成一个完整的系统。
请围绕"论软件架构风格’论题,依次从以下三个方面进行论述。

  • 1.概要叙述你参与分析和设计的软件系统开发项目以及你所担任的主要工作。
  • 2.软件系统开发中常用的软件架构风格有哪些?详细阐述每种风格的具体含义。
  • 3.详细说明你所参与分析和设计的软件系统是采用什么软件架构风格的,并分析采用该
    架构风格设计的原因。

写作要点

一、简要叙述所参与分析和开发的软件系统,并明确指出在其中承担的主要任务和开展的主要工作。
二、软件系统开发中常用的软件构架风格包括:
(1) 管道/过滤器
在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
(2) 数据抽象和面向对象
这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。
(3) 基于事件的隐式调用
基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中的过程的调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。
(4) 分层系统
层次系统组成一个层次结构,每一层为上层服务,并作为下层客户。
(5) 仓库系统及知识库
在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行。若构件控制共享数据,则仓库是一传统型数据库。若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统。黑板系统:主要由三部分组成:①知识源。知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通信,它们之间的交互只通过黑板来完成;②黑板数据结构:黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题;③控制:控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。
(6) C2风格
C2体系结构风格可以概括为,通过连接件绑定在一起按照一组规则运作的并行构件网络。C2风格中的系统组织规则如下:
系统中的构件和连接件都有一个顶部和一个底部;构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;一个连接件可以和任意数目的其他构件和连接件连接;当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
(7) 客户/服务器风格
C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
(8) 三层C/S结构风格
二层C/S结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet软、硬件的组合及集成能力有限,客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏,数据安全性不好。三层C/S体系结构是讲应用功能分成表示层、功能层和数据层三个部分,削弱二层C/S结构的局限性。
(9) 浏览器/服务器风格
浏览器/服务器风格就是三层C/S结构的一种实现方式,具体结构为浏览器/Web服 务器/数据库服务器。
三、考生需要结合自身具体参与分析和开发的实际软件系统,说明在该系统的设计和实现中,采用了哪一种或多种软件架构风格,并分析采用这种软件架构风格设计的原因。

经典范文

摘要
本人于xx年x月参与某在线教育平台“外教一对一在线教育”项目,该项目为客户提供了一对一欧美外教视频教学,社交圈,公众直播等功能,提供全方位的软件支撑,在该项目组中我担任系统架构师岗位,主要负责整体架构设计与中间件选型。本文以该教育平台为例,主要讨论了软件架构风格在该项目中的具体应用。整个系统采用具有三层的层次式软件架构的设计思想,分别是应用层,服务层,数据层。在应用层中的业务逻辑层的设计中,将整个业务系统划分为十余个子系统。服务层以SpringCloud Alibaba 服务框架为核心,数据层采用了Mybatis框架。整个系统开发工作历时x个月。目前,该系统已经稳定运行近一年半时间。实践证明,这种架构设计有效地降低了维护成本,提高了系统地开放性,可拓展性,可复用性和可移植性。

正文
随着国家对教育越来越重视,英语教育地市场份额逐步上升,其中用户口语提升地需求越来越大。为此,一些公司开始提供与外国人聊天地平台。我公司决定从国际通讯领域进军口语教育领域。为了这项战略转变,公司于xx年xx月设计在线教育平台系统(以下简称为“系统”)。该系统帮助人们与欧美外教进行面对面地口语交流与教学。其中随意聊提供了一个类似QQ视频通话,而正式课程还提供了H5互动课件以提高教学质量。与此同时,还有公众直播用于拉新,AI测试用于评测学员能力,降低成本。我参与了该项目地开发工作,担任系统架构设计师职务,主要负责设计系统架构。本项目组全体成员共9人,我主要负责项目计划制定,需求分析,整体架构设计与技术选型,以及底层设计。该项目地架构工作于次年2月完成,整个项目耗时x个月,于xx年x月完成。

在架构工作地开始阶段,我们便意识到,架构风格定义了用于描述系统地术语表和一组指导构建系统地规则,是系统组织方式地惯用模式,可以为我们地项目提供架构级地通用解决方案。这种架构级地软件重用可以极大提高我们地系统建设进程。

软件系统开发中常用地软件架构风格有:数据流风格,调用/返回风格,独立构件风格,虚拟机风格,仓库风格。数据流风格包括批处理序列与管道-过滤器,其每一步处理都是独立,顺序执行地,适用于简单地线性流程。调用/返回风格包括主程序/子程序风格,面向对象风格,层次结构风格,其进一步降低系统耦合度,明确系统层次。独立构件风格包括进程通信,事件驱动(隐式调用),其构件特点为软件重用提供了支持。虚拟机风格包括解释器风格,基于规则地系统风格,其具有良好地灵活性,可自定义规则。仓库风格包括数据库系统风格,超文本系统风格,黑板系统风格,其以数据为中心。除此之外,还有dssa,soa等架构风格。

在了解需求后,我们决定在公司技术顾问地建议下,采用层次架构风格。为了解决公司原通讯系统代码冗余问题,我们进行了系统服务化,中间层不同地服务中心提供不同地业务服务。最终,我们将系统分为应用层,服务层,数据层。应用层负责具体业务和视图展示,如网站首页,app内搜索输入与结果展示等,其又分为视图层与业务逻辑层。服务层负责为应用层提供通用服务支持,如账户管理服务,session管理服务等,其又细分为逻辑处理层与数据接口层。而数据层负责提供数据存储访问服务,如数据库服务,缓存服务,文件服务,搜索服务等。下面,我将分层次详细介绍三层层次体系结构地设计过程。

首先是应用层。在应用层中,我们将系统根据应用进行水平划分,这有助于代码管理与维护。我们将系统分为课件管理系统,公众直播系统,学员测试系统,课程管理系统等十余个子系统,这里以课件管理系统为例。课件管理系统负责学员上课所用地课件,有课件编辑,课件预览,课件交互,课件展示等多个功能模块。功能模块调用服务层地服务支撑,如课件交互需要调用服务层由RabbitMQ实现地AMQP通信服务,通过该通信服务,实现教师端与学生端地课件地同步,从而使得课件交互变得有趣,生动,具有互动性。另一方面为了区别教师端与学生端地交互权限,课件模块还需要调用服务层地账户服务,确定用户身份,从而明确用户在课件交互中地交互权限。与此同时,为了提高课件地可修改性,可互动性等,课件采用H5编写。应用层主要采用vue这一套用于构建用户界面的MVVM框架。其核心是提供对view和viewModel的双向数据绑定,view和model之间并没有直接的联系,而是通过viewModel进行交互,view的变动,自动反应在viewModel上,反之亦然,这样就保证视图和数据的一致性。此外还有动静分离,动态资源静态化等,这里不再赘述。

其次是服务层,服务层采用了SpringCloud Alibba服务框架等技术实现。随着服务器规模的扩大,开发人员增多,每个应用都变得复杂,臃肿,存在大量代码重复。为解决这个问题,提出了两个方案。一个是将应用拆分得更小,确保每个应用都保持在一个合适得大小。好处是设计能够较快地完成,代码也比较容易实现。这个方案存在一些问题,一方面数据库的连接数压力依旧存在,另一方面,代码的冗余依旧存在。所以我们采用了第二个方案——服务化方案。服务化方案,即应用层和数据层中增加一个服务层。首先从结构上来看,系统结构更为清晰明了,更为立体。稳定性上来看,许多散落的代码成为了通用服务,并交付专门的团队负责维护。处于对成本与技术成熟度的考虑,我们采用了阿里研发的SpringCloud Alibaba服务框架。SpringCloud Alibaba提供了微服务开发的一站式解决方案,其包含了开发分布式应用微服务的必需组件,如:注册中心组件Nacos,负载均衡组件Ribbon,远程调用组件OpenFeign,网关组件Gateway,服务保护组件Sentinel,服务配置管理组件SpringCloudConfig,方便开发者通过SpringCloud编程模型轻松的开发分布式应用服务。

最后是数据层,数据层涉及缓存,文件系统,数据库,数据通知服务,搜索系统等模块。由于用户对数据的访问具有集中性,所以我们基于SpringCache与Redis实现了缓存机制。由于系统的业务特性,数据库往往是读操作远多于写操作,所以我们对数据库进行了读写分离。数据访问方面,Java已经有很多成熟技术,大致分为三种。第一种是为用户提供专有API,这种方法便于实现功能,但是通用性较差。第二种是通过JDBC方式访问数据库,数据层本身作为一个JDBC的实现,也就是暴露出JDBC的接口给服务层。该方法成本很低,迁移成本也非常低,但是开发成本相对高一些。第三种方式是基于ORM或类ORM接口的方式。我们采用的就是这种方式,使用数据库时使用ORM框架-Mybatis框架,再将框架包装一层,用于实现数据层功能,对外暴露的仍然是Mybatis的接口。该方法开发高效,敏捷,成本较低,而且兼容性不错。此外,我们采用ElasticSearch作为数据层搜索引擎,数据访问层物理部署采用Proxy方式等。限于篇幅,不再赘述。

最终项目成功上线,正常运行了近一年半,收到了各方好评。尤其是H5课件的良好互动性,使得大量业界同行争相模仿,改用H5制作课件。还有我们的服务化方案架构被作为许多传统互联网企业系统重构的经典方案。在系统的架构设计中,我们引入了层次架构的设计思想,有效地降低了维护成本,提高了系统地开放性,可扩展性,可重用性以及可移植性。当然还是存在一些问题的。如H5课件采用Http协议,易被非法劫持,嵌入广告,可以将协议修改为Https来解决。还有我们采用的负载均衡算法是加权轮询算法,过于简单,常常出现资源分配不合理的现象,可以将算法改为加权最小连接数算法来解决。这些都是我在今后的系统设计和开发中需要注意和改进的地方,也是日后我应该努力的方向。

相关文章:

系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)

题目:论软件架构风格 (2017年 试题2) 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格 定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和 连接件类型&#xff…...

Spring Boot 事务传播机制详解

Spring Boot 事务传播机制详解 1. 事务传播机制概述 Spring Boot 中的事务传播机制用于处理多个事务方法之间相互调用时的事务行为,保证数据的完整性和一致性。当务传播机制定义了在调用一个事务方法时,当前事务该如何传播或传递。Spring Boot 中的事务…...

【机器学习】生成对抗网络 (Generative Adversarial Networks | GAN)

生成对抗网络 (Generative Adversarial Networks | GAN) 介绍 生成对抗网络 (Generative Adversarial Networks,简称GAN) 是一种强大的深度学习模型,用于生成具有逼真感的图像、音频和文本等内容。GAN 的核心理念是通过训练两个神经网络,生…...

[ADS信号完整性分析]深入理解IBIS AMI模型设计:从基础到实践

在高速数字设计领域,信号完整性(SI)分析对于确保系统性能至关重要。IBIS AMI(Algorithmic Model Interface)模型作为一种强大的工具,能够帮助设计师在系统层面上评估和优化SERDES(串行器/解串器…...

Plotly : 超好用的Python可视化工具

文章目录 安装:开始你的 Plotly 之旅基本折线图:简单却强大的起点带颜色的散点图:数据的多彩世界三维曲面图:探索数据的深度气泡图:让世界看到你的数据小提琴图:数据分布的优雅展现旭日图:分层数…...

Linux电话本的编写-shell脚本编写

该电话本可以实现以下功能 1.添加用户 2.查询用户 3.删除用户 4.展示用户 5.退出 代码展示: #!/bin/bash PHONEBOOKphonebook.txt function add_contact() { echo "Adding new contact..." read -p "Enter name: " name …...

蓝牙开发 基础知识

零、基础知识 0.1、Android 应用可通过 Bluetooth API 执行以下操作 扫描其他蓝牙设备查询本地蓝牙适配器的配对蓝牙设备建立 RFCOMM 通道通过服务发现连接到其他设备与其他设备进行双向数据传输管理多个连接 0.2、蓝牙进行通信的四大必需任务 设置蓝牙查找局部区域内的配对…...

QNX 7.0.0开发总结

1 QNX编译 1.1 基本概念 QNX可以直接使用Linux Makefile编译库和二进制,在Makefile文件中指定CCaarch64-unknown-nto-qnx7.0.0-g,或者CCx86_64-pc-nto-qnx7.0.0-g,保存退出后,运行source /qnx_sdk_path/qnxsdp-env.sh,…...

Golang使用讯飞星火AI接口

一、API申请 https://www.bilibili.com/video/BV1Yw411m7Rs/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 注册申请,需要在此页面获取appid、apisecret、apikey https://www.xfyun.cn/ https://console.xfyun.cn/ser…...

矫正儿童发音好帮手

《言语构音语音训练手册——下颌、唇部、舌部构音运动障碍》教辅书 儿童言语构音语音问题越来越受到家长的关注,大多数家长受到儿童说话晚、口齿不清、发音错误等问题的困扰,国外报道2岁儿童言语构音语音障碍达到17%,3岁达4%~7.5%&#xff0…...

wordpress主题导航主题v4.16.2哈哈版

1.下载授权接口源码onenav-auth-api-v2.zip ,在宝塔新建一个网站,域名为 auth.iotheme.cn,设置wordpress伪静态,申请ssl证书。将上面源码解压后上传到此网站根目录。 2. 在宝塔根目录etc下 hosts 中添加 127.0.0.1 auth.iotheme.…...

内存分布图

1.基本数据类型和常量存放在常量池中。 2.类的成员存放在堆中,如果成员是其他类对象也存放在堆中 3.数组和数组的内容放在堆中 4.类对象存放在栈中。 5.单独的对象存放在栈中。 6.引用数据类型存放在堆或栈中。 Java中对象到底存在堆中还是栈中_java对象在堆还…...

如何发布自己的NPM插件包?

安装 Node.js : 如果没有安装的,Nodejs下载安装:http://nodejs.cn/download/ 首先确保你已经安装了 Node.js 和 npm。你可以通过运行以下命令来检查是否已经安装: node -v npm -v初始化项目: 创建一个新的项目文件夹…...

计算广告读书杂记-待整理

不知不觉已经在字节干了两年多广告研发,也跳槽去了一家广告公司继续深耕,借着这个劲,重新读一遍《计算广告》这本书,并将一些重点概念进行记录。...

No module named _sqlite3解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

防飞单,赢市场:售楼处客流统计管理新篇章

在竞争激烈的房地产市场中,售楼处作为楼盘销售的重要窗口,其管理效率和服务质量直接关系到楼盘的销售业绩和品牌形象。然而,传统的客户人数统计方式往往存在诸多不足,如数据不准确、统计效率低下等,这些问题给售楼处的…...

LeetCode:419. 甲板上的战舰(遍历 Java)

目录 419. 甲板上的战舰 题目描述: 实现代码与解析: 遍历 原理思路: 419. 甲板上的战舰 题目描述: 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 X 或者是一个空位 . &…...

【python】OpenCV—Blob Detection(11)

学习来自OpenCV基础(10)使用OpenCV进行Blob检测 文章目录 1、cv2.SimpleBlobDetector_create 中文文档2、默认 parameters3、配置 parameters附录——cv2.drawKeypoints 1、cv2.SimpleBlobDetector_create 中文文档 cv2.SimpleBlobDetector_create 是 O…...

【C++】 基础复习 | 数据类型,输入,输出流 scanf printf

文章目录 1 基本数据类型1.1 基本数据类型1.2 构造类型1.3 指针类型&#xff08;Pointers&#xff09; 2 基础输入输出2.1 通过输入输出操作符>> <<2.2 通过scanf和printf输入和输出2.2.1 输出printf 函数2.2.2 输出scanf 函数2.2.3 注意事项 1 基本数据类型 了解…...

linux pxe和无人值守

一 PXE和无人值守 pxe c/s模式 允许客户端通过网络从远程服务器&#xff08;服务端&#xff09;下载引导镜像 加载安装文件 实现自动化安装操作系统 无人值守 就是安装选项不需要认为干预 可以自动化实现 pxe的优点 1 规模化 同时装配多台服务器 20多 30台 2 自动化 …...

Questflow借助MongoDB Atlas以AI重新定义未来工作方式

MongoDB客户案例导读 Questflow借助MongoDB Atlas赋能AI员工&#xff0c;助力中小型初创企业自动化工作流程&#xff0c;简化数据分析&#xff0c;提升客户体验&#xff0c;推动AI与员工的协作&#xff0c;重新定义未来工作方式。 协作式AI自动化平台 无需编码即可拥有自己的…...

数值计算精度问题(浮点型和双整型累加精度测试)

这篇博客介绍双整型和浮点数累加精度问题,运动控制轨迹规划公式有大量对时间轴的周期累加过程,如果我们采用浮点数进行累加,势必会影响计算精度。速度的不同 进一步影响位置积分运算。轨迹规划相关问题请参考下面系列文章,这里不再赘述: 1、博途PLC 1200/1500PLC S型速度曲…...

算法训练营day56

题目1&#xff1a;300. 最长递增子序列 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int lengthOfLIS(vector<int>& nums) {// dp数组含义是第i个数的严格递增子序列的长度// 内层的递推公式就是 取 0 到 i - 1之间最大的dp数组 然后 1vector…...

基于STM32的智能水产养殖系统(二)

TPS5433IDR TPS5433IDR 是一款由德州仪器 (Texas Instruments) 生产的高效降压转换器&#xff08;Buck Converter&#xff09;。它能够将较高的输入电压转换为较低的输出电压&#xff0c;适用于各种电源管理应用。 主要特性 输入电压范围: 5.5V 至 36V输出电压范围: 0.9V 至 …...

[工具探索]富士mini90拍立得使用指南

文章目录 1. 基本功能介绍1.1 相机外观1.2 电池与胶片 2. 设置相机2.1 装入电池2.2 装入胶片 3. 拍摄模式3.1 标准模式3.2 儿童模式3.3 远景模式3.4 双重曝光模式3.5 Bulb&#xff08;B&#xff09;模式3.6 **派对模式**3.7 微距模式3.8 **亮度模式**3.9 **定时拍摄模式**3.10 …...

VMware导入小白分享的MacOS版本之后,无法开机的解决方案

前言 这段时间陆续有小伙伴找到小白&#xff0c;说&#xff1a;导入小白分享的MacOS版本之后&#xff0c;出现无法开机的问题。 遇到这个问题&#xff0c;并不是说明分享版本有问题&#xff0c;因为大部分小伙伴导入之后都没有出现类似的问题&#xff0c;都是导入之后开机&…...

【CSAPP导读】导论

目录 &#x1f308; 前言&#x1f308; &#x1f4c1; 书籍介绍 &#x1f4c1; 阅读路线 &#x1f4c1; 总结 &#x1f308; 前言&#x1f308; 《深入理解计算机系统》书籍是由布赖恩特(Bryant,R.E.)著的一本经典计算机科学教材&#xff0c;常被简称为"CSAPP"&a…...

“新E代弯道王”MAZDA EZ-6亮相2024重庆国际车展

6月7日-6月16日&#xff0c;第二十六届重庆国际车展隆重开幕&#xff0c;合资品牌首款基于纯电平台的新能源轿车MAZDA EZ-6&#xff08;以下称EZ-6&#xff09;领衔长安马自达全系车型亮相N8馆T01展台。车展期间&#xff0c;重庆及周边地区的马自达用户、粉丝、车友可前往长安马…...

【lesson11】客户端backUp类的实现

文章目录 成员变量成员函数backUpgetFileIdentifierisNeedUploadupLoadRunMoudle 成员变量 private:std::string _back_dir;//备份文件夹路径名dataManager* _data;//dataManager指针对象成员函数 backUp backUp(const std::string& back_dir, const std::string& b…...

数据结构--关键路径

事件v1-表示整个工程开始&#xff08;源点&#xff1a;入度为0的顶点&#xff09; 事件v9-表示整个工程结束&#xff08;汇点&#xff1a;出度为0的顶点&#xff09; 关键路径&#xff1a;路径长度最长的路径 求解关键路径问题&#xff08;AOE网&#xff09; 定义四个描述量 …...

web应用程序是什么意思/seo 优化是什么

本文实例讲述了php强制更新图片缓存的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;/** 強制更新圖片緩存* param Array $files 要更新的圖片* param int $version 版本*/function force_reload_file($filesarray(), $version0){$html ;if(!isset($_COOKIE[force…...

有做学业水平测试的网站/网站怎么营销推广

Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用&#xff0c;主要是为了节省资源&#xff0c;在内部作为maven开发资源共享服务器来使用。 1、下载 通过root用户进去Ubuntu server $  cd /opt $  wget http://download.sonatype.com/nexus/oss/nexus-2.10.0-02-bu…...

用php制作动态网站/个人网站制作流程

根据医学和我的体验、观察&#xff0c;一个人真正睡着觉最多只有三个钟头&#xff0c;其余都是浪费时间&#xff0c;躺在枕头上做梦&#xff0c;没有哪个人不做梦。至于醒来觉得自己没有做梦&#xff0c;那是因为他忘记了。 正午&#xff08;即中午12点&#xff09;只要闭眼真…...

做房产抵押网站需要什么手续费/免费发布软文广告推广平台

随着Android系统的日益发展和日渐成熟&#xff0c;各种平台的合作就日渐频繁。现在主要互联网公司&#xff0c;都退出了各种各样的插件功能。如第三方支付&#xff0c;第三方联合登陆和微博分享等等功能。 近期由于业务的需要&#xff0c;公司提出将项目的功能打成jar包&#…...

网站创建工具/拉新推广赚钱的app

首先了解下OGNL的概念&#xff1a; OGNL是Object-Graph Navigation Language的缩写&#xff0c;全称为对象图导航语言&#xff0c;是一种功能强大的表达式语言&#xff0c;它通过简单一致的语法&#xff0c;可以任意存取对象的属性或者调用对象的方法&#xff0c;能够遍历整个对…...

顺德做网站那家好/新闻热点事件

我正在研究“Python For Data Analysis”,我不了解特定的功能.添加两个pandas系列对象将自动对齐索引数据,但如果一个对象不包含该索引,则返回为NaN.例如来自书&#xff1a;a Series([35000,71000,16000,5000],index[Ohio,Texas,Oregon,Utah])b Series([NaN,71000,16000,3500…...