2021真题-架构师案例(四)

news2024/11/23 10:59:40

问题1(16分)

针对该系统功能,赵工建议解释器架构风格,李工建议管道过滤架构风格,王工则建议饮食调用,该系统从灵活性和可扩展性考虑,应采用哪种?

解析:

管道-过滤器:过滤器就是构件,管道就是连接件,每一个构件都是有输入和输出,经过构件内部处理前一个构件的输出时候一个构件的输入,前后数据流相关联。

解释器:可以构建解释器引擎,定义一套规则给使用者使用。

隐式调用:通过触发广播一个事件或多个事件,当某事件被触发,系统直接隐式调用其他模块的过程

答案:

灵活性方面,解释器可以灵活组装各个规则,来实现同的功能,灵活性最好。管道-过滤器可以通过管道来灵活组装每个流程的过滤器,灵活性次之,隐式调用是通过一个事件触发另一个事件,或者通过广播一个或多个事件,在灵活方面则差一点。

学习算法可扩展性,解释器可以直接配置新的规则,扩展性是最好的。管道-过滤器可以组装管道和过滤器,或者新增过滤器来实现,扩展性次之。隐式调用则扩展性差点,每次需要新增新的事件来触发。

考虑到该平台灵活定义机器学习流程需求和开发新算法组件加入平台,提高扩展性和灵活性建议选择解释器。

问题2(9分)

在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系〕于细分,造成了大量的多表关联查洵,影响了性能。例如当用户吉洵商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查讠旬性能。修改后的药品关系结构为:药品(药品ID,药品名称,药品型号药品价格,供应商ID,供应商名称,当前库存数。

请用200字以内的文字说明常见的反规范化设计方法,并说班用户查洵商品信息应该采用哪种反规范化设计方法。

解析:

  1. 增加冗余列:多个相同列字段在不同表新增。
  2. 增加派生列:需要聚合的数据新增一个字段存储。
  3. 合并表:多个表需要查询的字段合并成一个表。
  4. 拆分表:拆分又分为水平拆分和垂直拆分。水平拆分则是把表拆分成多个,所有表字段都一致。垂直拆分则是把表常用字段和不常用字段,拆分成两个表,富文本字段也可以拆分成单独的表。

该项目应采用增加冗余列方法。

问题3(9分)

王工认为,反规范化设计可提高吉洵的性能,但必然会带来数据的不一致性问题。清用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说月该系统应该采用哪种方法。

解析:

数据不一致解决方案 :

  1. 同步实时更新,每次更新冗余字段,冗余表都放在一个事务里,事务的原子性保证要么同时成功,要么同时失败。
  2. 异步更新,读取bin log日志,更新其他冗余数据。
  3. 异步更新,通过消息队列消费,如Kafka,Rocket等,通知其他冗余数据更新。

该项目对实时性要求不高,可以考虑异步更新,通过读取mysql 的binlog来解决。

问题4(7分)

该系统采厍了Redis来现某些特定功能呶当前热药品排名等),同时将药品关系数据放到内存以提高商品查讠旬的性能,但必然会造成Redis和MySQL的数据实时同步问题。

()Redis的数据类型包括String、Hash、List、set和zset等,清说班实现当前热药品排名的功能应该使用哪种数据类型。

()清用200字以内的文字解说班解决Redis和MySQL数啹实时同步问题的常见方案。

解析:

Zset来实现当前热药品排名。

被动一致性:Redis和MySQL数据同步可以采用延迟双删来解决,先删除Redis缓存数据,再更新MySQL数据,sleep一段时间(为了保证数据库已持久化),再次删除Redis缓存数据。

主动一致性开启额外服务去读取BinLog日志,来更新到Redis缓存。

问题5(9分)

采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这三种模型,针对上述模型,说明那些模型可以软件的需求分析?

解析:

对象模型 描述了系统的静态结构对象图建模,描述了现实对象到系统数据结构的转换。

动态模型 描述了时间和操作顺序有关的特征。主要状态图表示。

功能摸索 描述了数据的输入值和输出值,主要DFD来实现。

对象模型是动态模型和功能模型的基础数据,对象模型确定发生的对象,动态模型确定什么时候发生,功能模型则是发生了什么。

问题6(8分)

请用400字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。

解析:

网关管理方面基于云平台的可以统一在云平台管理,更方便远程管理。

数据处理方面基于云平台的数据都存储在云上,一起处理方便,冗余备份。

性能方面基于云平台的性能和安全性更好。

问题7(5分)

该系统实现用户终端与服务端的双向可靠性通信,请用300字以内的文字从数据传说可靠性对比TCP和UDP通信协议的不同,并且说明该系统用哪种协议?

解析:

TCP是在IP协议提供的不可靠基础上,采用了重发技术,为应用程序提供了一个可靠的面向连接的双全工传输服务。TCP协议适用输出数据量少,且对可靠性要求高的场景。

UDP是不可靠传输协议无连接传输协议,可以保证应用程序的通信,但是错误检测功能弱很多。

问题8:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1953968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这些有用的免费网站和工具,很多人却都不知道

在信息爆炸的今天,很多用户都不知道有哪些免费好用的网站和工具,今天小编就来和大家分享几款免费又好用的网站或工具,以便大家提升工作效率。 滴答清单:高效时间管理 滴答清单是一款广受欢迎的时间管理工具,它可以帮…

【C++】面向对象的软件设计原则

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

字符串变换 482、6、68

482. 密钥格式化&#xff08;简单&#xff09;&#xff08;20mins&#xff09; 给定一个许可密钥字符串 s&#xff0c;仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n 1 组。你也会得到一个整数 k 。 我们想要重新格式化字符串 s&#xff0c;使每一组包含 k 个字…

AndroidStudio 开发环境搭建

文章目录 AndroidStudio 开发环境搭建JDK 下载与安装&#xff0c;配置环境变量JDK1.8 下载安装配置环境变量新建JAVA_HOME编辑Path 下载AndroidStudio最新版本历史版本先安装JDK&#xff0c;后启动AS以管理员身份运行打开解决双击打不开的问题Error:你的主机中的软件中止了一个…

Golang | Leetcode Golang题解之第299题猜数字游戏

题目&#xff1a; 题解&#xff1a; func getHint(secret, guess string) string {bulls : 0var cntS, cntG [10]intfor i : range secret {if secret[i] guess[i] {bulls} else {cntS[secret[i]-0]cntG[guess[i]-0]}}cows : 0for i : 0; i < 10; i {cows min(cntS[i], c…

数据结构——单链表OJ题(下)

目录 一、链表的回文结构 思路一&#xff1a;数组法 &#xff08;1&#xff09;注意 &#xff08;2&#xff09;解题 思路二&#xff1a;反转链表法 &#xff08;1&#xff09; 注意 &#xff08;2&#xff09;解题 二、相交链表 &#xff08;1&#xff09;思路&#…

音频合成之百度飞浆微调保姆级教程

&#x1f3af; 这里我们使用&#xff0c;百度飞浆产品进行操作 至少需要提供一分钟的原声视频&#xff0c;越清晰越好&#xff0c;用于分析人物音色、声纹等特点。预防针&#xff1a;这块稍微有点难度&#xff0c;涉及代码&#xff0c;不过不用担心&#xff0c;照着操作即可。…

加载chatglm3模型时出现ValueError: too many values to unpack (expected 2)的解决方案

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

MATLAB仿真:数字信号处理IIR数字滤波器设计

目录 1&#xff0e;实验目的 2&#xff0e;实验原理 3&#xff0e;实验仪器及设备 4. 实验内容及步骤 5&#xff0e;信号产生函数mstg清单 6.实验程序及波形如下&#xff1a; 1&#xff0e;实验目的 &#xff08;1&#xff09;熟悉用双线性变换法设计IIR数字滤波器的原理…

独立开发者系列(35)——python环境的理解

新手阶段&#xff0c;为了快速入门&#xff0c;基本都是直接开始写python代码实现自己想要的效果&#xff0c;类似搭建博客&#xff0c;写个web服务器&#xff0c;搭建简易聊天室&#xff0c;偶尔也写些爬虫&#xff0c;或者使用pygame写个简单小游戏&#xff0c;也有tk库做点简…

Android AI应用开发:移动检测

基于Google ML模型的Android移动物体检测应用——检测、跟踪视频中的物体 A. 项目描述 ML Kit物体检测器可以对视频流进行操作&#xff0c;能够检测视频中的物体并在连续视频帧中跟踪该物体。 相机捕捉视频时&#xff0c;检测到移动物体并为其生成一个边界框&#xff0c;并分…

【算法/训练】:动态规划(线性DP)

一、路径类 1. 字母收集 思路&#xff1a; 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数&#xff0c;由于只能往下和往右走&#xff0c;因此走到&#xff08;i&#xff0c;j&#xff09;的位置要就是从&#xff08;i - 1&#xff0c; j&#xff09;往下走&#…

2024第八届全国职工职业技能大赛“网络与信息安全管理员”赛项技术文件及任务书

2024第八届全国职工职业技能大赛“网络与信息安全管理员”赛项技术文件及任务书 一、赛项概述&#xff1a;二、竞赛形式&#xff1a;三、竞赛规则四、竞赛样题4.1、第一场4.1.2、实操闯关赛4.2、第二场4.3、第三场 需要培训可以私信博主 欢迎交流学习&#xff01; [X] &#x1…

Tuxera NTFS for Mac 2023安装教程+2024年软件Tuxera安装包下载

‌在数字化时代&#xff0c;文件格式的兼容性问题一直是用户头疼的问题。尤其是在Mac和Windows两大操作系统之间&#xff0c;由于文件系统的不统一&#xff0c;使得文件在不同平台之间的传输和访问变得困难。然而&#xff0c;随着Tuxera NTFS for Mac 2023的出现&#xff0c;这…

好书推荐 -- 《精通推荐算法》

新书发布&#xff0c;京东限时15天内5折优惠&#xff0c;半天即可送到。 图书封底有读者微信群&#xff0c;作者也在群里&#xff0c;任何技术、offer选择和职业规划的问题&#xff0c;都可以咨询。 《精通推荐算法》&#xff0c;限时半价&#xff0c;半日达https://u.jd.com…

[CISCN2019 华东南赛区]Web11

进来先做信息收集&#xff0c;右上角显示当前ip&#xff0c;然后有api的调用地址和请求包的格式以及最重要的是最下面的smarty模版&#xff0c;一看到这个就得想到smarty模版注入 测试了一下两个api都无法访问 直接切到数据包看看能不能通过XFF来修改右上角ip 成功修改&#x…

Unity横版动作游戏 -瓦片地形和动画瓦片

(规则瓦片)瓦片地形和动画瓦片 准备阶段 在Tilemap中创建一个新的文件夹起名叫做Rule Tile&#xff0c;创建一个Rule Tile&#xff0c;用来设置瓦片地形&#xff0c;我们将用他来绘制地形图&#xff0c;类似于Godot中的瓦片地形。 这里给他取名为了Ground 1&#xff0c;用于创…

ARM32开发——PWM蜂鸣器案例

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 需求原来的驱动移植操作替换初始化 更新Play函数完整代码 需求 通过控制PB9来播放音乐&#xff0c;PB9对应的定时器通道&#xff1…

CTF之网站被黑

简单看一下网页和源码没发现什么明显漏洞 那就扫描一下目录 发现了/shell.php文件&#xff0c;访问一下&#xff0c;发现是一个后台管理登录页面 别无他法只能爆破喽&#xff0c;爆破后发现密码是hack flag{25891d9e9d377f006eda3ca7d4c34c4d}

2024第三届钉钉杯大学生大数据挑战赛【A题】完整分享

2024第三届钉钉杯大学生大数据挑战赛已经开赛&#xff0c;小编给大家带来非常实用的助力【A题】完整&#xff0c;&#xff08;看图片下方的说明&#xff09;&#xff0c;资料预览&#xff1a; 微信公众号