第一周总结
JD 解读
什么是技术选型、架构设计(架构文档)?
技术攻坚
如何评价系统性能?
擅长领域模型(DDD),具备微服务架构
完善开发方法及流程,提升开发效率与质量,加强技术标准与规范
协作 & 沟通
背景 & 经历 & 能力
主要职责
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
技术选型
性能优化
微服务架构
系统安全与高可用
大数据应用
技术创新
沟通管理
主要能力
编程能力
基础技术掌握能力
常用技术产品的理解与应用能力
性能优化与分析故障的能力
常用架构模式和框架的理解与应用能力
业务理解与功能模块及非功能模块的拆解能力
学习能力
沟通与领导能力
常见面试题
什么是软件架构?如何编写软件架构文档?
子类
override
父类的方法后,想要修改抛出的异常,那么子类方法抛出的异常类应该是父类方法抛出异常类的子类还是父类?[里氏替换原则]spring 的单例和设计模式的单例实现方式有什么不同?
淘宝等大规模分布式互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?
什么是 CAP 原理,聊一聊某个熟悉的 NoSQL 产品是如何解决 CAP 问题?
如何进行性能测试,其流程是什么?需要主要关注的指标是哪些?
如何理解领域驱动设计 DDD ,其优缺点是什么?
导致系统故障无法正常访问原因有哪些?保障系统稳定高可用的方案有哪些?
Spark 为什么比 MapReduce 快?
Google 搜索结果页面是如何排序的?
什么是边缘计算?
区块链如何做防篡改?
如何说明其他人进行系统重构?
4+1 视图模型
单一的视图无法完整的表达架构,因此需要具备完整的视图集
逻辑视图(Logical View),设计的对象模型
过程视图(Process View),捕捉设计的并发和同步特征
物理视图(Physical View),描述了软件到硬件的映射,反映了部署特性
开发视图(Development View),描述了在开发环境中软件的静态组织结构
场景视图(scenarios),描述用例场景
什么是模型?
模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对其理解和认识都蕴含在模型中。故问题的求解过程也就是领域建模并得出解决方案的过程。
建造模型一方面证明某件事物能否工作,另一方面也是为了与它人沟通,更为了保存软件设计的最终成果。
UML
静态图:描述类、对象、数据结构以及它们之间存在的关系,来描述软件要素中不变的逻辑结构。
动态图:描绘执行流程或者实体状态变化的方式,来展示软件实体在执行过程中的变化过程。
用例图
用例图用于描述系统的功能需求。在宏观上给出模型的总体轮廓。通过用例分析,使开发者能够有效理解用户的需求。用例图一定有边界。另外,用例图可以自顶向下不断细化。
参与者:可以是人员,也可以是系统
用例:是一个动作,常用动宾(设置边界、风险分析、更新账目)
时序图
时序图用来描述对象之间的动态交互行为,着重体现对象间消息传递的时间顺序。
活动图
类似流程图,考虑多个子系统(领域)交互,增加了泳道的概念。
状态图
复杂对象状态变迁。
组件图
组件图描述业务组件模块关系。
组件图:逻辑组件 & 物理组件
部署图
部署图描述系统最终的部署情况。
设计文档
设计概述
功能概述
非功能约束
系统部署图与整体设计
系统部署图
场景图
子系统设计(如果有)
版权声明: 本文为 InfoQ 作者【睁眼看世界】的原创文章。
原文链接:【http://xie.infoq.cn/article/13ea1c6a7d6c9b82a8ce7b5a6】。文章转载请联系作者。
评论