前端工程化知识要点回顾&思考

转载 2015年11月20日 10:41:51

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

  • 最初的时候人们忙着补全各种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://github.com/kuitos/kuitos.github.io/issues/29 编程技术及生态发展的三个阶段 最初的时候...
  • shut1k
  • shut1k
  • 2015年11月15日 14:00
  • 479

前端优化带来的思考,浅谈前端工程化

重复优化的思考 这段时间对项目做了一次整体的优化,全站有了20%左右的提升(本来载入速度已经1.2S左右了,优化度很低),算一算已经做了四轮的全站性能优化了,回顾几次的优化手段,基本上几个字就能...
  • vuturn
  • vuturn
  • 2015年10月29日 09:31
  • 808

前端工程化(一)

前言web应用复杂度的增加,特别是单页面应用的风靡。组件化,工程化,自动化成了前端发展的趋势。或者说一线的互联网公司就是这么做的。前端工程的3个阶段第一阶段: 库/框架选型Animate.css j...
  • w2765006513
  • w2765006513
  • 2017年01月12日 19:04
  • 716

《前端工程化之Nodejs》

定义:   Node.js就是运行在服务端的 JavaScript。 Node.js是一个基于Chrome JavaScript 运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端Jav...
  • yxf15732625262
  • yxf15732625262
  • 2017年03月12日 22:45
  • 563

前端工程化的理解

前端工程化:前端开发在整个工程中代码规范化、流程规范化、接口标准化的过程。...
  • u014101606
  • u014101606
  • 2016年08月07日 11:16
  • 461

他们为什么选择前端工程化,而我又是基于什么考虑的

前言:对于前端工程化,很多人都有自己的见解。那么,公司的产品开发,也在采用前后端分离的形式,到底什么是前端工程化,我为什么要推进前端工程化呢? 本文主要就分为两个部分,第一部分是介绍一些前端工程化的内...
  • u013034889
  • u013034889
  • 2017年09月23日 09:26
  • 383

Web前端工程化的实践思路(一)——背景介绍

在过去,往往在前端方面,一方面技术限制,二是我们的重视程度不够。这就造成了前端开发的问题。例如: 1、代码维护困难、可重用性低。 2、开发效率低 3、不能有效...
  • u011500356
  • u011500356
  • 2016年09月18日 22:51
  • 666

前端工程化体系

http://roshanca.com/2017/front-end-engineering-system?utm_source=tuicool&utm_medium=referral 何谓...
  • u011001084
  • u011001084
  • 2017年01月23日 13:03
  • 603

【图书】前端工程化:体系设计与实践

前言距离上一次推荐图书,至少有一个季度了。今年还剩一个礼拜,是时候为2018的书单做准备了。今天推荐的是《前端工程化:体系设计与实践》前端工程化:系统设计与实践作者: 周俊鹏,主要研究方向为前端工程化...
  • wGL3k77y9fR1k61T1aS
  • wGL3k77y9fR1k61T1aS
  • 2017年12月24日 00:00
  • 482

web前端工程化

近两年前端领域风云变幻,各种技术栈层出不穷。React、Angular2、Vue2逐步三分天下,Webpack + Babel + ES6模式如日中天,PostCSS大有取代SASS、LESS、Sty...
  • aaa333qwe
  • aaa333qwe
  • 2017年06月07日 16:38
  • 690
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:前端工程化知识要点回顾&思考
举报原因:
原因补充:

(最多只允许输入30个字)