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

前言:对于前端工程化,不少人都有本身的看法。那么,公司的产品开发,也在采用先后端分离的形式,到底什么是前端工程化,我为何要推动前端工程化呢? 本文主要就分为两个部分,第一部分是介绍一些前端工程化的内容,别人都是怎么践行,怎么理解的;第二部分介绍我为何加入了前端工程化,我是基于什么考虑的。html

1、前端工程化的基本概念

1,到底什么是前端工程化、模块化、组件化前端

2,我为何这么强调前端工程化vue

简单借用了两篇文章,让你们大概了解一下前端工程化,接下来的第二部分,我会解释,为何我要加入前端工程化,在这个过程当中,我考虑了什么,我取舍了什么等等java

2、我为何加入了前端工程化

2.1,什么是工程化

我我的以前有总结过一篇软件工程的发展历程的博客,额,在此仅供参考:【软工5】:软件工程的发展和体系结构react

我大概阐述一下:在上述博客中,我总结到,软件工程从无到有经历了5个阶段,第一个阶段,就是“做坊式”生产。事实上,我感受到,目前不少产品开发,仅从前端这个版块来讲,可能仍然还处于做坊式的开发。软件危机爆发,1968第一次提出了软件工程的概念。  那么,能够简单的理解为:工程的思想,就是用来解决软件危机的。  而,工程化,就是用工程的思想来指导产品开发,是一种思想的践行。git

2.2,我为何选择工程化

解释为何工程化,就不得不提软件危机,从上个世纪60-70年代,80-90年代,本世纪初—如今,总共上是经历了3次软件危机,而第三次,咱们正在经历,或者说,咱们也正在加重。说实话,我一直以为敏捷开发会出问题,不是说敏捷自己会出问题,而是更多的“伪敏捷”。我眼里的敏捷开发,并非说没有设计、没有文档、不能快速迭代等等,我眼里的敏捷,是提高每一个阶段的效率,从而缩减时间,而不是删减内容。     摸着良心说吧:在你开发的系统中,文档齐全的有多少?而文档齐全,又符合系统迭代实际的,又有多少?每一次迭代,保证软件质量吗?  哎呀,其实就是每一个工程师眼里都有对于工程的见解,不能说谁好谁很差,各自取舍,各自负责吧!github

1,软件危机

三次软件危机各有缘由和特色,但总结起来,无非就是这么几个:管理、人力、时间、质量,这几个,又能够组成一个死循环,缺少理论的指导,个性化而难以管理——质量危机——维护成本增长——人力成本增长——时间成本增长——管理失误,总结到最后,就是花费了不少没必要要的钱。  segmentfault

软件危机的表现和特征,不仅是发生在后端,前端也有。后端

工程化:以较少的投资获取高质量的软件前端工程化

2,Servlet技术发展

想象一下我们前端经历了什么样的演变过程,前端其实从根本上来讲,也就是三个基本内容:HTML、CSS、JS

其演变过程:静态(SGML-HTML-XML-XHTML)—动态(动态页面,没记错的话,应该是从.NET中的ASP发展而来,在java这边主要是:Servlet-JSP-模板引擎伪静态化)—独立工程。  这个演变过程,其实也是一个不断追求效率的过程吧,个人理解。简单说当前的Servlet技术或者说伪静态化技术,相对于直接执行JS来讲,仍是不够快。

也是基于这么一个考虑,若是前端不通过后端服务器,直接执行JS会比较快,那么,就拆分吧!

3,产品开发中的现状

在实际的开发中,我有注意到几个点:

A:因为工程师的我的技术栈体系不一样,不多有人是同时精于后端和前端的,当用这么一个工程师去开发的时候,第一是没法最大限度的发挥他所擅长领域的价值,第二是增长了额外的开销(先后端工程师的价位可不是同样的)

B:咱们尝试不先后端分离,也让善于前端的人去作JSP页面,让擅长后端的人去作后端开发,可是,他们之间的沟通成本在不断增长,并无最终解决问题

C:前端JS、JSP页面、CSS,复用率过低了,冗余杂乱。尽管咱们模拟后端面向对象的模块化思想去管理,但依靠规范去作的事儿,确实成效甚微,咱们在思考,是否能够经过技术手段去解决

在咱们产品的开发中,暴露出来的问题,集中起来,也无非就是软件危机的一些体现。当咱们的前端工程出现了问题时,我思考工程化!

3、我为何选择了Angular

首先,前端工程化,这是一种思想。我看来,它并不必定意味着先后端分离或者选用Angular一类的产品。但咱们之因此分离或者说选择Angular这样的产品,是基于一个站在巨人的肩膀上,完全的,经过工具和技术,去解决咱们的问题。

咱们为何要尝试先后端分离

3.1,其余产品

vue.js:

https://cn.vuejs.org/

React:

https://facebook.github.io/react/

3.2,为何选择

Angular: https://angular.io/docs

我为何选择Angular 2?


目前:公司用的是Angular4,先后端分离,效率也提升了不少,固然,在前期,咱们也付出了代价!

相关文章
相关标签/搜索