問題回答者:黃軼,目前就職于 Zoom 公司擔任前端架構師,曾就職于滴滴和百度,畢業(yè)于北京科技大學。
1. 前端開發(fā)
問題
大佬,能分享下學習路徑么,感覺天天忙著開發(fā)業(yè)務,但是能力好像沒有太大提升,不知道該怎么充實自己 ?
解答
- 業(yè)務開發(fā)有沒有痛點,能不能通過技術的手段解決 ?
- 平時開發(fā)業(yè)務用到了哪些技術棧和周邊的生態(tài)鏈,我是否對他們熟練掌握了,對他們的實現(xiàn)原理呢 ?
- 平時開發(fā)遇到了 bug,調試了很久,能不能提升自己快速定位 bug,解決問題的能力 ?
- 如果上面分配了一個需求,沒有現(xiàn)成的輪子可以用,我是否可以快速造一個出來 ?
- 如果使用第三方輪子出現(xiàn)問題,我能否能找到合適的解決方案,甚至參與共建 ?
- 以上提到了這些問題,不妨問問自己,如果沒有做的足夠好,都是你可以提升的方向。
問題
我想知道你為什么對前端這個職業(yè)(行業(yè)),總是保持一顆好奇心,每天都不停探索,每天保持學習進步,你是怎樣堅持下來的呢 ?
就像醫(yī)院里的醫(yī)生(教授/專家),在這個行業(yè)刻苦鉆研了大半輩子,怎樣保持每天學習的這種精神 ?探索精神 ?并且長久堅持下去 ?為社會做出了非常多的貢獻。
我知道你是以怎樣的決心和毅力保持每天學習,不停探索前進 ?
解答
- 主要是興趣驅動吧,對技術保持熱情和好奇。
- 另外就是成就感,當我 get 到某個新技能,解決了某個復雜的問題的時候會非常有成就感。
- 工作前幾年的時間是非常關鍵的,是成長空間大且精力最旺盛的階段,一定要在這個階段多學知識。
- 學習是無止境的,尤大說過一句話我印象非常深刻 ”做腦力工作的人,往往鉆研得越深,越發(fā)現(xiàn)自己的渺小和無知“ ,與君共勉。
問題
最近拿到了滴滴出行的實習生 offer,我想問一下您對實習生 (或者說初步踏入 IT 行業(yè)的學生) 在融入部門和提升上有什么建議 ?
解答
- 實習生一定要多做業(yè)務,工作要積極主動,爭取轉正機會。
- 另外,非常推薦去我之前的團隊,現(xiàn)在是苗老板負責,你可以私下聯(lián)系他喔~
問題
感覺自己的 js 基礎很薄弱啊,我想問如果想進大廠你指的基礎具體一點到底指啥啊,我是一個非科班出身的求解呀 ?
解答
- 如果是應屆生,大廠關注的是你的基礎和潛力。
- 如果是社招,大廠會關注你的經(jīng)驗和能力,以及潛力。
- 如果你有心儀的大廠,不妨去看一下他們的招聘要求,以及關注一下他們對外輸出的東西。
- 非科班是一個劣勢,那么你就務必要花時間去補一些計算機相關的理論知識,簡歷有需要亮點,最好能有一些技術輸出,比如很多人會做博客、寫系列文章、做有趣的項目等等。
- 另外,最好的時機是等大廠缺人,招人名額多的時候去投簡歷,也可以多認識一些找內推機會。
- 最后,一切的一切,都離不開硬實力,所以優(yōu)先提升自己的硬實力,多花時間學習。
問題
黃軼老師,你對于在項目中推行 BFF 模式有什么見解嗎 ?
希望你可以回答的略廣一點,非常期待您的回答。
解答
- BFF 在服務聚合上還是很有優(yōu)勢的吧,特別是微服務特別火的今天,前端只需要關注所需要的數(shù)據(jù),不用關注底層提供這些數(shù)據(jù)的服務。我在滴滴和 Zoom 的時候都是這么玩的~
問題
請問一下,你做兼職的話,一般是關注那些方面呢 ? 還有比較建議在哪些渠道尋找兼職做呢 ?
解答
- 主要關注的是性價比,因為犧牲了自己的業(yè)余時間,要么是多掙錢(很難),要么是提升能力。
- 最好是熟人介紹,沒有的話可以去水木論壇找找看(我曾經(jīng)找到過),其它渠道沒有經(jīng)驗,我就不推薦了。
問題
黃老師,想問下你對于前后端數(shù)據(jù)交互的最佳實踐的看法,ajax ?axios ?等等,有沒有系統(tǒng)學習的推薦。
解答
- 前后端交互通常有 HTTP 和 WebSocket 2 種通訊方式,建議你首先系統(tǒng)的學習一下 HTTP 相關知識,推薦看 《HTTP 權威指南》或者是 《圖解 HTTP》。
- 另外你提到的 axios 只是對 Ajax 的封裝,如果你想了解它的實現(xiàn)原理,正好前陣子我在慕課網(wǎng)做了一門課程《基于TypeScript從零重構axios》,學一遍后你會對 axios 的實現(xiàn)細節(jié)會了如執(zhí)掌,同時也可以鞏固不少 HTTP 相關的知識。
問題
黃老師,我現(xiàn)在剛入門前端,能力有很大的欠缺,想找一些視頻學習,現(xiàn)在主要用到的是 Vue 框架,有什么視頻可以推薦給我嗎 ?
解答
- 這里不打廣告都不行了,可以關注我在慕課網(wǎng)的實戰(zhàn)課程喔~ Vue 三步曲,入門 - 進階的都有。
- 不過除了看視頻學習,我也建議你務必多去讀官方文檔,敲一敲上面的示例。
最后附上鏈接 http://www.imooc.com/t/3017249
問題
我目前是一名后端工程師,工作快五年了。剛工作時,認為前端只是寫頁面,寫交互,技能項要求少。
我自己也是比較喜歡前端,因為做后端的也會接觸到前端東西,所以暫時沒有轉到前端。
工作之中也在加強前端基礎技術技能。慢慢發(fā)現(xiàn)前端并不是剛開始認為的那樣,現(xiàn)在的前端能應用于各個客戶端,服務端,以及組件化,模塊化,激發(fā)了我更想學習前端的欲望,于是我利用空閑時間學習更多前端相關技術。
現(xiàn)在流行前后端分離,后端只做接口,完全不會接觸我喜歡的前端部分,我喜歡技術,不喜歡業(yè)務,但是業(yè)務也很重要,在我的經(jīng)歷中一個項目完成上線后,基本就是后端解決運營或用戶使用中出現(xiàn)的問題,因此正在考慮轉專職前端。
這幾年工作中寫過接口,寫過 h5 嵌入 App,寫過前后不分離的項目,也寫過前后分離的項目,想問問黃大仙站在前端的角度有什么看法 ?
解答
- 其實你有豐富的后端經(jīng)驗,不妨就直接轉全棧,并不一定要做專職的前端。
- 即使是前后端分離的開發(fā)方式,也可以一個人完成 2 端的開發(fā)。
- 而且越往上走,如果前后端都精通的人,可以走的更遠。
- 所以你往前端方向走是好事,不過后端也不要扔下。
- 后端也不僅僅是 curd,當業(yè)務復雜,用戶規(guī)模大的時候,面臨的挑戰(zhàn)比前端要大的多,如果你所在的公司沒這方面的挑戰(zhàn),建議去大廠感受一下。
問題
關于前端開發(fā),如何完善自己的工作流呢,目前的工作流十分原始,流程是明確需求-項目開發(fā)(開發(fā)環(huán)境/正式環(huán)境)-測試-上線。
如果在大廠面試,工作流這塊比較吃虧。像黃老這種包括了項目初始化、本地開發(fā)、聯(lián)調、測試、上線等各個環(huán)節(jié),是如何探索出來的呢 ?
解答
- 這些都是在大廠訓練出來的,其實程序員更多的應該去思考一個需求從產(chǎn)生 - 落地的各個環(huán)節(jié)。
- 現(xiàn)在大部分人能做到從一個項目的開發(fā)-上線各個流程的屬性,其實在 Zoom 我們會從產(chǎn)品的設計開始,自己會去設計產(chǎn)品應該如何實現(xiàn),用戶需要什么樣的功能,從 owner 的角度去設計和開發(fā),并負責產(chǎn)品的測試和上線,這才是工程師應該有的素質。
- 所以即使在一個有很多產(chǎn)品經(jīng)理的公司,工程師也可以多參與產(chǎn)品的設計和討論喔。
問題
大佬,對于 flutter 持什么看法,以后會成為全端的解決方案嗎 ?特別是 flutter 轉 web 之后 。
解答
- 肯定不會替代 Web 開發(fā)的,至于雙端的應用,可以關注一些主做移動端的公司,比如滴滴、阿里、騰訊、頭條等大廠在這方面的應用實踐吧。
問題
中級怎么突破到高級前端工程師呢? 自己嘗試寫框架和庫嗎 ?
解答
- 中級前端基本上就是能夠獨立開發(fā),滿足基本功能需求,質量一般,對于復雜業(yè)務需求實現(xiàn)吃力,需要指導,對標阿里 p5。
- 高級前具備獨擋一面的能力,能夠高質量完成工作,勝任復雜業(yè)務需求開發(fā),能把握一個系統(tǒng)/團隊的整體實現(xiàn),在推行過程中能提煉新的方法或方案,或對現(xiàn)有方案提出改進建議并被證明有效,對標阿里 p6。
- 其實級別的突破,側面反饋就是能力的成長,那怎么提升能力呢?既要會偷懶,又要勤奮。
這里說的“偷懶”,并不是說少做需求,而是從業(yè)務開發(fā)中多去思考和總結,學會抽象,學會復用代碼,減少重復的勞動。學會使用工具來幫我們解決人肉的問題。 - 舉個例子,前端最近非常火熱的編程思想就是模塊化、組件化,本質上都是為了復用代碼,提升代碼的可維護性,比如我們是不是需要開發(fā)通用組件庫、JS庫等等,來輔助我們的業(yè)務代碼。還有幾乎現(xiàn)在所有項目都會用構建化工具幫助我們開發(fā),最有代表性的就是 webpack,它能幫我初始化代碼,調試,編譯打包等等,極大的幫助我們節(jié)約了開發(fā)時間,我們是不是多花點時間去研究它的配置,甚至是它的源碼。
- 所以,去花時間學習這些編程思想,掌握這些工具,都能夠很好的幫助我們提升技術。除了會“偷懶”之外,我們也要勤奮,雖然業(yè)務忙,但往往也不會忙到8小時工作時間都在寫代碼的地步吧。
- 如果我們把每天在群里斗圖、刷微信朋友圈等等的時間節(jié)約下來學習技術的話,相信只要堅持,技術一定會提升比別人快,特別是初級的同學,你們的進步空間還很大,一定要多花時間在學習,而不是浪費時間問 “我工作 1-3 年,出去要多少錢合適” 這類的問題,薪資一定是和能力匹配的。
- 至于學習的方向,只要和你工作相關,你沒有掌握透徹的技術,都是可以的。
問題
學習到了一個進度學不進去了,靜不下心看書。想問問大佬有沒有遇到類似的情況,有什么調解方法嗎 ?謝謝~
解答
- 學習學不下去的時候,不妨做一些放松自己的事情,然后在狀態(tài)好的時候再回過頭去看喔~
問題
Node.js 對于前端是必備的么,但目前公司并沒有應用場景, 學了用不上,就忘了。
解答
- Node.js 至少在工具方面的表現(xiàn)還是很不錯的,比如一些構建工具、腳手架工具都是通過 Node.js 寫的,可以通過學習他們的源碼去了解 Node.js。
- 另外一些不錯的 Node.js 后端框架,比如 express,也可以去了解一下,因為通常使用 webpack 起的內置 server 就是使用了 express。
問題
作為一名初級前端工程師,前路很迷茫,不知道要怎么學習提升,老師,您可以給點建議嗎 ?
解答
- 首先是基礎,這里不僅僅是前端基礎,還有計算機相關的基礎知識(數(shù)據(jù)結構、網(wǎng)絡),基礎務必要打牢。可以通過反復看書、coding 練習的方式。
- 其次是項目開發(fā),你工作中用到技術棧,一定要熟練掌握,可以通過官方文檔入門,通過工作中的 coding 鞏固,并可以去看一些高質量的進階教學視頻課程做提升(這里有廣告嫌疑)。
- 以上是入門-中級的階段主要做的事情,其實就是不斷花時間學習 +coding,想辦法讓自己先成為熟練工,初級可提升的空間還是很大的。
- 中級-高級,下面有一個類似的問題喔。
問題
黃老師,請問一下中級前端開發(fā)和高級前端開發(fā)分別需要具備什么樣的能力素質 ?
解答
- 中級前端基本上就是能夠獨立開發(fā),滿足基本功能需求,質量一般,對于復雜業(yè)務需求實現(xiàn)吃力,需要指導,對標阿里 p5。
- 高級前具備獨擋一面的能力,能夠高質量完成工作,勝任復雜業(yè)務需求開發(fā),能把握一個系統(tǒng)/團隊的整體實現(xiàn),在推行過程中能提煉新的方法或方案,或對現(xiàn)有方案提出改進建議并被證明有效,對標阿里 p6。
問題
node ts 確實自己都在玩,ts 是跟你課程面學的,但有的面試官就反問我,node ts 并沒有在真正生產(chǎn)環(huán)境玩過還敢拿出來說會, 就把我拒絕了,這些東西確實會,只是之前公司沒有機會發(fā)揮,但我不知該如何應付這樣的面試官,希望你解答。很多東西也需要遇到一個好團隊才能發(fā)揮,但現(xiàn)在沒有這個機會。
解答
- 其實不妨把你自己玩的東西形成一些作品,發(fā)布到 GitHub 上,可以是文章,也可以是項目。
- 我之前面試一個攜程的小朋友,他們的技術棧是 React,但是他自己研究過 Vue.js 實現(xiàn)并寫了一個 Mini 版本的 Vue 實現(xiàn),這樣給我的感覺就很好。
- 所以雖然有些技術沒有在生產(chǎn)環(huán)境中用過,但是你通過自學掌握了并且折騰出一些成果,我會認為你是一個喜歡技術,愛折騰的人。
- 如果說你這么做了面試官依然不認可你,那說明你們的價值觀不符,那么面試不通過也沒什么好遺憾的,面試本來也是一個雙向選擇的過程~
問題
對于一個中大型的前端項目來說,各種組件如何分類更合理呢 ?比如基礎組件、業(yè)務組件。
解答
- 通常分為基礎組件、業(yè)務組件、視圖組件,基礎組件通常都會在組件庫里解決了。
問題
大佬,我現(xiàn)在就職一家比較大的公司,做前端,外包。每天平均 9 10 點下班,平常學習的時間感覺太少了,想補基礎知識。
只能通勤時間看看電子書,回家了再敲一會代碼。有時候,11 點,12 點。有點干下去了,有點迷茫,求大佬指導。
解答
- 你屬于人力外包還是項目外包,如果是人力外包到大公司,就想辦法轉正。
- 另外你需要評估一下你每天工作這么長時間是否有提升,還是一味地重復勞動。
- 如果有提升的話,那還是可以繼續(xù)做,如果沒什么提升,并且也沒什么好機會提升的話,那可以考慮出去看看機會了~
問題
畢業(yè)三年,第一年在一個小公司,第二年在一個大公司的外包到現(xiàn)在。
現(xiàn)在的狀態(tài)是這樣的,公司有老項目(13 年一直用到現(xiàn)在的)需要維護,也有新項目( vue + 微服務),總之我的工作上主要在維護那些老項目上,實際上工作上用的時間不多,每天有一定量的空閑時間,對應的工資也上不來,一年了也沒有調薪,由于老項目的重要性自然是日益下降的,未來也不像是多能期待。
新項目實際上我也接觸過,還做過一些腳手架整體升級一類的工作,所以現(xiàn)在工作中能帶來的學習方向和提升實在不多,于是我現(xiàn)在在學習一些基礎性的東西( http 協(xié)議,數(shù)據(jù)結構與算法,網(wǎng)絡硬件,甚至計算機組成)。
由于我是轉行來的這些東西沒有系統(tǒng)的學過,現(xiàn)在撿起來說有用也有用,但短期看來帶不來什么明顯的改變,我的問題就是,如果從現(xiàn)實出發(fā),之后的歲月應該怎么規(guī)劃合適,短期來說有什么能帶來收益(比如方便面試 ?)的學習方向 ?
解答
- 短期如果是面向面試學習的話,我認為一方面你需要準備面試,可以看一下掘金那本面試相關的小冊,查漏補缺。
- 一方面需要好好地對你現(xiàn)有的工作總結,即使看上去技術含量不太高的工作,是不是也會有一些亮點,讓面試官看到你對工作的思考。
- 長期的話,如果想讓自己的天花板變高,還是需要學習計算機的一些基礎知識的。
- 工作中如果遇到了相關知識不明白的,就認真去學習,直到弄明白為止。
問題
我大學也是 .net 方向,現(xiàn)在大三,已經(jīng)轉向前端,基礎知識已了解,準備學習 vue。我現(xiàn)在有些焦慮,即將秋招,可是我還沒有拿的出手的項目,怎么辦啊 ?求解。
解答
- 校招主要看重的是候選人的基礎和潛力,如果有實習經(jīng)驗更佳。
- 建議你這段時間就認真?zhèn)鋺?zhàn)秋招吧,先把基礎好好學習,除了前端知識外,數(shù)據(jù)結構算法也是考點,刷刷題吧。
- 至于項目的話,如果你有時間能高仿個 xx,并在掘金上發(fā)布文章 ,也可能是一個亮點吧。
- 去年有個同學就通過這個方式獲得滴滴的面試,不過可惜基礎略薄弱。所以重點還是先搞基礎吧~
問題
我參加了滴滴的校招,但遺憾面試沒有通過,后來我去了一個創(chuàng)業(yè)公司到現(xiàn)在也快一年了,負責開發(fā)公司的 webapp( Cordova + vue )和官網(wǎng),node 和 mysql 對于正常的開發(fā)都能熟練使用,后臺接口和前后端聯(lián)調也要我負責,但是我非常想去大廠和優(yōu)秀的人在一起,提升自己,不過我投過幾家大廠要求 1 到 3 年經(jīng)驗卻沒有任何消息,所以我現(xiàn)在對于未來有點迷茫了,因為我真的真的想去大廠,現(xiàn)在的我該怎么辦,是不是我太急躁了 ?
解答
- 不用太急,你也只工作一年而已,這個過程你可以提升的東西有很多,先多做業(yè)務,提升技術。
- 等 2-3 年后,再嘗試去投大廠,但你的簡歷一定要有亮點,并且基礎足夠扎實,相信以后機會還是會有很多的,加油~
問題
現(xiàn)在多端統(tǒng)一開發(fā)框架這么多,有沒有學習的建議 ?
解答
- 首先思考一下你的業(yè)務是否需要多端框架,比如 App、h5 和小程序需要一樣的設計嗎,答案是很多情況下是不一樣的,從產(chǎn)品設計上來說,App 通常是最完善的功能,h5 保留主要功能,而小程序多半是一個快速入口。
- 其次目前多端框架多半不成熟,如果是核心業(yè)務,務必謹慎使用,很多情況下,大公司也會在一些偏運營展示的簡單業(yè)務中使用這類多端框架。
- 最后,一定要做技術選型,那么就從技術棧、框架維護力度,以及社區(qū)的活躍度幾個方向權衡吧。
問題
黃老師,請問應該怎么培養(yǎng)自己的架構思維呢 ?
解答
- 這個需要長期的經(jīng)驗積累的,說幾個關鍵詞吧,借鑒、思考、總結,交流。
- 借鑒是站在巨人的肩膀上,比如可以學習張云龍大佬的博客: https://github.com/fouber/blog
- 思考是多去想我怎么設計才是最合理,能否解決當前業(yè)務的痛點,如何做到開發(fā)時對開發(fā)者友好,上線時對用戶友好。
- 總結就是每次經(jīng)驗用文字記錄下來,積累和沉淀。這個時候也可以多思考思考,有沒有哪些地方是不合理的,有沒有更好的方案。
- 交流就是把一些案例分享出去,和大家一起探討和交流,碰撞一些不一樣的思維火花。
問題
前端的職業(yè)發(fā)展,怎么建立良好的知識體系呢 ?
解答
- 深度優(yōu)先,不忘發(fā)展廣度,前端相關的知識體系可參考樸靈大佬這幅圖:https://github.com/JacksonTian/fks。
- 當然,這幅圖只是一個參考,你的知識體系還是要通過工作建立起來的,所以要以你的工作為準,深入學習周邊的工具鏈技術,學習過程中要多思考,勤總結,對于每個知識點,最好是能學精學透,切忌囫圇吞棗。
- 對于些熱門的技術,不要盲目追新,如果工作用不到,除非很感興趣,否則了解關注即可。
問題
老師好,我是一名工作一年的前端菜鳥,目前,有點迷茫,不知道以后自己的生涯規(guī)劃朝那個方向發(fā)展,橫行還是縱向,求教 ?
解答
- 對于初入行我的建議都是多做業(yè)務,多提升技術,等到 2-3 年,再考慮之后的發(fā)展方向。
- 關于職業(yè)生涯規(guī)劃,我下面有回答喔。
問題
黃老,這幾年的前端趨勢是 mvvm、組件化、工程化以及 typescript,您覺得接下來的近幾年前端會向哪個方向重點發(fā)展呢 ?目前前端部分還有什么痛點需要解決呢 ?期待您的解答,感謝!
解答
- 前端往深入做通常是幾個方向,復雜應用(比如 web doc 這種規(guī)模的)、數(shù)據(jù)可視化(2D、3D)、前端工程化、架構。
- 痛點如目前非常火的多端框架,本身是值得探索的一個方向,但是由于各個端的標準和實現(xiàn)不一致,導致目前的狀態(tài)是調試困難,坑多。
- 另外,感興趣的話也可以把視野放更廣一些,比如可以關注 AI,入門機器學習等等。
問題
你以前剛接觸 web 前端時,每天看幾本書 ?通過啥方式提升 ?
解答
- 我看的前端書并不多,也遠達不到一天幾本,經(jīng)典的紅寶書和犀牛書我有反復的看過,前期基本就是一個編碼 - 看書 - 編碼 - 看書的節(jié)奏。
- 另外,我也比較推薦看一下廣度相關的書籍,比如《http 權威指南》、《精通正則表達式》、《Head First 設計模式》《代碼整潔之道》 等。
問題
大佬,請問下公司就我一個前端,沒有經(jīng)驗比較豐富的人可以交流學習,依靠自己學習可以從初級進階到中級前端工程師嗎 ?
解答
- 現(xiàn)在學習資源比之前豐富太多了,除了看一些經(jīng)典書籍,還有一些很不錯的教學視頻可以去學習,講師很多也是一線互聯(lián)網(wǎng)公司的大佬,投資自己總不會錯的。
- 也可以適當參加一些技術會議,認識一些人。
- 另外,對于在小公司如何做技術提升,可以參考我下面的一些回答。
- 當然,當你能力提升到一定水平后,能進大公司就去大公司。大公司相對來說,業(yè)務挑戰(zhàn)更大,也更加規(guī)范,是一個非常不錯的鍍金機會。
問題
老師怎么看待未來桌面應用,例如 electron 的發(fā)展前景 ?
解答
- electron 讓前端工程師開發(fā)桌面應用更加容易,但它本身還是桌面應用,需要安裝,大部分企業(yè)還是會更傾向于 web 的方式吧。
- 另外,我覺得 PWA 可以多關注喔。
問題
大佬,天天加班嚴重,忙于業(yè)務,還是基于老的框架,如何能提升自身 ?感覺很困惑 。
解答
- 首先需要提升自己的開發(fā)效率,思考一下能不能抽象一些通用的模塊和組件等,開發(fā)過程中有沒有痛點,有沒有能通過工具而不用人解決的問題,如果你能發(fā)現(xiàn)一些問題并通過技術手段解決,那么已經(jīng)是一個提升了。
- 其次,老的框架是否需要升級,如需要,如何平滑升級,如何做到升級對現(xiàn)有業(yè)務影響最小,如果影響很大,思考一下現(xiàn)有項目的組織方式是否合理。如果把上面這些問題都想清楚,并解決,也是一個提升了。
- 再次,我每天做的業(yè)務,接觸到的一些工具鏈和技術棧,我是否已經(jīng)對它們的原理深入掌握了,出現(xiàn) Bug 和坑我能否快速定位和解決,如果現(xiàn)有輪子不能滿足需求的時候,我能不能快速造一個出來,做了這些又是一個提升。
- 最后,如果覺得公司對技術重視程度不夠,也可以考慮換一個坑。
問題
前端的架構師一般都做些什么呢 ?
解答
- 主要是分析當前業(yè)務的痛點和目標,結合場景去提出一套合理的解決方案。
- 其中涉及到編碼的部分包括不限于編寫一些工具插件、腳手架、甚至是框架。
- 前端架構是沒有銀彈的,不同場景的架構方案也往往是不同的。
2. 性能優(yōu)化
問題
性能優(yōu)化有什么推薦的書嗎?
解答
- 《高性能網(wǎng)站建設進階指南》
3. Vue.js
問題
你好,老師,前端使用 vue 技術棧的,有哪些提升開發(fā)效率的經(jīng)驗 ?
解答
- 對 Vue.js 熟練掌握,可以方便你快速開發(fā)。
- 深入了解 Vue.js 的原理,對于快速定位 bug,了解它的職責邊界有很大幫助。
- 另外,盡量使用第三方成熟庫,避免重復造輪子。
問題
培訓結束一年,三大框架只了解 vue,目前準備跳槽,但是覺得自己 js 基礎也不扎實,vue 也沒有特別的熟練,react 更是完全都不了解,想問下接下來的學習路徑大概是什么 ?
解答
- 查漏補缺吧,知道自己什么不足,就花時間去學習。
- Vue.js 技術棧方向的可以考慮去學習我的課程,不過會有一定難度,也是需要你花時間和耐心去學的。
- 另外就是在工作中學習和成長了,如果是一年經(jīng)驗,還是多做業(yè)務,在業(yè)務中多思考和總結,使用 Vue 就先把 Vue 用熟,接下來研究其原理實現(xiàn),學透。
- 之后有需要再學 React、Angular 都比較容易了。
- 總之前期還是先讓自己成為一名熟練工,之后再去做一些有挑戰(zhàn)的事情。
問題
黃軼老師,vue.js 源碼都跟著您學完了,另外還學過 ts,網(wǎng)絡,基礎的構建,接下來如果像往前端繼續(xù)深造應該學什么呢,深入算法還是可以看看 webpack 源碼 ?謝謝。
解答
- 通常都是結合你工作中使用到的一些工具鏈,做深入的學習和研究。
- 另外,你已經(jīng)學習了這么多東西,可以嘗試一下學以致用,比如用 ts 重構一些項目,給一些基礎庫和組件編寫測試等等。
- 學習了 Vue 源碼,可以嘗試去編寫一些自定義指令、插件等,或者是去研究社區(qū) Vue 相關生態(tài)工具,做進一步研究和學習。
問題
Vue 應該如何進階和提升呢 ? 總感覺自己處在一個業(yè)務仔的技術水平。
解答
- 做復雜的應用,思考不同場景在 Vue 下如何解決,并搞清楚 Vue 的邊界職責(即 Vue 能做什么,不能做什么)。
- 了解一下周邊生態(tài)工具如 vue-router、vuex 的實現(xiàn)原理,嘗試去寫一些簡單的輪子,比如自定義指令、插件等。
- 閱讀源碼,了解 Vue 的核心原理實現(xiàn)。
- 參與 Vue 或者周邊生態(tài)工具源碼的共建。
- 推薦學習工作中使用的工具鏈的源碼,比如用了 webpack 就看研究一下 webpack,如果能順手寫一兩個 webpack 插件就更好了。
- 另外也可以多看一些經(jīng)典的書籍和一些進階的視頻課程學習。
4. 個人成長
問題
在對未來規(guī)劃的方面老師可否給一些參考性的建議 ?
解答
- 一般建議只做 3 年內的規(guī)劃,你作為一個應屆生,前幾年的目標就是多做業(yè)務,提升技術。
- 關于職業(yè)規(guī)劃,下面有個類似的問題喔。
問題
黃老師,你在滴滴的時候你是你們團隊的第一個人 ,團隊都是你組建起來的嗎 ?可以分享一下組建團隊的時候,你是怎樣考慮自己要選擇的隊員 ,以及如何對他們的工作進行分配和評估的 ?
解答
- 是第一人,不過后來沒有做 leader,有些事情就不便這里說啦。
- 我可以分享一下我后來做 WebApp 前端架構團隊負責人是如何招人的,主要看候選人是不是符合團隊的整體氣質,比如我們團隊是一個愛折騰技術,喜歡分享的團隊,如果候選人在這方面突出,肯定是大大的加分項。
- 工作分配主要是看他們每個人的情況,通常一個人會負責一塊業(yè)務,同時也有相關的技術方向。
- 會把一些基礎的開發(fā)工作分配給應屆生,因為他們是需要大量做業(yè)務的階段,會把一些有挑戰(zhàn)的工作分配給一些有潛力的同學,讓他們快速成長。
- 另外我們團隊還有很優(yōu)秀的同學,會主動承擔和負責一些技術方向,這些我都非常鼓勵的。
問題
小公司沒有什么大公司背景,沒有牛逼的項目,怎么走上前端架構之路 ?
解答
- 首先,你需要能快速響應公司的業(yè)務需求,成為一名熟練工。
- 然后可以思考開發(fā)過程中有沒有什么痛點,能不能通過技術的手段,比如開發(fā)一些工具和插件來提升開發(fā)效率,在這個過程中,你可以去調研業(yè)內有沒有成熟的輪子,輪子能不能滿不滿足你的需求,可以對輪子做研究甚至去做貢獻,這個過程你會接觸到學習到很多不曾接觸到的知識,積累沉淀下來。
- 另外,你也需要多花業(yè)余時間去學習,學習的方向是你工作相關的技術棧,學精學通。
- 等自己有一定能力了,不妨去投簡歷到心儀的大公司,剛提到的這些經(jīng)歷可以成為簡歷的亮點。
- 進入大公司后,你會遇到更多的挑戰(zhàn),業(yè)務規(guī)模、開發(fā)效率、性能、穩(wěn)定性等等都會有更高的要求,在你不斷去面對挑戰(zhàn),解決問題的過程中,你自然就會慢慢成長了。
- 當然,進入大公司后你可能一開始也可能是一顆螺絲釘,但是你自己是可以多花時間,對自己接觸到的工具鏈做研究,主動承擔一些有挑戰(zhàn)的任務,如果你的能力得到了認可,你就會有機會接觸到更多有挑戰(zhàn)的任務。能夠分析出問題的痛點,提出一些適合場景且合理的解決方案,就是前端架構師通常做的事情。
- 我以上說的,會有很多時候都需要跳出自己的舒適圈,并且需要付出更多的時間和努力,勤思考,多總結。所以,想成為前端架構師并不容易,加油吧~
5. 源碼
問題
想請教一下大神在最初學習源碼,組織開源時如何入門的,同時學習源碼對于工作變現(xiàn)是不是有必然的聯(lián)系,如何把控 ?
解答
- 拿 Vue.js 為例吧,最初是興趣驅動,好奇,后來是寫文章,需要深入研究,再之后就是工作中陸陸續(xù)續(xù)地看,然后錄源碼課程前系統(tǒng)地看了好幾遍。
- 看源碼的好處在于可以提升自己的內功,工作中遇到 bug 能快速定位和解決,充分了解它的職責邊界等,另外現(xiàn)在面試似乎都喜歡問原理實現(xiàn),熟悉源碼肯定是一個加分項咯。
問題
框架熟悉哪幾個比較合適呢 ?
解答
- 通常優(yōu)先精通工作中使用的框架,其它的了解即可。因為框架很多設計思想都是相通的,一旦精通一門,之后想學習其他框架非常容易。
問題
人到 30 ,該如何規(guī)劃未來 5 年的時間 ?
解答
- 職業(yè)規(guī)劃我下面有回答,我個人認為這個時間還是應該做技術、寫代碼的時間。
問題
你認為如何做職業(yè)生涯規(guī)劃呢 ?從前前端幾年了,感覺處于瓶頸期,目前比較迷茫,目標不明確。
解答
- 通常做技術往上 2 條路。
- 1 :純技術路線:架構師技術專家
- 2 :技術+管理路線。
- 先找準你的方向,如果對技術感興趣,建議走 1 路線,否則就走 2。
- 對于管理,我不是很擅長,我的經(jīng)驗就是首先你自己的技術要過硬,讓底下人認可你,其次就是思考怎么發(fā)揮團隊的最大價值,為團隊小伙伴謀福利,關注他們的成長等。
- 但是無論哪條路線,你的技術一定要好,而且我是不太建議工作個 5,6 年就轉純管理,時間太短,即使做了也不要落下技術。
- 所以你目前還是需要精進技術,突破瓶頸通過就需要跳出舒適圈,解決一些需要你跳一下才能搞定的問題,最好是能找到你目前工作中的一些痛點,通過技術的手段去解決。
- 我看你在字節(jié)跳動,也可以關注一下其他團隊做的事情。
- 我知道頭條有一個非常牛逼的大佬-張袁煒,他是我在百度時期的導師,你也可以找他交流下。
6. 最后
以上問題及回答全部來自: 我是開源庫 better-scroll 的作者 -- 黃軼,你有什么問題要問我 ?
以上問題及回答,對筆者很有幫助,相信以上回答對前端開發(fā)者也會有很大的啟發(fā),能解決很多人的迷茫,所以整理成了這篇文章。
歡迎關注公眾號: 全棧修煉,每周至少更新兩篇高質量前端文章,為你保駕護航 !