架构师训练营 - 架构方法: 架构师如何做架构

用户头像
Pontus
关注
发布于: 2020 年 06 月 08 日

架构师常见面试题



  • 什么是软件架构

  • 如何写一个架构设计文档,文档中应该包含哪些内容

  • Spring如何实现单例,和设计模式中单例的实现方式有什么不同

  • 淘宝等大规模分布式互联网应用系统使用哪些技术方案和手段,主要解决什么问题

  • 什么是CAP原理,描述某个NoSQL产品是如何解决CAP问题的

  • 如何进行性能测试,性能测试的流程是什么,主要关注指标有哪些

  • 为什么在系统性能测试时,并发请求数逐渐增加,错误响应或响应超时的比例快速增加?从操作系统的线程与进程调度原理以及计算机内部资源使用角度分析

  • 为什么支持异步I/O的Web服务器,如Nginx,要比阻塞时Web服务器,如Apache,性能好很多,前者比后者可以处理的并发连接请求多几十甚至数百倍,从异步I/O的线程阻塞特性分析

  • 给定一个key,为什么可以在hash表中快速查找到value

  • 数据库索引是如何存储的

  • Java虚拟机的垃圾回收原理是什么?Go中的三色标记?

  • 你怎么理解领域驱动模型DDD,优缺点是什么

  • 导致系统故障无法正常访问的原因有哪些,保障系统稳定高可用的方案有哪些,列举并简述

  • 为什么单向散列加密可以保护用户密码安全,细化使用单向散列加密保护用户密码的时序图

  • Spark为什么比MapReduce快

  • 淘宝、头条等应用会针对不同用户推荐不同的商品和内容,如何做到,用了那些算法

  • Google搜索页面如何排序,正好使用户最想看到的页面排到前面

  • 区块链如何保证数据无法被篡改

  • 什么是边缘算法

  • 如果你觉得系统需要进行重构,但是老板和团队都觉得没必要,怎样说服

  • 成为架构师以后,如何承担起架构师的职责,如何开展架构设计工作

架构师的主要职责



  • 编写架构设计文档

  • 开发变成框架

  • 重构软件代码

  • 设计系统架构

  • 进行技术选型,解决技术应用中的问题

  • 优化系统性能

  • 模块分解与微服务架构重构

  • 保障系统安全与高可用

  • 大数据应用

  • 技术创新

  • 沟通管理

架构师的主要能力



  • 编程能力

  • 基础技术掌握能力

  • 常用技术产品的理解与应用能力

  • 性能优化与分析故障的能力

  • 常用架构模式和框架的理解与应用能力

  • 建模以及设计文档的方法和能力

  • 业务理解与功能模块及非功能模块的拆解能力

  • 快速学习能力

  • 沟通与领导能力

软件架构



  • 软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计

4+1架构视图



  • 逻辑视图(logical view), 设计的对象模型

  • 过程视图(process view), 捕捉设计的并发和同步特征

  • 物理视图(physical view), 描述软件到硬件的映射,反映部署特性

  • 开发视图(development view),描述在开发环境中软件的静态组织结构

  • 场景设图(scenarios), 描述用例场景

使用UML进行软件架构设计与建模

UML图的分类-静态建模



  • 用例图

  • 组件图

  • 部署图

  • 对象图

  • 类图

  • 包图

UML图的分类-动态建模



  • 时序图

  • 协作图

  • 活动图

  • 状态图

UML工具



  • 使用ProcessOn快速绘制UML,如项目初期、草稿期间等

  • 使用PlantUML(插件集成在VSCode, GoLand中,类似Markdown编程式画图)版本管理与团队协作



用户头像

Pontus

关注

还未添加个人签名 2018.04.21 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-架构方法:架构师如何做架构