架构风格区别-架构案例(五十九)

管道-过滤器和仓库的区别?

  1. 独立的数据仓库,处理流独立,处理数据用连接仓库工具
  2. 数据与处理在一起,改动的话需要重启系统
  3. 需要仓库工具与仓库连接,数据与处理分离,性能差
  4. 可以支持并发连接访问仓库,提升性能

面向对象和基于规则区别?

  1. 规则是独立的,用户和规则动态组合
  2. 加入新的用户级别和折扣规则必需修改代码,并且重启系统
  3. 用户和规则在一起,不需要解释,性能较好

管道-过滤器 和 数据仓储的区别?

(1)通过仓储中间件来交互

  1. 流动数据结构流式数据
  2. 数据驱动
  3. 根据特定的仓储规则进行扩展

  1. 给出SOA架构四种基本功能?
  1. 负责各个服务之间数据格式的转换。
  2. 负责元数据和每个服务的注册。
  3. ESB服务总线把每个服务一起管理,方便交互,将不同系统通过api,web Service来进行连接
  4. 路由、发现、选择等能力。
  5. 以及服务请求的负载均衡。

  1. 分析软件架构评估所关注的质量属性有哪些,每个具体含义?评估的方法有哪些?具体实施如何?
  1. 性能:接口的响应时间,吞吐量,准确性,按规定时间内返回给用户。
  2. 可修改性:开发人员在规定时间内以较少的成本完成修改开发。
  3. 安全性:数据和系统是安全的,保证用户不会恶意访问到。
  4. 可用性:系统宕机在规定时间内启动备用系统,保证不会阻断用户流程

问卷调成:个人主观性太强。

基于度量:对项目的细节要求能力太强。

基于场景,分为软件架构权衡分析ATAM(Architecture Traceoff Analyze Method),成本分析CBAM,软件系统分析法CAAM。

实施?

先对大家做个ATAM介绍,

分为:场景和需求的收集、架构视图和场景的实现属性模型的构造和分析、评估和折中

  1. 微服务特点,写五条?
  1. 性能提升,针对功能来划分团队,将各个功能分别部署在单个服务器。
  2. 不在局限于编程语言,不同的微服务可以采用不同的语言实现,只需要按标准的协议沟通
  3. 按功能划分,可以采用更小的团队来维护
  4. 独立的服务组件,可复用更高
  5. 数据离散化管理,各个服务数据会出现不一致情况
  6. 基础设施,自动化管理

  1. 详细论述基于构件开发的方法主要过程?
  1. 修改构件
  2. 组装构件
  3. 评价构件
  4. 部署构件
  5. 获取构件

自底向上开发。

  1. 详细论述软件工程软件维护性因素主要有哪些?
  1. 可修改性维护,在规定时间内较少成本开发修改。
  2. 可理解性维护:用户和开发人员理解。
  3. 易完善性维护。
  4. 预防性维护:提出系统风险点,给出预防措施,减少风险

  1. 常用架构风格有哪些,特点?
  1. 面向对象:实体转换为代码里的对象,方便理解,适合较大项目的开发
  2. 隐式调用风格:可以将业务解耦,还可以异步提高接口性能。
  3. 层次架构风格:提高并行开发效率,解耦业务数据和业务逻辑,展示层没有逻辑处理,安全性也得到提升。
  4. 基于构件风格:提取公共的代码组成构件,方便调用,减少冗余代码量

  1. 安全架构哪些方法解决?
  1. sql注入。
  2. 用户登入信息鉴权。
  3. 用户密码加密MD5
  4. 系统的可用性容灾备份安全。
  5. 数据加密,摘要,数字签名。
  6. 日志记录,数据双份保险

  1. 层次架构四个层次的作用?
  1. 展示层:主要接受用户页面请求的入参,以及返回数据库数据给用户可视化。
  2. 中间逻辑处理层:中间层可以分为controller控制层和DomainService领域层和Service层,controller和展示层交互,接受入参,领域层处理主要业务逻辑,service主要与数据库访问层交互。
  3. 数据库访问层:解耦业务数据和业务逻辑,可以隐藏sql和数据库事务处理,减少开发人员学习成本。显式给开发人员调用方式使用,也可以自定义sql增加复杂sql的处理能力。
  4. 数据库层:主要负责业务数据的持久化。

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

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

相关文章

隐藏微信网页右上角的按钮、在微信网页中获取用户的网络状态,支付等

1.隐藏微信网页右上角按钮 <script type"text/javascript">document.addEventListener(WeixinJSBridgeReady,function onBridgeReady() {// 通过下面这个API隐藏右上角按钮WeixinJSBridge.call(hideOptionMenu); });document.addEventListener(WeixinJSBridge…

【经验分享】如何构建openGauss开发编译提交一体化环境

前文 本文适合对openGauss源代码有好奇心的爱好者&#xff0c;那么一个友好的openGauss源代码环境应该是怎么样的。openGauss的开发环境是如何设置的&#xff1f;openGauss的编译环境是如何构建的&#xff1f;如何向openGauss提交代码&#xff0c;笔者集合官方和几位博主实践提…

为什么要学习python?

Python是一种广泛使用的编程语言&#xff0c;它的简洁易读以及强大的功能使得它成为了许多人喜爱的编程语言之一。无论是初学者还是有经验的开发者&#xff0c;学习Python都是非常有价值的。在本篇博文中&#xff0c;我们将探讨学习Python的一些重要原因&#xff0c;并提供一些…

2023年【危险化学品生产单位主要负责人】考试报名及危险化学品生产单位主要负责人模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品生产单位主要负责人考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新危险化学品生产单位主要负责人模拟考试题题目及答案&#xff01;多做几遍&#xff0c;其实通过危险化学品生产单位主要负…

cpp中this和*this区别

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家访问。 this&#xff1a;是返回当前对象的地址&#xff08;指向当前对象的指针&#xff09;。 *this&a…

用nodejs爬虫台湾痞客邦相册

情景:是这样的,我想保存一些喜欢的小伙伴的照片,一张张保存太慢了, 所以我写了个js,放在国外服务器爬,国内的自己解决~ 使用方法 1.点相册随便一张, 复制url, 这张开始接下来的图片都会保存 /*** 2023年10月23日 22:58:44* 支持解析痞客邦相册* 只需要复制相册第一张图片的ur…

新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP

新款模块上线实现SIP模块与扩拨电话之间打点与喊话功能 IP矿用电话模块SV-2800VP 一、简介 SV-2800VP系列模块是我司设计研发的一款用于井下的矿用IP音频传输模块&#xff0c;可用此模块打造一套低延迟、高效率、高灵活和多扩展的IP矿用广播对讲系统&#xff0c;亦可对传统煤…

嵌入式实时操作系统的设计与开发 (启动内核学习)

RTOS的引导模式 RTOS的引导是指将操作系统装入内存并开始执行的过程。 时间限制主要包括&#xff1a;系统要求快速启动和系统启动后要求程序能实时运行。 空间限制主要包括&#xff1a;Flash等非易失性存储空间限制和RAM等易失性存储空间限制。 通常不可能同时满足两种要求&a…

Linux 下安装配置部署MySql8.0

一 . 准备工作 MySQL安装包&#xff1a;在官网下载需要的版本&#xff0c;这里我用的版本是 MySQL 8.0.34 https://dev.mysql.com/downloads/mysql/ 本次linux机器使用的是阿里云ECS实例 二 . 开始部署 1. 将安装包上传至服务器 解压到当前文件夹 tar -zxvf mysql-8.0.34…

SAP HANA Time Zone设置

通常对于MINICHECK中检查出来的Timezone时区设置问题&#xff0c;可以通过以下方式进行修改 对于ABAP系统 修改HANA 参数即可 • indexserver.ini -> [global] -> timezone_default_data_client_name 000 • indexserver.ini -> [global] -> timezone_default_da…

蓝桥杯每日一题2023.10.21

后缀表达式 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 30分解法&#xff1a;要求出最大的结果就需要加的数越大&#xff0c;减的数越小&#xff0c;以此为思路简单列举即可 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N 2e5 10…

微信小程序设计之主体文件app-json-pages

一、新建一个项目 首先&#xff0c;下载微信小程序开发工具&#xff0c;具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后&#xff0c;注册小程序账号&#xff0c;具体注册方法&#xff0c;可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…

【2021集创赛】Digilent杯二等奖:基于FPGA的动态视觉感知融合的运动目标检测系统

杯赛题目&#xff1a;Diligent杯&#xff1a;基于FPGA开源软核的硬件加速智能平台 参赛组别&#xff1a;A组 设计任务&#xff1a; 利用业界主流软核处理器(仅限于Cortex-M系列及 RISC-V系列)在限定的DIGILENT官方FPGA平台上构建SoC片上系统&#xff0c;在 SoC中添加面向智能应…

Python数据挖掘 | 升级版自动查核酸

&#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于恒川的日常汇报系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏C语言初阶、C…

GoLong的学习之路(五)语法之数组

书接上回&#xff0c;上回书说到&#xff0c;循环语句&#xff0c;在go中循环语句的少了whlie这个关键词&#xff0c;但是与之for可以改这个改这个特点。并且在终止关键词中&#xff0c;又有标签可以方便&#xff0c;停止。这次说数组 文章目录 Array(数组)数组的初始化方法一方…

【golang】mysql默认排序无法实现 使用golang实现对时间字符串字段的排序

一、问题场景 1、mysql实现排序-性能低下 例如&#xff1a;某字段 finish_time 数据如下&#xff1a;6:13:27、 10:56:11、 21:56:11 会出现顺序如下的场景&#xff1a; 10:56:11、 21:56:11、6:13:27 二、解决方案 2、golang实现排序 package mainimport ("fmt"&…

计算机网络_03_tcp/ip四层模型

文章目录 1.为什么会有tcp/ip?2.tcp/ip是什么?3.为什么会有tcp/ip四层模型?4.tcp/ip四层模型介绍 1.为什么会有tcp/ip? 早期的计算机(计算机网络没有出现之前)几乎都是各自为战, 各种操作系统厂家百花齐放, 市面上的大部分计算机使用的都是不同的操作系统, 为每个人提供定…

git简介和指令

git是一个开源的的分布式版本控制系统&#xff0c;用于高效的管理各种大小项目和文件 用途&#xff1a;防止代码丢失&#xff0c;做备份 项目的版本管理和控制&#xff0c;可以通过设置节点进行跳转 建立各自的开发环境分支&#xff0c;互不影响&#xff0c;方便合并 在多终端开…

【1024纪念】来自AI的博客

六年的程序员之路&#xff1a;我们的成长与未来 今天&#xff0c;我们迎来了一个特殊的纪念日——程序员节。这个节日不仅是对我们程序员的致敬&#xff0c;也是对科技进步和创新的庆祝。在这个特别的日子里&#xff0c;我想回顾我们六年的程序员之路&#xff0c;以及展望未来…

【Javascrpt】比较,逻辑运算符

目录 比较运算符 逻辑运算符 &&(与&#xff09; ||&#xff08;或&#xff09; 两真&#xff08;||左侧为真&#xff0c;||右侧为真&#xff09; 两假&#xff08;||左侧为假&#xff0c;右侧为假&#xff09; 一真一假&#xff08;||一侧为假&#xff0c;另一侧为…