编程技术及生态发展的三个阶段

  • 最初的时候人们忙着补全各种API,代表着他们拥有的东西还很匮乏,需要在语言跟基础设施上继续完善

  • 然后就开始各种模式,标志他们做的东西逐渐变大变复杂,需要更好的组织了

  • 然后就是各类分层MVC,MVP,MVVM之类,可视化开发,自动化测试,团队协同系统等等,说明重视生产效率了,也就是所谓工程化

前端工程是软件工程的一个子类别

软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

前端是一种GUI软件

从本质上讲,所有Web应用都是一种运行在网页浏览器中的软件,这些软件的图形用户界面(Graphical User Interface,简称GUI)即为前端。

前端又不同于传统的客户端软件/后端,因为前端应用具备“免安装”、“增量安装”等特性。也“得益”于这些特性,前端应用会遭遇客户端应用不可能碰到的资源管理问题,这也是前端最容易引起工程问题的点。

一个符合工程化要求的软件系统(前端)需要包含的要素

  1. 开发规范

  2. 模块化开发

  3. 组件化开发

  4. 组件仓库

  5. 性能优化

  6. 项目部署

  7. 开发流程

  8. 开发工具

1-3是技术业务相关的开发需求,4是技术沉淀及共享需求,5-8是工程优化需求

大部分时候我们谈的“工程化”其实只是“工具化”。

每一个单独的点或许都比较容易实现,但是把这8条串联起来则是一个很大的挑战,而且这8个点相互之间又互有联系

  • 模块化开发涉及到性能优化,对构建工具有一定的配套实现要求,同时也会影响开发规范的制定

  • 组件化开发应该基于模块化框架来加载其他依赖的组件,如果组件化框架自带模块管理功能,那么就可能导致工程的性能优化实现困难(我们可以直接使用ES6的module语法及loader)

  • 组件库应该与组件化开发配套,组件仓库中的组件应该按照相同的标准实现

  • 开发规范工具必须容易实现,如果部署上有特殊要求,工具是否能很容易的做出调整而不是修改规范。

  • 工具是否能提供接入公司已有流程的接口,是否能与公司的ci工具相互融合

为什么都说前端目前正遭遇前所未有的工程问题

  1. 前端在第1、2阶段耗费了十多年的时间,然后近几年才井喷式的爆发

  2. 由于整个生态的发展缓慢、门栏低、构建应用成本低,前端开发长时间停留在刀耕火种、茹毛饮血的阶段

  3. 以前大部分前端工作都是切页面加特效,还不能算得上一个真正意义上的webapp,自然很少有公司能遭遇到工程化问题

  4. 前端不同于 客户端/后端 的特性(比如增量安装),导致遭遇的工程会很特殊,很难直接从别的领域套用已有的解决方案

  5. 我们自己完全意识不到那是问题

转载于:https://www.cnblogs.com/crafts/articles/4980643.html

前端工程化知识要点回顾思考相关推荐

  1. 分享狼叔关于《大前端工程化的实践与思考》

    前言 本文来自极客前端训练营的主题公开课,非原创. 作者简介 桑世龙(狼叔),阿里巴巴前端技术专家,nodejs<狼书>作者. 快速发展的大背景 前端发展太快了,在2004年之前,大概只要 ...

  2. React 基础知识要点快速回顾

          React 是一个用于构建用户界面的 JavaScript 库.它和Vue是目前最流行的前端Javascript库,当然,它们也支持服务器端渲染(部分功能受限). 本文主要是对React官 ...

  3. 前端工程化项目的思考

    这是一篇个人使用前端工程开发项目的思考,希望可以帮助到你.完全是一篇综合概念应该是很多东西,我也不清楚会有多少字,估计会对刚刚开始的人看起来比较迷,但也是没有办法的事情 1.前端脚本语言开发的作者我想 ...

  4. WEB前端入门知识及要点大全

    一.WEB前端是什么? 使用HTML/CSS/JS以及更多的框架技术,编写网站页面.App应用.小程序.2D&3D游戏.Web VR&AR等应用,通过内容设计.交互动画.数据操作构建项 ...

  5. vue全套笔记,前端工程化+vue指令+脚手架

    文章目录 一. 前端工程化 webpack 的基本使用 webpack 中的插件 webpack 中的 loader 打包发布 Source Map的使用 注意,实际开发不需要自己配置webpack ...

  6. 前端工程化系列好文摘要

    前端工程化遇到的好文在这里简要摘记一下核心要点和主要概念,这里核心是指针对本人而言不代表原文核心阐述,方便快速查阅,详细解释还是要看原文 对于前端工程化我自己还没形成知识体系,先简单罗列知识点,如果哪 ...

  7. 从生物学的角度浅谈前端工程化

    导语:看过<人类简史>一书的人都知道,该书从物理学,化学,生物学,政治学等学科角度,对整个人类历史做出了全方位的考察和预测,总结归纳出超越历史层面的规律和深刻意义.同样地,我们能否也从跨学 ...

  8. 新的一年,如何高效学习前端前沿知识~

    今天强烈推荐一些互联网行业内优质技术公众号,互联网人大部分都关注了,包括目前主流的公司技术团队号,技术社区号,个人技术号,这些号行业深耕已久,会给你带来事半功倍的效果. 公众号那么多,文章是看不完的, ...

  9. 一名前端工程师自检清单与思考(来吧,干完这套清单年薪30不是梦)

    一份不想成为劝退清单的劝退清单 一.JavaScript基础 变量和类型 1.JavaScript规定了几种语言类型 2.JavaScript对象的底层数据结构是什么 3.Symbol类型在实际开发中 ...

  10. 前端工程化:从切图仔到前端 Leader,如何跨越式成长

    前端的小伙伴应该能够很明显地感觉到,在面试过程中,各大公司面试官已经非常注重前端工程化能力的考察了. 前端工程化的演进可以极大地提升开发效率.前端发展到现在,社区涌现出大量的优秀框架和工具,得以将前端 ...

最新文章

  1. 对于七段数码数字模型进行改进:一个关键的数字1的问题
  2. 通过反射来创建对象?getConstructor()和getDeclaredConstructor()区别?
  3. strtol函数参数详解
  4. 【视频】vue指令之v-if、v-bind
  5. Mysql系列常见面试题
  6. AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。
  7. (一)CentOS Docker 安装
  8. java怎样学_告诉你java如何学
  9. Python 从视频中分离音频
  10. mysql身份证唯一查询_Mysql查询SQL相关总结(根据生日以及身份证查询年龄以及性别区域等)...
  11. SQL安装过程中出现的错误解决
  12. 网络工程师 第8章 网络安全
  13. 鼎立MOS测试设备调试
  14. prosody xmpp_如何在Ubuntu 18.04上安装Prosody
  15. Unity3D之FingerGestures使用
  16. html2canvas文字消失,html2canvas截图丢失部分元素
  17. 新旧版MATLAB中的希尔伯特-黄变换(HHT)及其边际谱的求取问题
  18. android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上
  19. 秒懂!看机器学习如何净化处理文本
  20. 计算机系统基础——我与袁春风不得不说的知识——入门必看

热门文章

  1. 去除A和B数组中的交集
  2. 海外并购频频被阻 中国芯发展之路困难重重
  3. Centos-RedHat 添加路由
  4. BZOJ1076[SCOI2008] 奖励关
  5. vue学习笔记-7-分支结构
  6. Nacos1.4.1下载与配置
  7. linux7 vnc 黑屏,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  8. 一台电子计算机埃尼阿克的介绍,世界之最——第一台电子计算机
  9. 微博中微服务缓存_微服务实践分享(5)缓存中心
  10. python贪吃蛇源代码_python实现贪吃蛇游戏源码