本文转载自微信公众号“bugstack虫洞栈”,作者小傅。转载本文请联系bugstack公众号。目录1.前言2.架构图有哪几种?3、什么是Zachman框架?4.和你一起画架构图1.架构选型图2.微服务架构3.技术架构图推荐1.前言很多程序员在画架构图的时候很头疼。他们不知道要画什么,也不知道怎么画!分享、回顾、述职、答辩,只要身处程序员这个行业,画图几乎就离不开。说到画图,很多人都想站起来喊“涉及”“涉及”“PPT工程师”,但程序代码本身就是数理逻辑的具体实现。如果没有图表来配合文字描述,大家真的很难在一个共同的共识下进行交流。这不像是一门文科,“八更流云清夜,九云月动春城”能与其所描述的相联系。但是,科学的代码逻辑或者架构设计,只能通过图表的形式展示抽象的内容,让大家在同一个共识下协同工作。而我们画的架构图、流程图、结构图、功能图、逻辑图等需要好看、易懂、好用、好做,因为:好看是为了提高沟通效率,易懂是提高沟通共识,易用是提高交付质量,易用是提高执行速度。这就好比君子追美少女。长得好看就想主动搭讪。如果你有性格,有共同的三观,你很快就会说我懂你。接下来就是交付质量和执行速度,这也是水到渠成的事情。好了,先别激动,接下来我们就开始专心研究架构图,它们是什么,怎么画,有哪些技巧。2、架构图有哪几种?如果只谈技术架构图,通常指的是通过选择各种技术组件来支撑整个服务构建的系统架构。但是针对不同的人群,不同的场景,还会有其他的分类,如图26-1架构图分类业务架构:初始业务需求的结果和过程描述,一般比较模糊,可能来自某个反馈某个老板、操作员或用户。客户说海尔洗衣机洗土豆的时候会卡住,于是海尔马上设计了专门的土豆清洗机。应用架构:服务复用、跨组协作、简单、灵活、集成是应用架构必须考虑的点。就像你要推出一个聊天功能,那么输入法、文字识别、舆情监测、视频服务、聊天内容付费服务等等,都是在应用架构分层下沉淀在平台上的产品,并且是各方使用。产品架构:提出业务需求,确定产品方案。相较于粗放的业务流程,产品架构会更加细腻,考虑各个模块的层次和边界。数据架构:数据获取、数据存储和数据使用是数据架构、数据库存储、大数据汇总、数据分析等要解决的三个问题。技术架构:是最贴近程序员的架构设计。它不仅是系统构建的架构图设计,还包括结构、功能、流程、逻辑等内容。它的具体描述就是整个系统如何落地的具体实施方案。3、什么是Zachman框架?Zachman框架是世界上第一个企业架构理论,由JohnZachman于1987年创立。他的论文?至今仍被业界认为是企业架构设计理论中最权威的。Zachman框架(Zachmanframework)是一种逻辑结构,可以按照不同的分类和不同的角度来表示企业信息。Zachman框架从六个横向视角看企业,分为:什么内容、如何工作、在哪里、谁负责、为什么(称为W5H)。框架的列由一组工件组成,这些工件分为计划者、所有者、设计者(建筑师)、建造者、分包商、产品,或者有时表示为观点:范围上下文、业务概念、系统逻辑、技术、物理、组件组装和操纵类。总体如图26-2所示,TOGAFZachman框架表的横向六项代表用于描述信息系统的某一方面。任何事物,只要在这些基本方面进行了清洗和解释,就可以描述清楚了。数据(What,什么内容):什么是业务数据、信息或对象?Function(How,即如何工作):业务是如何运作的,即业务流程是怎样的?Network(Where,即哪里):企业运营部署在哪里?人(Who,whoresponsible):谁?业务部门及其层级是什么?When(何时):业务计划和工作流程是什么?什么时候执行?为什么):为什么选择解决方案?它是怎么来的?表中垂直的六个项目代表参与信息系统建设的人员在描述信息系统时使用的视角,包括:将导出和管理哪些其他视图。业务模型/所有者:这是对信息系统必须在其中运行的组织的描述。系统模型/设计者(Designer):该视图概述了系统如何满足组织的信息需求。技术模型/构建器:这是系统将如何实施的表示,使特定的解决方案和技术显而易见。详细表示/分包商:这些表示说明了某些系统元素的特定实施细节:在生产开始之前需要进一步规范的部分。功能系统/产品(FunctioningEnterprise):1987年的论文(《A framework for information systems architecture》)中没有这行内容。其实这一行的内容不在架构描述的范围之内,但是为了让Zachman框架的架构能够对架构有一个更完整的描述,所以最后加上了这一行。根据TOGAF的定义,企业是具有一组共同目标的组织的集合,而架构就是为了有效地实现这组目标而设计的。在实现过程中,定义了企业结构和运作模式的概念蓝图(SearchCIO),以及构成企业的所有关键要素及其关系的综合描述(Zachman)。通过创建、交流和优化用于描述企业未来状态和发展的关键原则和模型,将业务愿景和战略转化为有效的企业变革的过程(Gartner)。可能这部分内容会比较绕,但是可以作为架构设计的知识延伸来学习、理解和应用。4.和你一起画架构图架构图简单来说就是一个实现方案的演示,以达到沟通的共识。它不一定必须以某种形式是刚性的。只要能画清楚,解释清楚,就是最合适的。1.架构选择图难度:???作用:通常在新项目开发的前期,需要进行一些技术选型工作。在负载、网关、架构、治理、框架、服务、数据、环境和支撑服务等方面,需要选择适合当前发展的技术。2、微服务架构难点:????功能:技术选型完成后,下一步就是使用这些技术。这个过程有点像搭积木,用适合这个位置的积木填充每个区域。如果是初期组建团队或者技术升级,那么这个过程就比较复杂,需要大量的验证。不过,其实互联网的技术分层和使用已经比较稳定,构建这样一个微服务也不会花太长时间。3.技术架构图难度:????作用:技术架构图主要用于研发层面的技术实现指导,能够清晰划分系统层级和实现结构。另外,案例项目的结构一般都会一起讲解,方便团队成员快速进入开发。五、小结本章向大家讲解什么是架构图,架构图的分类以及架构图的绘制方法。通过这样的内容,可以对架构图有一个全面的了解。以后自己画架构图,也可以很清楚自己面对的是什么用户群体,要画什么内容。TOGAF有一套非常完整的企业架构理论,它描述了一种开发和管理企业架构生命周期的方法,构成了TOGAF的核心。涉及的知识非常丰富,值得认真看一看。好看,能把一件事做好很重要,好看可以让人感兴趣,好看可以降低沟通成本。也鼓励大家尽量把经过自己手的东西做得更好看。
