Skip to content

Latest commit

 

History

History
65 lines (39 loc) · 3.72 KB

File metadata and controls

65 lines (39 loc) · 3.72 KB

前端架构

作为前端工程师,关注点是什么呢?首先就是用户,包括用户侧的操作和用户体验。 例如一个界面给到用户,比如报错是红色文字还是输入框变红?Loading放顶上还是页面中间?用户点击提交后按钮显示Loading还是灰掉?转菊花还是骨架屏?先显示占位图还是先白屏? 再比如用户访问我的网站快不快,用起来爽不爽,会不会觉得卡,会不会觉得low。这些东西会决定你的页面是单页面还是多页面,URL如何设计,加载策略是什么?

所以我做的架构一点都不高大上。仅仅是决定如何让网站加载更快,如何不引入不必要的代码,把不必要的代码干掉,如何让用户加载最少的内容,如何让用户最快看到效果,前端渲染还是后端渲染,同步输出还是异步输出等等。 是不是觉得一点都不是架构师干的事?但前端构架师确实就是在干这些事。所以,你要说前端架构师是一个技术上的架构师,倒还不如说是更关注用户的体验架构师。从这个角度来说,前端架构师和跟后端架构师的关注点不在一个维度上。

所谓架构,我理解是综合考虑目标、业界和团队,作为合理的方案选择,既能支撑业务的发展,又能令团队满意。如果能达到这个目标,自然就是一个好的架构。目前来看,前端要做到一个好的架构不容易,做的事情并不比后端少。

一个好的架构师必然有自己的一套工作习惯,清楚地知道自己的职责,知道自己应该关注的重点,利用自己的经验和方法来控制风险、简化开发、提高效率,希望大家都能成为牛逼的架构师,当然这一切都要先基于对技术的广度和深度的深挖。

https://juejin.im/entry/59800fe651882537d00e0179

前端架构设计的方法论 系统的架构设计用来定义应用程序的基本特征和行为。 良好的架构是系统构建成功的关键。 架构驱动的软件开发是构建复杂系统的最有效方法,架构驱动的方法优于需求驱动,文档驱动和方法论(抽象推理的能力)驱动。虽然方法论(抽象推理的能力)可以帮助我们取得项目的成功,但是它并不是决定性的因素。 1、初期如何设计架构 所有架构的核心:关注点分离(分离角色和职能,分离之后的结果是对具体功能的高度抽象)。

架构设计的过程其实也是在梳理需求的过程中不断标识、封装和操纵关注点。 根据迪米特法则和开闭原则,分离之后的职责对象应该高度独立和封闭(优点是不需要关系它们内部的具体实现,只关心输入和输出即可)。

更容易构造有效的(职责)角色和强力的模型,变的更好开发,测试,管理和维护。

2、构建系统的步骤 1、抽象职责(功能模块)之间的相互作用 2、抽象职责和数据流之间的关系

3、注意的四个点 1、扩展性

2、弹性(伸缩性)

3、灵活性

4、稳定性

4、评判标准 1、灵活性 响应外部环境变化的能力,架构中是否便捷做一些改变,功能模块间的紧耦合是降低灵活性的关键。

2、易于部署

3、易于开发

4、可测试性 职责和数据流的划分,便于分块测试。

5、伸缩性 系统是否利于扩展,紧耦合与职责划分不清晰是降低伸缩性的关键。

6、性能 任何架构的本质是在处理数据流,所以数据流的流转效率决定了该架构的性能。

最后 本文提出的这些观点实际上也是属于架构设计的方法论。在掌握并熟练运用了这些方法论之后并实践到项目中,慢慢的才会搭建出更好的架构。