架构或者可以说是一套方法论,让我们知道在什么场合遇到什么问题应该如何解决。
架构师=前端工程师+后端程序员+系统分析人员+关键技术解决方案+各种技术组合+设计模式+部署调整+软技能;
前端架构的原则
在设计前端架构的时候,我认为应该遵守几个基本原则。
第一个是「以不变为中心」。
软件开发的本质就是操作数据,放在web开发的场景,后端是存储、获取数据,前端是收集、展示数据。
数据在前、后端流转时,数据的基本形态不会变:基本类型、对象、列表;数据的传输协议也不会变:HTTP、WebSocket。在前端开发中,离它们越远、离GUI越近的东西就越容易变。
所以,首先要做的就是梳理出哪些东西是不易变化的,哪些是很容易就变了的。
第二个是「各层皆可替换」。
将根据易变性梳理出的模块按职责进行分层,定义好层与层之间的对接协议(接口)。除了因自身进化需要,对接协议是基本不会变的,也不应去改变。以此为前提,各层实现可在业务需要或技术升级时进行替换。
第三个是「视图层尽可能薄」。
视图层的职责是展示数据,理应只有交互逻辑,而大多数前端在写UI组件时会掺杂较多的业务逻辑,使视图层变得很是厚重、臃肿。这样一来,业务逻辑不利于复用,也会增加视图层技术的迁移成本。应将业务逻辑进行抽象,并提取到领域层,让视图层保持纯粹。
由于视图层的易变、多样,并想让它尽可能薄,最好有什么方式能够增加它访问逻辑层的成本,就像前端只能通过网络请求访问后端一样。
忽然想到在做业务开发时有遇到过这种架构,你有印象吗?没错,就是