他們爲何選擇前端工程化,而我又是基於什麼考慮的

前言:對於前端工程化,不少人都有本身的看法。那麼,公司的產品開發,也在採用先後端分離的形式,到底什麼是前端工程化,我爲何要推動前端工程化呢? 本文主要就分爲兩個部分,第一部分是介紹一些前端工程化的內容,別人都是怎麼踐行,怎麼理解的;第二部分介紹我爲何加入了前端工程化,我是基於什麼考慮的。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,先後端分離,效率也提升了不少,固然,在前期,咱們也付出了代價!

相關文章
相關標籤/搜索