在Web前端技術變化日新月異的今天,Web前端項目變的越來越復雜。前端架構也會隨著我們現在千變萬化的迭代需求,架構技術的演化,不僅是架構師也是我們每個開發人員都必須去關注的問題。下面,給大家詳細說一說前端構架!
一、前端架構的由來
2014年10月13日CSS開發者大會上,在新奧爾良會議中心一個擁擠的房間里“舉起前端架構的旗幟”成了在一線奮斗著的開發者們共同的訴求。在那之后,那些想要弄清楚自身定位以及在公司中所扮演的角色的開發者們發現,其實他們一直扮演著前端架構師的角色,卻從來沒有擁有過這個頭銜,或者沒有足夠的信心去爭取這個職位所應具有的權力。
在大會召幾周之后,很多人把他們在Twitter上的個人簡介改成了“前端架構師”。
二、你理解的前端架構是怎樣的?
前端架構如同建筑設計,在建設過程中,建筑設計師需要設計和規劃方案,并且跟進施工過程。這與前端架構師的工作有著異曲同工之妙,不同的是后者建造的是網站,而不是建筑物。比起澆筑混凝土,建筑設計師會在設計工程構圖的工作上傾注更多的精力。同理,相比編寫具體的代碼,前端架構師更專注于開發工具和優化流程。
前端架構是一系列工具和流程的集合,旨在提升前端代碼的質量,并實現高效可持續的工作流。
前端設計架構不是一勞永逸的工作,沒有任何設計在一開始就是完美的,也沒有任何計劃可以一步到位。
三、前端架構的原則
試想一下,如果一棟建筑沒有明確的構造設計,所有的重要事項都由建筑工人直接決定,那么就可能會出現這樣的情景:第一面墻用石頭壘,第二面墻用磚頭砌,第三面墻用木頭搭,第四面墻因為追求時髦而留空。
雖然網站的整體外觀和風格基調完全由經驗豐富的視覺設計師決定,但前端架構師掌控著背后的前端開發方法和系統設計哲學。通過設計所有前端開發人員都要遵循的系統規范,前端架構師清晰描繪了產品和代碼的最終形態。
一旦前端架構師建立起了系統設計的規范,項目就擁有了可以衡量代碼質量的標準,否則我們如何判斷代碼是否達標呢?一個精心設計的系統,應當具備完善的檢驗機制,并做出適當的取舍,以保證系統中的代碼有實質的價值,而不是簡單的堆砌。
有了清晰的結構設計之后,就需要制定開發工作流了。開發人員寫一行代碼并且提交到線上需要經過什么步驟?舉一個最簡單的例子,這個過程包括使用FTP登錄服務器,修改一個文件并保存。然而,對于大多數項目而言,完整的工作流可能會用到多種工具,如版本控制器、任務調度器、CSS處理器、文檔工具、測試組件和服務器自動化工具等。
前端架構師的目標是設計出能流暢運轉的系統。這個系統不僅能高效快速地啟動,還可以通過語言分析、測試用例、文檔記錄等方法持續地提供有效的反饋,并且大幅減少由于重復操作而產生的人為錯誤。
前端架構設計絕不是一勞永逸的工作。沒有任何設計在一開始就是完美的,也沒有任何計劃可以一步到位??蛻艉烷_發人員的需求會隨著時間改變。在某個階段運行得很好的開發流程,隨后也可能需要重新調整,以便提高效率、減少錯誤。
前端架構師的一個非常重要的能力,就是能夠持續地優化工作流程。如今各種各樣的構建工具可以讓我們很方便地改變工作方式,并通知到每一位開發人員。
有些人問前端架構師是否等同于管理角色,不再需要寫業務代碼。前端架構師不僅要寫更多代碼,更要會用多種編程語言,還要使用大量的工具。代碼量并未減少,只是代碼的讀者發生了改變。前端開發人員面向終端用戶寫代碼,而前端架構師面向的則是團隊里的開發人員。
四、前端架構的核心
歸根結底,所有的網站都是由一堆文本文件和資源文件組成HTML、CSS、JavaScript的。當我們面對制作網站所產生的大量代碼時,就會發現為代碼和資源設定一個期望是多么重要。
怎么用工具和流程構建一個高效且避免出錯的工作流是一個重要的思考。工作流變得越來越復雜,那些用于構建它們的工具也同樣如此。這些工具在提高生產力、加快效率和保持代碼一致性上帶來了驚人的效果,但也伴隨著過度工程化和抽象化的風險。
要構建一個可擴展和可持續優化的系統,必須保證新代碼與老代碼能夠很好地兼容,我們的代碼不會孤立存在,它們都是大型系統中的一部分,創建覆蓋面廣泛的測試方案,能確保老代碼還能正常運行。
設計文檔是你同他人交流的工具,來闡述你的設計決策是什么,來闡明你的設計決策是什么以及為什么你的決策是好的。如果不是團隊中的重要成員要離開,幾乎都不會意識到文檔的重要性。
這四個核心是構建可擴展和可持續優化的系統的基礎。以上就是我介紹的前端構架,相信大家對前端構架已經有所了解。希望對從事Web前端的小伙伴有所幫助。如果你想了解更多Web前端行業動態和學習資料,可以關注“武漢千鋒”微信公眾號!