前端架构设计的方法论

系统的架构设计用来定义应用程序的基本特征和行为。

  • 良好的架构是系统构建成功的关键。
  • 架构驱动的软件开发是构建复杂系统的最有效方法,架构驱动的方法优于需求驱动,文档驱动和方法论(抽象推理的能力)驱动。虽然方法论(抽象推理的能力)可以帮助我们取得项目的成功,但是它并不是决定性的因素。

1、初期如何设计架构

所有架构的核心:关注点分离(分离角色和职能,分离之后的结果是对具体功能的高度抽象)。

架构设计的过程其实也是在梳理需求的过程中不断标识封装操纵关注点。

根据迪米特法则开闭原则,分离之后的职责对象应该高度独立封闭(优点是不需要关系它们内部的具体实现,只关心输入和输出即可)。

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

2、构建系统的步骤

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

3、注意的四个点

1、扩展性

2、弹性(伸缩性)

3、灵活性

4、稳定性

4、评判标准

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

2、易于部署

3、易于开发

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

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

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

最后

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

ps:由于本人比较懒,所以没有针对一些名词做具体讲解和示例。

前端架构设计的方法论相关推荐

  1. 前端进阶之路: 前端架构设计(2)-流程核心

    可能很多人和我一样, 首次听到"前端架构"这个词, 第一反应是: "前端还有架构这一说呢?" 在后端开发领域, 系统规划和可扩展性非常关键, 因此架构师备受重视 ...

  2. 前端架构设计1:代码核心

    现在的前端领域, 随着JS框架, UI框架和各种库的丰富, 前端架构也变得十分的重要. 如果一个大型项目没有合理的前端架构设计, 那么前端代码可能因为不同的开发人员随意的引入各种库和UI框架, 导致代 ...

  3. 浅谈京东静态html原理,京东首页前端架构设计.ppt

    京东首页前端架构设计 工程化 Windows可视化工具 * 工程化 前端模块构建平台 * 总结 * QA * * JD.com JD.com JD.com JD.com JD.com JD.com J ...

  4. 前端架构设计应该包含哪些东西?

    前端架构设计 后台架构设计概念适用于前端,前端没有数据库设计,所以可以不考虑并发. vuejs的优点,一样适用于前端项目.高内聚,低耦合,可复用,单元测试. 从项目的生命周期,开发.上线.维护三个阶段 ...

  5. 前端架构设计第十课 前端数据结构和算法

    21 如何利用 JavaScript 实现经典数据结构? 前面几讲我们从编程思维的角度分析了软件设计哲学.从这一讲开始,我们将深入数据结构这个话题. 数据结构是计算机中组织和存储数据的特定方式,它的目 ...

  6. 架构方面学习笔记(3)-前端架构设计

    2022.02.08 今天读了一篇关于前端整洁架构的设计,因此对其中的内容进行了一些整理以及我自己的思考,后续阅读<领域驱动设计>后可以加入更多的内容. References: 前端领域的 ...

  7. 前端架构设计第一课 CI环境npm/Yarn

    开篇词 像架构师一样思考,突破技术成长瓶颈 透过工程基建,架构有迹可循.你好,我是侯策(LucasHC),目前任职于某互联网独角兽公司,带领 6 条业务线前端团队,负责架构设计和核心开发.工程方案调研 ...

  8. 前端架构设计第六课工程化构建、编译、运行

    12 如何理解 AST 实现和编译原理? 经常留意前端开发技术的同学一定对 AST 技术不陌生.AST 技术是现代化前端基建和工程化建设的基石:Babel.Webpack.ESLint.代码压缩工具等 ...

  9. 从前端架构的出现到微前端架构设计

    写在前面的话 对于大前端开发岗位,在技术实现上各行业以及应用体系区域完善,也建立了统一的技术栈和规范,这就意味着如果想要从编码为主的开发岗位进一步越迁到架构设计岗位,开发者需要具备完整的技术视野和架构 ...

  10. 阿里浅谈大型项目前端架构设计

    1.综合 我在2年之前,写过一篇中小型项目的前端架构浅谈. 随着能力的上升,以及在阿里巴巴工作的经验,是时候写一篇大型项目的前端架构分析了. 本篇文章不会更多侧重于具体技术实现,而是尝试从更高角度出发 ...

最新文章

  1. The 13th Zhejiang Provincial Collegiate Contest(2016年浙江省赛)
  2. B1230 [Usaco2008 Nov]lites 开关灯 线段树
  3. OpenSwitch操作系统成为Linux基金会官方项目
  4. MFC载入JPG图片
  5. OPENSSL ENGINE机制
  6. html怎么导入js编辑,three.js怎么导入html
  7. 利用ACS来实现AAA服务
  8. 中断函数 printf_嵌入式中断服务函数的一些特点
  9. 深度优先搜索——迷宫(洛谷 P1605)
  10. django调用python脚本返回_Django使用HttpResponse返回图片并显示的方法
  11. 经典排序算法(一)--快速排序Quick Sort
  12. UML快速指南(摘要)转载
  13. sqlserver200864位下载_sql2008r2企业版下载-sql2008r2安装包64位 最新版 - 极光下载站...
  14. 盘点客户管理软件应有的功能有哪些?
  15. 实用工具分享,如何批量修改文件夹名称的一部分
  16. 手机管理服务器文件夹,手机管理服务器文件夹
  17. Python数字拆分
  18. DNA存储技术—让信息保存万年
  19. 使用 minikube 安装 k8s-cluster
  20. Android60分钟搞定《FlappyBird》飞扬的小鸟游戏

热门文章

  1. 微信小程序获取Token 存储2小时
  2. C#中导出电子表格Execl总结
  3. PHP树形结构数据处理成面包屑结构
  4. PHP比较两个时间戳相差天时分秒
  5. 没有方案你抱怨;有了方案你会认真看吗?
  6. TeaVM辛辛苦苦编译出的wasm,浏览器中不能跑
  7. 看了某LINUX打包规范,没搞明白怎么支持多CPU,自己测试过没有?
  8. 安卓自定义控件,自行绘制文字
  9. JDK8的shenandoah GC/zgc啥时能转正?
  10. VS中编辑器显示行号