【IT168 評論】多年之前,大部分人對于前端工程師的工作有著很大誤解,以為不過是簡單的做一些HTML和CSS的工作,偶爾充當(dāng)一下設(shè)計(jì)師即可,現(xiàn)在也不排除有如此想法的人。近兩年,隨著前端架構(gòu)的迅猛發(fā)展,前端工程師這一崗位才逐漸被正確認(rèn)知。身為一名前端工程師,在企業(yè)架構(gòu)升級的前、中、后期需要注意哪些因素?累計(jì)服務(wù)客戶超過2000個(gè),十年媒體技術(shù)和服務(wù)經(jīng)驗(yàn)的蘇寧視頻云前端架構(gòu)經(jīng)歷了什么樣的演變?前端開發(fā)工程師的日常又是什么樣的呢?
本文采訪嘉賓:李曉健?,F(xiàn)擔(dān)任蘇寧視頻云高級技術(shù)經(jīng)理。軟件技術(shù)專業(yè),從事java開發(fā),擁有8年開發(fā)經(jīng)驗(yàn),超過6年的專職前端開發(fā)經(jīng)驗(yàn),3年以上的團(tuán)隊(duì)管理經(jīng)驗(yàn);目前負(fù)責(zé)蘇寧視頻前端研發(fā)和架構(gòu)工作,參與前端SDK組件的開發(fā),推動蘇寧視頻云平臺的架構(gòu)改進(jìn)和用戶體驗(yàn),為用戶提供優(yōu)質(zhì)的服務(wù)。
打破誤解:前端開發(fā)工程師的日常!
“我認(rèn)為,大家眼中的前端開發(fā)工程師應(yīng)該與實(shí)際情況不太一樣”,這是李曉健在談及此話題時(shí)說的第一句話。多年之前,前端開發(fā)工程師這個(gè)崗位還未誕生,當(dāng)時(shí)的開發(fā)流程是設(shè)計(jì)師直接與后端對接,需求溝通不暢且效率低下。
隨后,前端開發(fā)迎來了以JQuery為主的時(shí)代,到ES6的發(fā)布,模塊化開發(fā)時(shí)代到來再到如今推崇的全棧式開發(fā),前端開發(fā)工程師的崗位需求越來越旺盛,其不僅僅是簡單的寫頁面,包括更加復(fù)雜的頁面邏輯,更加豐富的功能以及各類運(yùn)行環(huán)境適配。更為重要的是,用戶體驗(yàn)也屬于前端開發(fā)工程師的工作范疇,這是近幾年企業(yè)非常重視的優(yōu)化工作。
從蘇寧視頻云架構(gòu)的三次升級窺探企業(yè)架構(gòu)升級的前因后果
互聯(lián)網(wǎng)飛速發(fā)展得這幾十年,任何一家企業(yè)的架構(gòu)都經(jīng)過了至少一次的迭代,互聯(lián)網(wǎng)企業(yè)基本都經(jīng)歷了三次左右的架構(gòu)變遷,每一次升級的背后到底是哪些因素催促著企業(yè)做出了這一決定?
蘇寧視頻云是隸屬于蘇寧旗下的子品牌,目前累計(jì)服務(wù)客戶已超過2000個(gè)。蘇寧視頻云憑借PPTV十年媒體技術(shù)和服務(wù)經(jīng)驗(yàn),融合流媒體技術(shù)、P2P、CDN 分發(fā)、海量存儲、安全策略等構(gòu)建的專注視頻領(lǐng)域的一站式SaaS 服務(wù)平臺。在這十年間,蘇寧視頻云架構(gòu)共經(jīng)歷了三個(gè)發(fā)展階段。
起初,整個(gè)項(xiàng)目頁面采用PHP、CSS和原生javascript,包含了部分自定義組件。當(dāng)時(shí)的開發(fā)流程是前端工程師開發(fā)HTML文件,CSS樣式,頁面交互效果;將寫好的代碼交給PHP工程師,工程師根據(jù)HTML文件手動轉(zhuǎn)成PHP文件,再加入一些業(yè)務(wù)邏輯代碼。這個(gè)看起來架構(gòu)似乎并不太清晰的階段暴露出了太多問題,比如頁面數(shù)量較多、單個(gè)頁面請求文件過多以及代碼復(fù)雜較高等,其開發(fā)流程非常不合理。
在第二階段的重構(gòu)中,蘇寧視頻云技術(shù)團(tuán)隊(duì)在原有的架構(gòu)基礎(chǔ)上進(jìn)行調(diào)整,保留所有原生組件,對頁面進(jìn)行重新劃分,前端直接用HTML文件展示頁面,直接將html文件發(fā)布到服務(wù)器,不再將hrml文件轉(zhuǎn)成php文件.......該階段針對大部分開發(fā)流程進(jìn)行了優(yōu)化。
不久之后,趁著網(wǎng)站改版的機(jī)會,蘇寧視頻云技術(shù)團(tuán)隊(duì)進(jìn)行了第三次架構(gòu)改造,并且在不依賴之前架構(gòu)的前提下做出了一個(gè)全新的架構(gòu)。這次升級不僅優(yōu)化了開發(fā)流程,也考慮到了業(yè)務(wù)的未來發(fā)展及技術(shù)趨勢?,F(xiàn)在的蘇寧視頻云集視頻云直播、云點(diǎn)播、云上傳、云轉(zhuǎn)碼、云存儲、云統(tǒng)計(jì)等功能于一體,多平臺全方位支持客戶各種視頻場景的業(yè)務(wù)需求。
李曉健表示,一家企業(yè)進(jìn)行架構(gòu)升級的主要原因可概括為業(yè)務(wù)驅(qū)動和開發(fā)流程限制兩方面,這從蘇寧視頻云架構(gòu)的三次升級中也可窺探一二。升級前,工程師一定要認(rèn)真了解當(dāng)前架構(gòu)的限制和問題以及當(dāng)前的業(yè)務(wù)特點(diǎn)和技術(shù)走向,切忌盲目追新,這也是很多工程師存在的問題。
前端開發(fā)是非常容易出現(xiàn)問題的,很多問題還可能直接暴露給終端用戶進(jìn)而影響用戶體驗(yàn),技術(shù)新不代表就是主流,也不代表適合當(dāng)前業(yè)務(wù)特點(diǎn),一味追新很容易忽略架構(gòu)深層次存在的問題。 李曉健建議,對于新開發(fā)的項(xiàng)目,框架選型階段可以參考頁面結(jié)構(gòu),選擇適合頁面結(jié)構(gòu)的技術(shù)進(jìn)行開發(fā),這也會大大降低開發(fā)復(fù)雜度,比如頁面需要做成單頁形式,那就可以選擇MVC或MVVM架構(gòu)。
對前端開發(fā)工程師的一點(diǎn)理解!
很多前端開發(fā)工程師應(yīng)該都聽過前端開發(fā)的四大核心:代碼、流程、測試和文檔。李曉健認(rèn)為,做程序開發(fā),代碼肯定是最重要的,開發(fā)過程中既要保證功能的完整性,也要注意代碼的可維護(hù)性和可擴(kuò)展性;對開發(fā)人員來說,流程應(yīng)該是合理規(guī)劃代碼結(jié)構(gòu);雖然有專業(yè)的測試人員,但開發(fā)人員應(yīng)該保證代碼的正常運(yùn)行,并確保新增代碼時(shí)的向前兼容性;文檔是開發(fā)過程中非常重要的一環(huán),這會比單純在代碼中添加注釋的效果更好。
如今,新興技術(shù)框架層出不窮,李曉健認(rèn)為,前端開發(fā)工程師還是應(yīng)該從理論知識入手,打好基礎(chǔ)才可步步為營,對新興框架需要保持謹(jǐn)慎的采納態(tài)度,如若可行,倒也可以嘗試,切忌跟風(fēng)而忽略架構(gòu)本質(zhì)。