架构师面试题

架构师面试题

  1. 莫扎特6大作用:
    1. 桥梁:从“产品”听众获取灵感
    2. 指引:指引“研发”乐队完成演奏
    3. 分割:将长篇大作切割成乐章
    4. 交互:将乐章和声部交叠协奏
    5. 决策:在思考中挣扎,在决策中完美
    6. 演进:G小调第40交响曲-悲凉中前进
  2. 作为架构师,你的日常工作有哪些?
    1. 工作的广度
    2. 组成和决策
    3. 莫扎特的6大作用
    4. 加分项:方法论完成、新架构框架、新技术框架
  3. 作为架构师,有什么推崇的书或者大师
    1. 学习能力
    2. 知识体系
    3. 加分项:体系书籍、新技术书籍、大师互动分享
  4. 你在架构过程设计过程中碰到的难点?
    1. 案例深度
    2. 决策派思路
    3. 从莫扎特6大作用出发
    4. 加分项:决策依据;理论->实际->理论
  5. 作为架构师,遇到部门冲突如何解决?
    1. 决策派,语境、立场、沟通渠道处理,架构决策
    2. 加分项:方法论完整(通用语言、RASCI决策、SWOT分析)
  6. 作为架构师,平时的设计重点关注哪些因素?
    1. 质量(扩展性、性能、可用性、安全性、耦合度)
    2. 加分项:多角度分析、实际案例侧重点清晰
  7. 作为架构师,如何处理新架构和老架构之间的冲突
    1. 解决技术债,架构演进策略
    2. 加分项:多模式使用(拆迁、修缮、绞杀)、冲突预防
  8. OpenGroup面试题:作为架构师,挑选一个你的实战项目,描述该应用架构如何随着组织架构的变化而演进
  9. OpenGroup面试题:挑选一个项目,描述该项目中,你如何挑选、复用和剪裁合适的架构设计框架、设计模式、架构风格、软件包?
  10. Windows操作系统在图形用户界面处理方面采用的核心架构风格是什么风格?
    1. 理解“事件驱动”软件架构风格
    2. 加分项:能结合注册时间处理和回调函数进行深入分析
  11. Java语言宣传的“一次编写,到处运行”的特性,从架构风格上看符合什么风格的特点?
    1. 理解“虚拟机”软件架构风格
    2. 加分项:能结合Java解释型语言、JVM原理,进入深入分析
  12. 如果要开发一个Web服务端处理软件,对客户端请求信息进行解析与处理,包括HTTP报头分离、SOAP报文解析等功能。采用什么架构风格,最适合该服务端处理软件?
    1. 理解“管道-过滤器”软件架构风格
    2. 加分项:能结合Web服务在数据传输上的协议分层原理,进行深入分析。
  13. 某公司承接了一个开发家用空调自动调温器的任务,调温器测量外部空气温度,根据设定的期望温度控制空调的开关。根据该需求,公司应采用哪种架构风格最为合适?应该是基于规则的系统架构风格。
  14. 某游戏公司欲开发一个大型多人即时战略游戏,游戏设计的目标之一是能够支持玩家自行创建战役地图,定义游戏对象的行为和之间的关系。针对该目标,公司应该采用哪种架构风格最为合适?应该是基于面向对象风格。
  15. 对于新业务,如何完成一个完整的架构设计流程?
    1. 题眼:架构设计方法论(如ABSD的需求、设计、文档化、复审、实现、演化)
    2. 加分项:能将设计原则、架构风格和演化过程描述清楚
  16. 如何在架构设计中选择合适的软件风格和软件模板?
    1. 题眼:需求驱动论(功能、质量、限制)
    2. 加分项:能结合实际项目,描述如何根据需求选择风格和模板
  17. 在一个订单输入子系统中,创建新订单和更新订购单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单”与用例“核查客户账号”之间是什么关系?
    1. 题眼:理解“包含”、“扩展”、“泛化”等基本关系
    2. 加分项:能结合UML图来描述和分析
  18. 题目:请描述一下你在大型架构设计中的职责,以及如何和其他部门同事配合的?
    1. 题眼:人员分工、架构师沟通、架构师职责、组件和决策
    2. 加分项:能结合特定方法论(如ABSD、DSSA、AT等)
  19. 题目:请描述一下对于领域架构的理解?
    1. 题眼:领域驱动模型、DSSA领域架构开发方法
    2. 加分项:能将业务映射到领域,并能复用现有架构元件
  20. 题目:请描述一下你们公司的业务模型
    1. 题眼:领域驱动模型,本公司核心域DSSA软件架构
    2. 加分项:能将所在行业的领域DSSA软件架构解释清楚
  21. 题目:你在架构中通常采用什么方式来描述软件架构
    1. 题眼:视角与视图
    2. 加分项:能结合实际案例,分析多视角架构设计思路
  22. 题目:你在架构设计中通常采用什么方式来描述需求
    1. 题眼:用例与质量场景
    2. 加分项:能结合实际案例,分析如果妥协用例和质量要求

架构演进

架构演进的模式

  1. 拆迁者模式:在原系统之外,针对原来的系统进行重构,重构完成后将API指向重构后的系统。
  2. 绞杀者模式:对原来的系统中的各项服务进行一个个地重构并且替换(服务重构后进行替换),逐步将原来的系统替换成新的系统。
  3. 修缮者模式:对原来的各项服务进行修缮,修缮后进行替换。

适应度函数

  1. 原子适应度函数(单一服务测试)和整体适应度函数(整体服务测试)
  2. 触发式适应度函数(对上线服务临时测试)和持续式适应度函数(所有非功能测试作为长期任务一直跑在任务中心中)
  3. 静态适应度函数(选择固定的边界值等进行测试)和动态适应度函数(随机选择值进行测试)
  4. 自动适应度函数和手动适应度函数
  5. 临时适应度函数(感觉应用撑不住,临时)和预设适应度函数(假设应用可能会发生变化)

通过以上的适应度函数对架构演进进行配合测试。

架构中的交流问题

交流的问题出现在哪里?

  1. 语境不同:通过建立通用语言(Ubiquitous Language)解决。
  2. 立场分析:通过SWOT分析法或者其他分析法来解决。
  3. 渠道失真:在决策中需要召集相关的人员进行决策,防止单向沟通的渠道问题。

在决策中需要召集利益相关者使用类似SWOT分析等,来决定方案是否执行。

Test Markdown

Welcome to Leanote! 欢迎来到Leanote!

1. 排版

Bolrder
斜体

这是一段错误的文本。

引用

引用Leanote官方的话, 为什么要做Leanote, 原因是…

有充列表

  1. 支持Vim
  2. 支持Emacs

无序列表

  • 项目1
  • 项目2

Read More

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you
can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

$$\begin{equation}
e=mc^2
\end{equation}$$

More info: Deployment