管道-过滤器和仓库的区别?
- 独立的数据仓库,处理流独立,处理数据用连接仓库工具
- 数据与处理在一起,改动的话需要重启系统
- 需要仓库工具与仓库连接,数据与处理分离,性能差
- 可以支持并发连接访问仓库,提升性能
面向对象和基于规则区别?
- 规则是独立的,用户和规则动态组合
- 加入新的用户级别和折扣规则必需修改代码,并且重启系统
- 用户和规则在一起,不需要解释,性能较好
管道-过滤器 和 数据仓储的区别?
(1)通过仓储中间件来交互
-
流动数据结构,流式数据
-
数据驱动
-
根据特定的仓储规则进行扩展
-
给出SOA架构四种基本功能?
-
负责各个服务之间数据格式的转换。
-
负责元数据和每个服务的注册。
-
ESB服务总线把每个服务一起管理,方便交互,将不同系统通过api,web Service来进行连接。
-
路由、发现、选择等能力。
-
以及服务请求的负载均衡。
-
分析软件架构评估所关注的质量属性有哪些,每个具体含义?评估的方法有哪些?具体实施如何?
- 性能:接口的响应时间,吞吐量,准确性,按规定时间内返回给用户。
- 可修改性:开发人员在规定时间内以较少的成本完成修改开发。
- 安全性:数据和系统是安全的,保证用户不会恶意访问到。
- 可用性:系统宕机在规定时间内启动备用系统,保证不会阻断用户流程。
问卷调成:个人主观性太强。
基于度量:对项目的细节要求能力太强。
基于场景,分为软件架构权衡 分析ATAM(Architecture Traceoff AnalyzeMethod),成本分析CBAM,软件系统分析法CAAM。
实施?
先对大家做个ATAM介绍,
分为:场景和需求的收集、架构视图和场景的实现 、属性模型的构造和分析、评估和折中
- 微服务特点,写五条?
-
性能提升,针对功能来划分团队,将各个功能分别部署在单个服务器。
-
不在局限于编程语言,不同的微服务可以采用不同的语言实现,只需要按标准的协议沟通。
-
按功能划分,可以采用更小的团队来维护。
-
独立的服务组件,可复用更高。
-
数据离散化管理,各个服务数据会出现不一致情况。
-
基础设施,自动化管理。
-
详细论述基于构件开发的方法主要过程?
- 修改构件
- 组装构件
- 评价构件
- 部署构件
- 获取构件
自底向上开发。
- 详细论述软件工程软件维护性因素主要有哪些?
-
可修改性维护,在规定时间内较少成本开发修改。
-
可理解性维护:用户和开发人员理解。
-
易完善性维护。
-
预防性维护:提出系统风险点,给出预防措施,减少风险。
-
常用架构风格有哪些,特点?
-
面向对象:实体转换为代码里的对象,方便理解,适合较大项目的开发。
-
隐式调用风格:可以将业务解耦,还可以异步提高接口性能。
-
层次架构风格:提高并行开发效率,解耦业务数据和业务逻辑,展示层没有逻辑处理,安全性也得到提升。
-
基于构件风格:提取公共的代码组成构件,方便调用,减少冗余代码量。
-
安全架构哪些方法解决?
-
sql注入。
-
用户登入信息鉴权。
-
用户密码加密MD5。
-
系统的可用性容灾备份安全。
-
数据加密,摘要,数字签名。
-
日志记录,数据双份保险。
-
层次架构四个层次的作用?
- 展示层:主要接受用户页面请求的入参,以及返回数据库数据给用户可视化。
- 中间逻辑处理层:中间层可以分为controller控制层和DomainService领域层和Service层,controller和展示层交互,接受入参,领域层处理主要业务逻辑,service主要与数据库访问层交互。
- 数据库访问层:解耦业务数据和业务逻辑,可以隐藏sql和数据库事务处理,减少开发人员学习成本。显式给开发人员调用方式使用,也可以自定义sql增加复杂sql的处理能力。
- 数据库层:主要负责业务数据的持久化。