这是我参与「第五届青训营 」伴学笔记创作活动的第十一天。今天学习了初探架构这门课,让我对架构有了更深一层的理解。
架构是什么架构本身不是软件,而是关于软件如何设计的策略。是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。它是实现软件的地基,决定了软件的大体结构。在课上老师给我举了一个更形象的例子方便我们理解,老师把一家蛋糕店比作一个软件,它的营销模式比作了它的架构,用蛋糕店的模式升级来映射软件架构的迭代。刚开始非常简单就是一个进程处理所有业务,蛋糕店里只有一个人他既要完成做蛋糕的所有步骤还要完成买照顾顾客的所有操作,这意味着一个人出问题系统就要停摆。经过升级把单体架构垂直切分,形成分布式部署,把销售蛋糕的工作交给服务员完成,制作工作交给蛋糕师,每部分都投入多人协同完成,还需要把蛋糕的种类进行拆分,在每个种类中投入人员,让他们专职负责某个种类的制作,但这样会因为每个人的职责过多导致效率低下,这时我们需要水平拆分业务,形成微服务架构,把蛋糕的制作流程进行拆分,将人员分配到不同的制作步骤中,让职责单一化,这样不同任务的人可以专心在自己的领域中,效率大大提高,每个模块独立运行,即使一部分出了问题对总体的影响也是可控的,避免出现停摆的情况。这种开发模式,就是软件的架构。框架演进的初衷就是不断丰富功能,随着功能和需求的增加,必然增加人手,细化分工。
今天的课程让我了解到了架构是如何一步步形成的,这对我理解项目结构很大的帮助,也对我项目优化的思路有一定的启发。