架构师训练营 -week01- 总结
第一周总结:
期待架构师训练营的课程已久,终于在本周正式开课了。一直以来,感觉自己的知识点比较散,在平时的工作中,各个方面的知识都有所涉及,从传统的企业单体架构开发,到现在流行的微服务架构。包括安全、缓存、分布式系统、web开发框架等,甚至安全等保和CMMI体系建设,但是都不能算是深入了解,大部分的知识都是浅尝辄止。这也是自己的亟待提升的一个方面。
智慧老师在开篇讲中,也谈到深度和广度的问题,认为至少从一个方面深入了解透了,再去扩展其他的知识面就会容易很多。我个人也非常赞同这个观点。希望从这个训练营的15周课程中,形成自己的知识体系,就像把一个大树的根基先建立好,然后按照这个知识体系,把目前掌握的知识点挂在不同的分支、树干和叶子上,最终形成属于自己的知识大树。
架构知识收获:
第一周课程,主要是大家认识到架构师的工作职责,以及如何跟不同的角色打交道,用什么样的产出物去打交道,就是《架构设计文档》了。下面的图示很清晰从表达了架构文档的作用、关联方,值得收藏:
然后是架构文档的内容了,一份架构文档需要包括哪些内容,最主要的就是4+1视图了,基本可以涵盖各个阅读方的阅读要求。
逻辑视图
开发视图
过程视图
物理视图
场景视图
另外,在平时的工作中,如果做架构设计文档的评审,还有两个比较重要的方面需要在架构设计文档中体现出来:
一个是安全相关的设计,包括通信过程如何保持加密;如何实现角色权限认证等。
另一个是数据设计,包括数据库设计和数据建模、数据量评估相关的内容。
接下来是UML的知识讲解:
UML图的分类-静态图
描述类、对象和数据结构以及它们之间存在的关系,来描述软件要素中不变的逻辑结构。
用例图(Use Case Diagrams)
对象图(Object Diagrams)
类图(Class Diagrams)
组件图(Component Diagrams)
包图(Package Diagrams)
部署图(Deployment Diagrams)
UML图的分类-动态图
通过描绘执行流程或者实体状态变化的方式,来展示软件执行过程中的动态变化。
协作图(Collaboration Diagrams)
序列图(Sequence Diagrams)
活动图(Activity Diagrams)
状态图(State Diagrams)
通用模型元素
类、对象、结点、包、组件、用例、状态、注释
关联:连接(connect)模型元素及链接(link)实例。
依赖:表示一个元素以某种方式依赖另一个元素。
泛化:表示一般与特殊的关系,即“一般”元素是“特殊地”关系的泛化。
聚合:表示整体与部分的关系
个人总结:
日常工作中,用例图和时序图都是经常需要画的,除此之外,还有状态图、泳道图也是很好的表达业务规则的产出物。跟开发同学交流时候的,时序图和类图就是利器了。
组件图画的比较少,我理解应该是属于4+1视图里的逻辑视图部分,主要描述系统与外部系统的边界、系统内的子系统之间的访问关系,包括通讯协议等等。
部署视图主要用来跟实施和运维同学沟通的,包括每个子系统的放置区域,防火墙策略,哪些可以被互联网访问,哪些是放置到核心内网等。还有每个子系统的服务器数量,当然最后还要配上服务器的配置说明。这个一般不再画UML图,直接用PPT的方式表达了。
评论