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

来源:互联网 发布:知乎 俄罗斯 计算机 编辑:程序博客网 时间:2024/05/01 15:49

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

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

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

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

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

二、我为什么加入了前端工程化

2.1,什么是工程化

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

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

2.2,我为什么选择工程化

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

1,软件危机

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

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

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

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,复用率太低了,冗余杂乱。尽管我们模拟后端面向对象的模块化思想去管理,但依靠规范去做的事儿,确实成效甚微,我们在思考,是否可以通过技术手段去解决

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

三、我为什么选择了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,前后端分离,效率也提高了很多,当然,在前期,我们也付出了代价!

阅读全文
0 0
原创粉丝点击