對軟件開發來講,架構師一直是一個讓程序員神往的職業,但實際工做中,大多數創業公司,甚至必定規模的公司都不具有架構師這個崗位。css
那麼架構對於開發團隊來講到底有什麼重要性呢?前端
就目前的web開發來講,除去總架構師,對於一個需求明確的項目又可分爲兩層,前端架構,後端架構,固然也可能被一人包攬,筆者是一名前端工程師,因此後端架構就不作討論,咱們僅僅看前端架構。程序員
有人可能會說,前端不就是寫寫頁面搞些特效麼,怎麼還扯上架構了呢?web
對這種論調,咱們從架構自己來講,爲何有架構,軟件是做爲計算機智能控制的一種程序,本質上來說就是人們爲了可以更好的利用硬件性能和提升生產效率的工具,那麼軟件開發的效率就直接決定了軟件的生命週期,因此架構做爲可以確保軟件開發效率的一種手段,從根本上就決定了這個軟件的生命週期的長短。後端
對於一個沒有架構設計的項目,其可能產生的問題包括,代碼不可測試,軟件維護困難,大量的冗餘代碼以及難以重用。前端框架
隨着angular等前端框架的興起,大量的web應用正在誕生,前端從過去大量的css少許的js到目前大量的css,超巨量的js演進前端工程師
這個過程當中,js代碼量急速增長,沒有架構的js程序所產生的問題就逐漸顯現。架構
以目前筆者開發的一個後臺應用舉例,該後臺包括10幾個模塊近百個接口,而後前端開發初始即是直接根據後端提供的文檔來進行,初期還算順利,進度也好,可是到中期,問題就來了。框架
後臺應用包含的頁面大多數都雷同,可是部分又不一樣,這些細節差異,由於最初的不重視致使開發中不得不進行大量代碼的copy,等發現問題時,改動所須要的工做量就很大了,若是能一開始就設計好,開發一個可以知足基本需求的angular分頁指令,那麼後面就節省了大量的時間,同時一但需求變更,改動的工做量也將大大減小。相似的例子還不少。工具
對於一個項目來講,架構設計可能涉及需求覈對,設計自己所須要的時間,初看這個時間成本對項目而言彷佛是沒必要要的,但事實上對於一個具備必定規模的項目,合理的架構能節省大量的編碼時間!