架構?框架在岂?傻傻分不清楚
在中文里面奔则,“架構”和“框架”只有一字之差,你要問個普通人“架構”和“框架”有什么區(qū)別蔽午,可能十有八九是說不清楚的易茬。那么在IT圈里,這個問題的答案就很清楚嗎?搜一搜“架構 框架”關鍵字抽莱,排在前面的搜索結果幾乎都是“架構和框架的區(qū)別”范抓,可見在中文世界里面這個問題是有很多人有疑惑的,否則也沒必要寫文章來澄清概念食铐。
那么Architecture(架構)和 Framework (框架)在英文世界里面意思就很清楚嗎匕垫?搜索 Framework vs Architecture ,會發(fā)現(xiàn)也有大量 What is the difference between framework and architecture? 這類的話題虐呻,可見 Architecture 與 Framework 的區(qū)別在英文世界里也是一個 confusion 象泵。
所以在讀《前端架構設計》這本書的時候,我發(fā)現(xiàn)還真有必要把“架構”和“框架”的概念和區(qū)別搞搞清楚斟叼。
什么是架構单芜?
前端架構是一系列工具和流程的集合,旨在提升前端代碼的質(zhì)量犁柜,并實現(xiàn)高效洲鸠、 可持續(xù)的工作流。
上面這段是在本書第一章的第一句話馋缅,不知道你能否從這句話里看出“架構”是個什么意思扒腕?反正我看過這句后依然是很懵懂的。
當思考前端架構師的角色時萤悴,我總會聯(lián)想到傳統(tǒng)的建筑設計師瘾腰。
接下來的這句話,把架構師和建筑設計師聯(lián)系起來覆履,有那么點意思了蹋盆,架構師是做設計,建筑設計師也是做設計硝全,有點相通栖雾。再來看一看原文是怎么寫的 ——
When I think about the role of a?frontend architect, I always think about the characteristics that it shares with that of a?traditional architect.
對比“前端架構師”(frontend architect)和“傳統(tǒng)的建筑設計師”(traditional architect)的英文原文,我們會立即豁然開朗 —— 原來“架構師”(architect)就是 “建筑設計師”(architect)嘛伟众!既然“架構師”就是“建筑設計師”析藕,那么架構(architecture)和建筑學(architecture)也就可以對應起來了!
我們看看維基百科是怎么給建筑學做定義的 ——
The style of?design and method?of construction of buildings and other physical structures.
翻譯過來:建筑學是建筑物或其他具體構造物的設計風格與建造方式凳厢。
再看看計算機領域里的架構是怎么定義的 ——
Computer architecture is a set of?rules and methods?that describe the functionality, organization, and implementation of computer systems.
翻譯過來:計算機架構是描述計算機系統(tǒng)的功能账胧,組織和實現(xiàn)的一套規(guī)則和方法。
簡而言之先紫,計算機世界里的架構就是現(xiàn)實世界里的建筑學治泥,都是規(guī)則和方法論以及具體的實現(xiàn)藍圖。
前端架構師的職責
有了前面的概念鋪墊遮精,接下來的東西就好理解了
在建設過程中居夹,建筑設計師需要設計和規(guī)劃方案,并且跟進施工過程。這與前端架構師的工作有著異曲同工之妙吮播,不同的是后者建造的是網(wǎng)站变屁,而不是建筑物。比起澆筑混凝土意狠, 建筑設計師會在設計工程構圖的工作上傾注更多的精力粟关。同理,相比編寫具體的代碼环戈,前端架構師更專注于開發(fā)工具和優(yōu)化流程闷板。
歸納起來,前端架構師的職責就是:(1)體系設計院塞,建立系統(tǒng)設計的規(guī)范遮晚,清晰描繪產(chǎn)品和代碼的最終形態(tài) ;(2)工作規(guī)劃拦止,設計出能流暢運轉的系統(tǒng)县遣,制定完整開發(fā)工作流;(3)監(jiān)督跟進汹族,能夠持續(xù)地優(yōu)化工作流程萧求,保證項目高效率完成。
那么前端架構師是不是只要做好管理工作顶瞒,不再需要寫代碼呢夸政?作者的答案是否定的 —— 前端架構師不僅要寫更多代碼,更要會用多種編程語言榴徐,還要使用大量的工具守问。代碼量并未減少,只是代碼的讀者發(fā)生了改變坑资。前端開發(fā)人員面向終端用戶寫代碼耗帕,而前端架構師面向的則是團隊里的開發(fā)人員。
架構與框架
前面寫了一堆盐茎,為的是搞清楚什么是架構(architecture)和架構師(architect)兴垦,現(xiàn)在再厘清什么是框架(framework)就容易多了。
我們先看看建筑學(architecture)里的“框架”是什么意思 ——框架指建筑工程中字柠,由梁、柱等聯(lián)結而成的結構狡赐。
比如窑业,建筑師(architect)設計好了雷峰塔的外觀 ——?
看上去像是中國古代建筑里典型的磚木結構,但具體怎么建就是涉及選框架(framework)的問題了枕屉。其實最后重建的雷峰塔并沒有采用傳統(tǒng)的磚木結構框架常柄,而是用的鋼筋混凝土框架,甚至里面還有電梯!
回到本書的內(nèi)容里西潘,前端架構師除了要設計網(wǎng)站的外觀(HTML卷玉、CSS),還要負責Javascript的框架(framework)選型喷市,你可以根據(jù)需要去選 Angular相种、React、Vue…… 當然品姓,沒有哪個JavaScript框架是完美的寝并,隨著技術的發(fā)展,任何框架(framework)也都會有過時的一天腹备!
總結
《前端架構設計》一書讓我們了解什么是前端架構衬潦,而前端架構師的工作又是什么,也讓我們能夠厘清前端架構和前端框架之間的關系植酥。
如果這是你第一次制定架構計劃镀岛,請記住你將要迭代很多次!不要把你所有的希望 寄托于一個單獨的解決方案、框架或者平臺友驮,除非它一次又一次地被證明是有效的漂羊。