開發人員技能樹:成為“前端大手子”需要具備哪些素質?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。
前端開發人員目前的需求量很大,但這并不代表公司錄用的門檻就變低了,他們優中取優,只選擇頂尖人才。
如今的前端開發和十年前大相徑庭,一切都在不斷演變,JavaScript的三大框架React、Vue和Angular十年前才剛剛誕生。優秀前端開發者應具備的技巧也在與時俱進,前端開發者需要時刻保持最佳狀態。
HTML,但不僅是基本的HTML
眾所周知,充分理解HTML及其所有可能性是web開發的基礎。必須熟悉HTML5,并且能夠編寫清晰的HTML代碼。例如,不要創建不必要的包裝元素(wrapping element),也不能在span中使用div。這些都是基礎,但筆者經常看到這樣的基本問題出錯。
另一項有關HTML并日益受歡迎的技能是可訪問性。什么是網頁可訪問性?具備可訪問性的無障礙網頁是指殘疾人也可以充分使用的網頁,這里的殘疾人包括視力受損、失明或失聰的人群等。
對于想要創建人人可用的優質網頁的企業和組織來說,可訪問性是必須的。對于這些企業和組織來說,重要的是推出人人可用的產品和服務。可訪問性的好處不僅在于改善了殘疾人的網絡體驗,同時還可以提升所有用戶的使用體驗。
學習使用框架
顯然,三大框架任何之一都值得學習。大多數前端開發工作都要求求職者至少曾使用過一種常用JavaScript框架。
學習React、Vue或Angular三者之一是不錯的選擇,這些都是熱門技能。不過,筆者強烈推薦先大家學會JavaScript的基礎知識,嘗試一些只使用普通的JavaScript的項目。在理解JavaScript的工作方式并且完全清楚基本原理之后,再專注于學習三大JavaScript框架中的一種。
由此你將了解所使用的框架解決了哪些問題,并理解該框架為何采用某種方法。這種學習JavaScript的方法的唯一缺點就是更耗時。然而,從長遠來看,這是有回報的,你將遠遠領先于那些抄近路的人。
不想學習React、Vue或Angular也無妨,因為還有很多其他框架可供學習。不過要記住,其他的框架遠沒有那么高的需求。
圖源:unsplash
樣式風格
與十年前相比,網站的風格已經截然不同。過去,我們會用表單來創建一個網站。現在我們使用更先進的技術,例如flexboxes和網格布局(grids)。
對于前端開發人員來說,了解CSS的使用方法是一項基本技能。在每個瀏覽器中,樣式表(stylesheets)的效果都應當保持一致——這可并非易事。
設計樣式時并非只需要掌握CSS,Sass如今也很常見。Sass是一個CSS預處理器,它允許使用變量、數學運算、混合(mixin)、循環、函數、導入功能等等,這使得編寫CSS變得簡便,而且功能更加強大。此外,和CSS無甚亮點的語法相比,Sass的語法更為簡潔而優雅。
有時只需要使用一個框架就能完成所有重任。這意味著你不再需要從零開始編寫全部CSS。有了這些現成的功能,你可以用這些框架來創建一整個樣式完美的網站。你如果曾接觸過類似Bootstrap或Tailwind的框架,就領先其他開發人員更多了。
響應
用臺式機瀏覽網頁的日子已經一去不復返了,現在大多數人都在手機上瀏覽網頁,確保應用程序支持所有尺寸的屏幕需要一些技巧。在用手機瀏覽網站時,沒有誰希望看到頁面上的關鍵部分消失在屏幕外的區域。無論如何,網站上都不該出現橫向滾動條。
響應式網站能在各種用戶設備上都提供最好的體驗。除此之外,響應式網站的外觀更統一。構造響應式網站需要使用媒體查詢(media queries)。媒體查詢不難掌握,你能很快適應。
創造力
前端工作者需要洞悉事務應有的運作機制。在開發某一功能時,有時會發現這個功能缺少某一處設計,或者不知道如何將其呈現在小尺寸屏幕上,此時就需要你發揮創造力。
但即使有了設計,你仍然需要創造力來將圖形設計實現為可用的網頁。但這并不是需要創造力的唯一原因。與所有軟件一樣,代碼庫中會悄然出現漏洞,修復這些漏洞是你工作的一部分,同樣也需要創造力。
圖源:unsplash
搞懂如何測試工作成果
如果問一群開發人員他們最討厭的工作是什么,大多數人的回答可能是測試。不過,盡管測試并不是招人喜歡,但每個開發人員都理解它的重要性。
你可以在這一領域一展拳腳,脫穎而出。會編寫自動化測試不僅是錦上添花,所有開發團隊都在盡可能地轉向自動化,通過自動化測試,你可以快速獲得關于代碼更改的反饋。手動測試十分耗時,如果沒有任何自動化測試,就需要重復進行手動測試。
Cypress是常用的自動化測試工具之一。Cypress是一個端到端測試框架,它有一些很棒的功能,其中一個就是回退(time traveling)。回退功能可以讓你準確地看到測試過程中每一步都發生了什么,這使得調試變得更簡便且深入。
Cypress可以用來測試應用程序的任務流。同時,你可能希望在工具庫內添加更多的測試。另一個流行的測試工具是Jest,Jest允許你為所創建的組件編寫單元測試和快照測試。這使你能夠測試應用程序的更多獨立運作部分,而不是測試應用程序的不同部分如何協同工作。
版本控制
任何項目都必須具備版本控制。版本控制使你能持續管理、追蹤并控制文件的變更,它是確保代碼庫的質量和完整性的必要工具。你應該了解如何將剛完成的新功能推送到另一個分支,并且熟悉基本的版本控制操作,比如push、pull和commit。
解決合并(merge)過程中的沖突(conflicts)問題以及處理揀選(cherry-picking)對你來說應該并非難事,這些是開發人員的基本技能。Git是最常用的版本控制系統,也可選擇Mercurial和SVN。
終端(Terminal)
精通各種終端的操作并能熟練地鍵入命令,這的確是一項被低估的技能。每個開發人員都在不斷提升自己、提高效率,熟悉各種終端操作有益于提升工作速度。與其用鼠標在圖形用戶界面(GUI)上點來點去,不如直接在終端內進行操作——效果相同,但更快捷。
掌握mkdir、chmod和chown等基本命令能大大簡化前端開發者的工作。如果你在DevOps(軟件開發與IT運維)團隊工作,那么可能會涉及到一些運維任務,這需要更新SSL證書或安裝安全補丁。這些操作都是在終端內完成的。
這些技能你掌握了多少?努力點亮屬于“前端大佬”的技能樹吧!