㈠ 如何實現前端工程化和靜態資源的管理
提升開發體驗
我們主要從以下三個方面來提升我們的開發體驗。
規范化
當團隊人員不斷擴充時,我們需要制定統一的規范來對平時的開發工作做出一定約束和指導。統一的規范包括前端的代碼規范,根據規范定義好一套代碼檢查的規則,在代碼提交的時候進行檢查,讓開發人員知道自己的代碼情況。
同時,根據以往的開發經驗,我們制定了統一的項目框架,根據業務功能不同,將一個項目(app)拆分成不同的業務模塊(mole),而每一個模塊都包含自身的頁面(page)以及構成頁面所需要的組件(widget),每一個項目涉及到app、mole、page、widget這些已經約定好的概念,這樣讓項目結構更加清晰,而且讓團隊內不同業務的人員之間切換無障礙。
組件化
在項目中引入組件化的概念,這里的組件對應上文講到的widget,每一個組件都會包含組件自身的模板、css、js、圖片以及說明文件,我們使用組件來拼裝頁面,像搭積木一樣來拼裝我們的頁面,同時一個組件內可以調用另一個組件。
在拿到設計稿後,我們首先需要確定哪些需要做成公共組件,那些是要做成獨立組件,以及組件間如何進行通信。在頁面中調用這些組件後,會自動載入組件的模板以及組件的靜態資源,而當組件不再需要時,只要移除掉組件引用,那麼相應的模板和靜態資源也會不再載入。
組件化的好處主要有這么幾點
管理方便,我們可以把一個獨立功能相關的文件在工程目錄中放在一起,這樣代碼管理起來會非常便利
組件復用,通過抽取公共組件,可以實現組件復用,從而減少工作量,創造價值
分而治之,這是組件化最重要的一點,將頁面組件化,就是對頁面功能的拆分,將一個大的工程拆成小的零件,我們只需要關注每一個零件的功能,極大地降低了頁面的開發與維護的難度
自動化編譯
在前端開發中,我們總是會去使用很多工具、手段來優化代碼、提升開發效率,例如,我們會使用sass、less等CSS預處理工具來編寫更好維護的樣式代碼,我們也會使用CSSLint、eslint等代碼檢查工具來檢查代碼的語法錯誤,使用文件合並壓縮等手段來減少資源大小,除此之外我們還會去做雪碧圖合並、多倍圖處理、字體壓縮處理、代碼發布等等。
曾經有大神說過,超過90s的工作都應該自動化掉。而以上所有的這些工作,貫穿我們整個開發流程,但是不同工具的切換不但顯得凌亂,而且影響開發效率。在自動化、工程編譯的思想早已深入人心的當下,我們當然也要緊跟潮流,所以我們考慮通過自動化手段來提升我們的效率,讓所有操作可以一鍵式開速執行完。
我們將通過定義好一系列的編譯任務,按照一定順序依次對我們的項目自動進行編譯操作,最後產生出可上線的代碼。
㈡ 學完前端可以做什麼工作
入門級做頁面。就這么簡單。把Designer出的各種設計圖轉化成html+css+js+image的靜態網頁,並把它們交給後端開發人員製作成頁面模板。這就是入門級的前端工程師所做的事情。
進階級還是做頁面。不過稍微復雜一些,你需要開始注意一些更復雜的問題,首當其沖的就是瀏覽器兼容性問題。老實說瀏覽器兼容性問題真的不是那麼好搞定的,畢竟每個項目對瀏覽器版本的要求都不一樣,而且現在不光有PC瀏覽器還有各種移動設備上的瀏覽器,同時國內廠家的瀏覽器種類也越來越多,坑也是密密麻麻。除了兼容性,你可能還要關注一下性能問題,包括但不限於網路性能、渲染性能、js邏輯的性能等等,這個展開講可以寫本小冊子了,呵呵。
中級帶團隊。你可能會奇怪,一個中級工程師就能帶團隊了?可是真的很多公司就是這樣,尤其是小公司。當你了解了html、js、css以及各種瀏覽器的各種特性細節之後,你會被任命帶領一個小的開發團隊,當然是前端開發團隊。可能加你一共也就三四個人,甚至更少。這時候你的工作內容除了自己寫一點頁面以外,還會幫助組員解決各種各樣的細節問題,畢竟,組里,你是最懂技術細節的。這個時候,一部分人開始停步不前,而另一部分人開始關注另一個新的問題:工程化。前端代碼都是非常鬆散的,項目結構性差,一旦開發人員數量多起來,業務復雜起來,如何管理這么多人、這么多代碼是個非常大的問題。能否在這個問題上得到突破,決定了你能否邁向下一個級別。
高級架構設計。此時你熟悉前端開發的各種技術細節(當然忘了一部分細節也沒事 ^_^),同時對各種前端框架、技術的特性聊熟於胸,你知道如何組織和管理項目讓大家能以最快的速度達到項目要求,你甚至了解手下每個人的所長所短。於是當新項目到來,你迅速根據自身過往的經驗選取若干種技術和工具,配上你認為最合適的人選組成項目團隊,披荊斬棘日夜兼程將產品汪的各種奇葩需求斬於馬下。這么做了一兩個項目之後,你可能又覺得空虛了,你要尋求新的目標。恰好,NodeJS打開了通往新世界的大門。
非典型前端穿過NodeJS打開的大門,你進入了全新的世界——後端。全新的世界,無限的可能。樓上寸老師說的「上天入地,無所不能」,我猜就是這個狀態。愛幹嘛幹嘛吧,這個時候,你應該不會再來問「後端程序員都在幹嘛」這種問題了。其實,要成為一名「非典型前端」並不一定非得經過1~4的步驟。只是現在已經上了年紀的前端大多是這樣過來的,畢竟,NodeJS出來的時間也並不算很久。
㈢ 什麼是"前端工程化"
前端工程化是指使用軟體工程的技術和方法來進行前端的開發流程、技術、工具、經驗等規范化、標准化。其主要目的為了提高效率和降低成本,即提高開發過程中的開發效率,減少不必要的重復工作時間。
前端工程化是前端架構中重要的一環,主要就是為了解決上述大部分問題的。而前端工程本質上是軟體工程的一種,因此我們應該從軟體工程的角度來研究前端工程。
前端工程化有四個特點:模塊化、組件化、自動化、規范化。
1、模塊化:
就是將一個大文件拆分成相互依賴的小文件,再進行統一的拼裝和載入。只有這樣,才有多人協助的可能。在工程化之前,一直是使用js、jquery、ajax,這沒有模塊概念,對於開發大型且復雜的系統會有一定的限制。
2、組件化:
組件化≠模塊化。模板化只是在文件層面上,對代碼和資源的拆分;組件化是在設計層面上,對於UI的拆分。目前市場上的組件化框架最多,主要的有Vue,React,Angular2。
3、自動化:
「簡單重復的工作交給機器來做」,自動化也就是有很多自動化工具代替我們來完成,例如持續集成、自動化構建、自動化部署、自動化測試等等。
4、規范化:(至關重要的一環)
在項目規劃初期制定的好壞對於後期的開發有一定影響。包括的規范有:
目錄結構的制定、編碼規范、前後端介面規范、文檔規范、組件管理、Git分支管理、Commit描述規范、定期codeReview、視覺圖標規范。
(3)前端工程轉管理擴展閱讀:
為什麼需要前端工程化:
前端越來越復雜,設計的問題和環節也越來越多,不採用工程化管理,就無法很好的實現團隊協同和降低復雜性。 原因如下:
1、前端范疇不斷擴大
早期的前端只需要適配桌面瀏覽器,而現在的前端,需要適配不同類型和尺寸的設備,包括移動端網頁,app應用等。
2、前後端分離
早期的前端只是後端 MVC 框架的一層模塊, 而現在的前端普遍是從後端介面獲取數據,編寫處理邏輯,各種前端mvc前端框架也層出不窮。
3、模塊化開發的出現
現在的前端開發不再是從零寫起,重復造輪子,而是會引用大量內部和外部的組件和模塊,這也導致前端必須進行模塊管理。
4、轉碼器的盛行
為了提高效率,前端工程往往不會直接寫html,css,和js代碼,而是改用其他格式書寫,再用工具編譯為目標格式。
比如用Jade 寫HTML,用less、sass、stylus 編寫CSS,用ES6、Typescript編寫JavaScript。
5、開發流程和團隊
早期的前端團隊往往只有幾個人,而現在的前端團隊可以擴展到幾十人,甚至上百人。每個人只負責自己的一塊內容。所以,如何協調多人多團隊的工作,保證溝通順暢,保證許可權管理,越來越成為一大問題。
前端工程化的具體內容:
1、代碼規范: 保證團隊所有成員以同樣的規范開發代碼。
2、分支管理: 不同的開發人員開發不同的功能或組件,按照統一的流程合並到主幹。
3、模塊管理: 一方面,團隊引用的模塊應該是規范的;另一方面,必須保證這些模塊可以正確的加入到最終編譯好的包文件中。
4、自動化測試:為了保證和並進主幹的代碼達到質量標准,必須有測試,而且測試應該是自動化的,可以回歸的;
5、構建:主幹更新以後,自動將代碼編譯為最終的目標格式,並且准備好各種靜態資源;
6、部署:將構建好的代碼部署到生產環境。
㈣ 畢業做了兩年web前端,感覺好迷茫想換工作了
但凡是從事技術這塊的崗位人員,長期面對電腦是既定的事實,而不斷的更新自己的專業知識是讓你不至於被社會所淘汰,畢竟現在的技術更新可謂是一天一變化,所以這也是許多人說IT技術人員的技術生涯在30歲以後就需要轉型運營管理,否則很難跟上時代的腳步,不僅僅是身體而且技術的更新也會有所下滑。
你才24歲,如果說你真的不喜歡現在的工作環境,那麼你不妨可以嘗試下去做你喜歡的視頻剪輯、攝影哪怕是從頭開始,只要你自己喜歡可以嘗試看看。年輕就是試錯,只有經歷過了你才會明白究竟哪些是對的。
工作一定要自己喜歡,工作時候是快樂的才能讓你有動力做下去學習下去,否則你會很壓抑,對你的影響很大。
㈤ web前端開發工程師幾年才能做到年薪百萬
首先年薪多少和工作年限不是絕對正比的,當然前端是要看工作經驗,但是你是說你工作年限越久你就越值錢,主要還得看你的技術水平和解決問題的能力。其實年薪百萬的前端工程師並不多。當然不是沒有,只是佔比不多。大部分的都是在三五年之後轉管理層,年薪一般也就四五十萬左右。286 、991在阿里,騰訊這些公司的除外。
㈥ 在前端工作好幾年後,是選擇技術還是轉向管理層
技術 or 管理,這里沒有對錯之分,只有合不合適。有的人就不善於交流,同時喜歡專研,可以繼續走技術的路,發展成專家;有的人則可能有比較強的領導力,可以帶領一群人完成項目,那可以轉向管理,成為Team Leader等。我在源碼時代時的同學,就一直堅定要走技術的路,而我還在徘徊。
㈦ 做過前端的還可以轉行做什麼
程序員轉行,就這么幾條路,做技術專家,做管理,做產品經理,當然還有,如果能力特別強的,可以創業,技術入股。
現在自媒體流量大爆發,前端可以考慮做自媒體,將自己的知識分享出來,既可以賺到錢,也能將自己的知識沉澱下來。
㈧ 學完前端開發後出來可以做什麼
給大家列舉Web前端的六個就業方向和工作內容。
1、資深Web架構師
這個方向,既兼顧了工作的單純性、又能夠減少實際Coding的工作量,能騰出更多時間。在國內,Web前端工程師遇到較多的情況是總是反復編寫著同樣的代碼,總是面對著同樣的技術和產品,容易感覺枯燥。但正是由於這樣較為廣泛的Web相關知識的沉澱,使得我們更加容易成為一名架構師。
雖說這種職業發展方向不如第一種來得平滑,但是作為一名架構師在學習後端技術、DBA、Platform等內容,將其豐富的知識應用到需要實際中的項目操作,不再局限自己在家裡隨便寫寫兩個Demo。即便在學成這段時間,勢必會遭遇一段時間的陣痛期。但對於一個大局觀好、悟性好、知識面廣的前端工程師而言,這依舊是值得推薦的榮光之路。
2、資深Web前端工程師
這個方向算是一個Web前端最基本的選擇了,但能夠把自己的專業做到極致,能一輩子就在一個專業領域不斷學習和積累。對所有的Web前端工程師來說,朝著這個職業發展方向,只要足夠耐心、厚積薄發,成功的概率是非常高的。
3、網頁設計師
網頁設計師可以將平面設計中的審美觀點套用到網站設計上面來(其區別是動態網頁的製作是平面設計不能達到的,它是一種審美方式的延伸)。網頁如門面,小到個人主頁,大到大公司、大的政府部門以及國際組織等在網路上無不以網頁作為自己的門面。當點擊到網站時,首先映入眼簾的是該網頁的界面設計,如內容的介紹、按鈕的擺放、文字的組合、色彩的應用、使用的引導等等。這一切都是網頁設計的范疇,都是網頁設計師的工作。而且具備精通Photoshop,Coreldraw,Frontpage,Dreamweaver等多項網頁設計工具的能力。
4、PHP程序員
PHP技術人才,正迎合了目前的互聯網的發展趨勢。而且PHP作為非常優秀的、簡便的Web開發語言,和Linux,Apache,MySQL緊密結合,形成LAMP的開源黃金組合,不僅降低使用成本,還提升了開發速度,滿足最新的互動式網路開發的應用,這使得php軟體工程師成為一個發展迅速的職業。
5、自己創業
其實,自己創業是最好的道路,但也是成功率最低的道路,挑戰和機遇並存。作為一個前端技術人員,需要將自己的視野更多放在行業的動態、產業鏈的動態、相關產品領域的動態,把關注細節的優勢繼續保持,同時,增強自己把控一個產品乃至一個公司命運的能力。
6、轉崗管理或其他
這條職業道路和Web前端技術之路關系不大。
如果你想要專業的學習web前端,更多需要的是付出時間和精力,最好還是選擇面授的。線上的基本都是視頻,學不會的。
學web前端一般在2萬左右,4-6個月左右的時間。應該根據自己的實際需求去實地看一下,先好好試聽之後,再選擇適合自己的。只要努力學到真東西,前途自然不會差。