前端工程師的成長與團隊合作

#Vue.js #五倍學院
王泉富
學員分享
前端工程師的成長與團隊合作

學習 Vue 的動機

2022 年,因為工作因素開始寫 Vue.js,當時所有的程式都是接受前人留下來 Vue2 專案,由於是小公司,前端工程師只有我一個...

眾所皆知的,在前端御三家的 Angular 、 React 、 Vue 之中, Vue 擁有新手友善、門檻較低的優勢。此外,Vue.js 框架的開發者-尤雨溪大大,本身就是中文的使用者,所以 Vue.js 的官網本身就有官方的中文版文件,這也大大降低因為語言因素的學習門檻。

當初憑藉著 Vue 框架本身的優勢,在讀了一下官方文件之後,就開始著手開發,也確實需求來的時候還有辦法改得動,功能也都有辦法按時交差,只是開發過程一直有一個芥蒂存在...

那段時間大概是 Vue2 到 Vue3 的過渡期,而公司還在使用 Vue2 的舊寫法,雖然說 Vue2 的語法在習慣後已經很很得心應手,心裡卻也明白學習 Vue3 、使用 Vue3 是早晚都該做的事,撇開那個簡潔的 Composition 還有 script-setup 語法糖不說,在開發上若遇到問題需要查相關資料,由於支援度的問題,絕大多數的解法都開始只會紀錄 Vue3 的語法,而不會特別提及 Vue2 的解法,這同時說明整個 Vue 生態圈中,Vue3 的開發體感一定會越來越好,Vue2 則是越來越差。

但同時要自己研究 Vue2 與 Vue3 的差異、進行版本升級,又要顧及手上的需求,只有我一個人的狀況,實在是沒那麼多時間應付,在這個狀況下,得知 Vue.tw 社團創辦人 Kuro 在五倍學院開課,課程主題就是【Vue.js 3.x 與 Pinia 前端開發實戰

抱持著要找老師就要找最好的老師的心態,毅然決然報名這堂課!

課程結束,收穫更多

雖然距離課程結束已經一年多,現在回想起來依舊覺得這三堂課的時光很快樂。在學習的角度上,我很喜歡把自己當作「什麼都不會的白紙」,有任何「以為自己知道但好像又不確定」的問題都會拋給老師解答,也確實因為這樣的心態,在課堂上從 Kuro 身上獲得很多對於觀念上不同的見解。

以 Vue 框架來舉例的話,methods 、 computed 、 watch 這三個很像但又不太一樣的東西,使用的時機大概是初學者最常搞混的東西,課程中會帶有大量的例子來解釋這些觀念,同時也會帶一些使用的技巧。
舉例來說,在課堂上學到 computed 計算出來的結果,可以丟給另一個 computed 去執行,使得資料可以變得更乾淨,這是上課前從沒想過的用法,見到 Kuro 示範這個寫法,在那堂課結束後,馬上把公司專案一些奇怪的寫法改掉,一整個渾身舒暢 XD

在課程中,Kuro 常常會帶同學去思考,即便已經把某個課間練習做好,Kuro 也會再接再厲詢問有沒有其他寫法?而通常聽到他這樣問,就表示他心中有個更好的寫法,身為涉世未深的我每次看到他的解法,眼睛總是會為之一亮。

始終覺得 Kuro 是一個少數認識很溫柔的老師

當某個主題講解完,卻還是聽不懂的時候,請 Kuro 再說一次、再說兩次、再說第三次,從沒看過他表現出不耐煩的態度,無論是無法理解這個例子,或是更基礎的觀念不足,他總是會想盡辦法了解學生不理解的關鍵點,並且講解到同學解決心中疑問為止,雖然是 Vue.js 的課程,Kuro 不會少提基礎觀念的事情。

「雖然我們現在上的是 Vue ,不過說到底都是 JavaScript,有些核心觀念我希望你們一定要知道,這些觀念不管你之後要寫 Vue 、 React 甚至是 Angular 都不會變的」

十分贊同 Kuro 說的這段話。

不小心就跟隨了 Kuro 的腳步

在課程結束之後,得知 Kuro 公司徵才,面試之後,很榮幸能跟 Vue 大神 Kuro 共事

脫離了單打獨鬥的工程師生活,同時也代表著我正式從前端新手村畢業。

這個環境有許多熱愛前端的同好,在團隊中參與開發,就表示程式十分在乎「可維護性」,最基本的原則是自己寫出來的程式,隔壁同事能不能看懂。為此,Code Review 基本上是家常便飯,寫出來的程式需要跟同事互相 Review ,確保對於後續維護不會成為某個未爆彈。

好的程式碼就像寫給接手者的一封情書

除此之外,Kuro 偶爾會丟一些他 Code Reivew 過後的程式碼片段到群組中,讓大家去思考這個片段「有什麼問題?」、「有沒有更好的寫法?」
聽起來好像是在大型公審大會,不過事實上沒人會在意是誰寫出了糟糕的程式碼,同事們更感興趣的是這個集體思考解法的過程,因為過程中一定會去聽到有別於自己思考瓶頸的作法,對於工程師來說是不可或缺的養分來源。

有沒有覺得這段好像在哪看過?沒錯,就是 Kuro 上課會帶同學一起做的事情!

Kuro 在課堂中鼓勵同學思考,在工作場合當然也是這樣,畢竟工程師就是一個拿思考當飯碗的生物

再不思考真的會被 AI 取代

程式只是工具

這篇文章主題應該是「使用 Vue 開發的工作心得」,結果寫到最後好像都在講團隊開發 XD 其實仔細想想還是有幾分道理,畢竟提到「工作心得」,團隊開發的方式往往會比使用的技術還要重要。

我們在新手時期學習過程總是抓著某個技術不放,好像得到技術得天下一樣,不過實際在工作場合,技術只是工作的基本門檻,重要的是我們該怎麼善用這些技術達成工作需求,以及是否能做到前文持續提及的「好維護」?

如果現在問我工程師的工作心得,在腦中第一個浮現的想法絕對不會是「使用程式語言的心情」,而是整體的開發流程體驗,因為這才是每天都在面對的事情。

每個階段會出現的開發工具,都是為了解決那個時空環境下所面對的問題。
每個階段會被淘汰的工具,也是因為他已經完成了他的階段性任務 (再見了 IE)

或許在未來的某一天,前端三大框架會逐漸被淘汰(雖然目前看起來應該很難 XD)。

我想,到時候唯一不會變的是,我們會不斷的去探索遇到的問題,並且想辦法解決這些問題。

畢竟,這就是工程師的價值所在。

泉富 202406