天天看點

關于前端的那些事

1. 前端的尴尬

目前,前端的地位及受重視程度,相比前幾年有了極大的提升。但尴尬之處仍存在,具體展現為:國内大部分有網際網路業務的企業确實不需要專業前端,專業前端的就業面及需求量相比 JAVA、PHP 等開發工程師而言明顯局限。

對大部分有網際網路業務的企業而言,它們的網際網路産品,開發工程師或者視覺設計師自己寫一寫 table 可能就夠了,甚至其産品都是外包公司做出來的。即便需要前端也隻是充當切圖的頁面仔,涉及到 JS 也隻是實作一些簡單互動。有的從業者甚至通過搜尋引擎,搜出一些模闆、代碼片段,修改一下來滿足需求、應付老闆。這導緻了相當一部分從業人能力平庸,被一些程式員同行概括認為前端技術難度有限,職位可有可無。

前端地位的尴尬傳回來也導緻學校教育上的漠視,在網際網路技術快速發展的當下,遲遲不開設前端對應的專業課程。我在大二時就被當時擁有博士學位的資料結構老師點名批評:“就你天天研究的那些網頁的東西,一點技術含量都沒有,随便找個同學教育訓練他一周 DreamWeaver 就能全學會!”微網誌微信上大學同學衆多,堂主不會說謊話。

不過現在似乎有點改觀,自從學校知道我這個挂科大戶、反面典型來到淘寶工作後,我就變成了就業典型。甚至畢業前幾個月院長還專門咨詢過我,開設前端對應的課程,哪些書籍是适合作為教材的。能通過自己的就業對學院的教學改革産生一點點布道的作用,我現在還感到高興和欣慰。

那麼,前端的技術含量到底怎麼樣?是不是真的像其他人說的那樣,企業不值得為其單獨設立一個職位呢?

2. 企業中的前端

個人觀點,其網際網路業務僅作展示視窗作用的,可能确實不需要設立專業的前端職位。如企業展示類網站、政府網站等,其營運業務的核心管道不基于網際網路,其網際網路産品更多承載的是品牌推廣手段多樣性的作用,其網站産品的開發完全可以通過外包來實作,頂多隻需要設定1、2 位營運編輯人員即可。

而對于那些核心營生基于網際網路的企業而言,專業前端的職位就是必須的。因為前端作為一個職業存在的價值主要展現在:“叫專業的人幹專業的事,解放并提升了産品方的生産力”。翻譯成人話就是,前端解放了互動、解放了視覺、解放了開發,并用其專業技能提升了用戶端的使用者體驗。

說解放了互動及視覺,是因為從此互動隻專注于操作體驗,視覺隻聚焦于藝術呈現,而不用附帶還要做切圖切頁面的事,且你叫互動、視覺去寫要具備專業程式設計能力的 Javascript 語言他們也很難搞定。

說解放了開發是指開發可以将精力都投入在諸如底層系統架構、算法優化、資料處理等核心業務上,而不同再去寫頁面套頁面,且你叫專業開發去搗鼓需要具備極強人文修養的 HTML 和 CSS,他們多半也會崩潰的。

說提升了用戶端的使用者體驗,是因為,你找出一個能同時搞定 HTML 語義性、CSS 相容性、JS 優異互動、整體性能經過優化、結構樣式及腳本具備優異擴充性支援、且界面還原精确到 1 像素的互動、視覺或專業開發給我看看,有一個我們團隊要一個!

3. 前端的工作内容及技術含量

作為前端開發工程師,我們中的絕大部分(極少部分的前端工程師的工作内容是面向底層庫的開發,為其他前端提供更便捷的開發工具),在日常的開發實踐中,确實鮮有要用到算法的情況。如此好似低端,卻不意味着做好就容易。

相比字面意思了解性較差的 F2E (Front End Engineer,前端開發工程師),我們中絕大部分的工作性質更準确的形容應該是 UIE(User Interactive Engineer,使用者界面開發工程師)。我們要處理的事務包括但不限于:産品界面的在浏覽器端的展現、前後端資料的通信以及基于 DOM 操作的互動體驗。

因前端編碼手段過于靈活,品質參差的 HTML、CSS 和 JavaScript 可能都可以滿足目前的産品需求。可若一旦涉及可用性、擴充性、細節控、性能優和相容性,品質不佳的代碼劣勢立現。如,對很多人最不重視的、認為最沒技術含量的 HTML:一個優異的 HTML 結構,且不論其本身就具備的高優雅性及可讀性,更可以節省一大半的 DOM 操作;且具備良好的可擴充性,避免未來因需求變化而導緻的大規模結構重構;更能避免絕大部分的 CSS 相容性問題 —— 我就不提什麼子產品化複用性、搜尋引擎優化和盲人閱讀器的那些事了。

另外因前端職業成型晚,技術疊代快(且這種疊代屬于技術累加式而非替換式,使得越往後入門的新人需學習的東西越多),産品相容問題多(想做到 “write once, run anywhere" 是F2Er共同的夢),校園教育缺失,自學成本高、最佳實踐積累少、職業思維模型需跨技術與人文等種種因素,都導緻前端職業修養的養成成本更高,靠譜的人才稀少。

是以說,“糙活也能用,細活養成難”的現實一是阻礙了很多從業者的進步,二也造成了行業上認為前端“沒難度級别低”的錯覺。

但錯覺終究是錯覺,網際網路的快速發展會幫助大家逐漸糾正這一認知。前端現在不論作為一個職業,還是其背後代指的一幹技術與思維,都依然顯得青稚,需要積澱與成熟。但請相信前端成熟的路不會更類似其他職業的開發——我會告訴你一個好的前端應該具備很強的人文氣息麼?人文這東西說不清道不明,但可以肯定它屬于是感性的一類,正如 HTML 和 CSS,看似簡單,卻絕非簡單,一如文學創作,語境的形成不取決于文法,卻依賴于開發者自身。