Web Conf 2024 心得與回顧
2024 WebConf
第二次 參加 Web Conf ,這次的議程一樣精彩豐富,甚至有幾個議程同時排在一起讓我一時難以抉擇。兩天的聽完的心得大致上是覺得有些收穫的,對於技術迭代的知識焦慮倒是還好,因為平常就有在看這些東西,所以這次議程有些內容對我來說也算是複習,當然也還是有得到一些新的知識與觀點。
回顧
以下就我有聽的議程且較有印象的內容做一個回顧:
1. 有限狀態機與 RxJS - 奶綠茶
有限狀態機與 RxJS 這兩個題目剛好我都不熟。 在前端的開發中很常會需要實作狀態的管理,在這個議程中講者用紅綠燈的案例很清楚的說明了什麼是有限狀態機。
有限狀態機(Finite State Machine, FSM)包括以下幾個特色:
- 同一時間點,只會出存在一種狀態
- 有限數量的狀態 state
- 有限數量的事件 event 一定在時間內轉換到下一個狀態
- 一個 initial state
- 一個轉換的函式,傳入當下事件跟狀態去轉換狀態
- n 個 final state
就紅綠燈來說基本上同時間只會有一個狀態,綠、黃、紅,而且燈號的轉換事件數量是有限的且有規則可循的。
使用有限狀態機的目的就是用來收斂需求的規格,讓狀態結構更加清晰,提升可維護性,而且使用現成的有限狀態機 library xstate可以讓狀態圖易於視覺化,有助於工程師與設計師理解整個邏輯流程。
RxJS 則是一個基於 functional programming 精神設計的 library,透過 Observable 來處理複雜的非同步事件流,可以將多個運算符組合再一起,讓程式碼更加簡潔,也更容易閱讀。
適合用來實作拖拉的功能,例如:拖拉的過程中會有 mousemove 事件,這個事件會不斷觸發,透過 RxJS 可以很容易的處理這個事件流,並且可以透過運算符來過濾掉不必要的事件。
稍微看了一下 RxJS 文件,看起來要使用需要花一點時間學習,感覺有點複雜。對了,除了技術上的知識,講者有提到建議大家去閱讀熱門開源專案的程式碼。
2. 個人專案到產品:善用 AI 工具打造可盈利產品 - 王鵬傑 PJ Wang
這場是 Explian this 的作者,我很常閱讀他們家的文章,甚至曾有想付費訂閱,但是覺得要讀的東西太多,感覺負荷不了就作罷。講者分享他們怎麼去選擇 side project 的題目,還有打造產品的流程與思路。
product hunt 是個適合參考選題的地方。
雖然我沒有要做 side project 的打算,但是整場我必須說最有共鳴的應該是寫 side project 還是要找價值觀跟個性接近的同伴一起,當然不只是寫 side project ,很多時候都是。
3. 如何撰寫具彈性的測試程式 - Summer
這場內容本身很棒,但是這些內容已經有在他的書裡面寫過,我也剛好讀過了...。
4. 十年回首:React 的過去、現在與未來發展 - Zet
這場我覺得有點可惜的是前面講者花了太多時間在描述 React 的渲染策略,這些他的書裡面都有,我也讀過了:《React 思維進化》讀書筆記 。
最有收穫的部分是 React Fiber 底層架構,由於多任務處理能力的需求增加:CPU、data data fetch,在改成 React Fiber 之前,React component 在 render 階段會產生的一個遞迴 stack 的 virtual dom tree,這個過程是不可中斷的,又 Javascript 是單執行緒的,所以當 React component 在 render 階段遇到一個很大的 component 就會佔用瀏覽器的 main thread,這樣就會造成瀏覽器的畫面卡住。
在有了 React Fiber 之後,React component 在 render 階段改成使用 Linked list 代替一般的樹狀結構的儲存畫面結構,而且可以透過 scheduler 機制去調度產生畫面的流程。
至於 Server Components 的部分,因為一直沒有機會實作,所以對於這個部分的內容還是有點模糊,這就留到以後有時間再來研究吧。
後面談到了一些今年發表的 React 19 和 React Compiler 的部分,剛好今年 react conf 我剛好有看完,所以焦慮感沒那麼重 XD ,react conf 的內容很精彩關於新的特性講了非常多細節,這邊就不多贅述了。
5. 《天下》如何思考數位敘事?從流程到技術大公開 - 李郁欣/楊時鈞 Steven Yeo
這場主要是分享天下雜誌他們家的前端怎麼應用 blender 3d 建模將圖資結合新聞敘述打造一篇數位的專題報導,他們的專題報導是真的蠻炫砲的,完全是跟我不同的前端領域,聽完我就在想這樣的產生一篇新聞的成本好重,可是敘事的手法真的很不錯。
當然除了技術上覺得佩服,還有一個是我覺得厲害的地方,就是需要跟中央的研究單位專家索取適合應用在 3D 建模的資料,那中間的溝通真的很難,通常外部的人不太懂前端技術上需要的資料結構,還必續要花時間去解釋。