JSDC2021活動心得

tags: jsdc2021

前言

一年一度的JSDC活動又開始啦,去年收尾的Typescript辯論我還歷歷在目,今年在Alpha camp的贊助下再次參與了這個盛會,首先給不知道這個活動的朋友看一下活動官網的介紹

JavaScript 開發者年會 (JavaScript Developer Conference Taiwan,簡稱 JSDC.tw) 是臺灣第一個以 JavaScript 開發者為中心的研討會,也是臺灣最大的 JavaScript 年度性技術研討會,旨在提供臺灣 JavaScript 技術人才與世界最新 JavaScript 相關技術討論與分享。

目前也邁向第10個年頭的山峰,相較於去年我是覺得今年在主題上更加的多元有趣,可以充分感受到主辦單位的用心,合作的企業也越來越多! 過程中其實蠻開眼界的,透過一些資深工程師以及不同領域的人才分享,知曉了許多自己還沒有踏入的範疇,想想就很讓人興奮! 很希望這樣的活動未來能舉辦下去,這篇文章則會簡單的介紹這次的活動摘要以及一些我個人的心得,技術面的細節其實我並不打算著墨太多,重點會放在我對整場活動的一些心得,以下讓我們快速的回顧一下這次的活動吧!

活動議程與摘要

上午場主要分成兩大部分,跨平台整合以及區塊練應用(這部分我個人是衝著React18 &區塊練應用來的😉),這個區塊我會簡單總結一下每個講座表達的重點或是我一些個人的紀錄,而由於這次的活動行程也是很滿,摘要的部分我就會比較簡述一些,詳細的心得會在下一個區塊補上。

跨平台整合

  • Session 1 The Future of React: 18 and Beyond

由C.T. Lin帶來React未來的發展,由目前開發的一些現況起頭,講述從過去的16、17版便開始鋪陳的Suspense概念如何在18開花結果,並解釋其可能帶給未來React開發者的好處,以及一些我們可以期待的未來。

  • Session 2 It’s a good idea to learn JS from LINE Bot

Wolke從為什麼JS是個適合初學者學習的語言開始,慢慢的帶到講解為什麼你可以透過利用JS開發Line bot去取代app的開發。

  • Session 3 從 React Native 跨屏開始的多領域開發歷程

Sam分享了自己從React Native開始的一些開發歷程,包含技術選用與不同開發流程的嘗試等細節,提供了非常多他自己應用在實務上的一些想法,例如適合別人的不見得適合你、不要替問題做太多的假設等等,相當全面的分享。

  • 多人座談會【#跨平台整合 – JavaScript 無所不在】座談

上述的三位講者分享了自己在JavaScript領域中的各種應用,並討論了一些實務開發上的建議,技術一直在變,持續的進步而不被過往綁住是個基本準則。

區塊鏈應用

  • Session 1 從 0 到 1 開發加密貨幣錢包 App (使用 React Native)

Anderson帶我們看了加密貨幣錢包的基本概念以及在開發上的一些實作原理,包含像是地址的產生以及如何取得鏈上的狀態與交易資訊等細節,同時帶出可能會遇到的一些問題。

  • Session 2 如何使用 web3.js 跟區塊鏈智能合約互動與進行資安審計

Ting Ting則是直接以一個現場的live demo貫穿了整個分享,利用wbe3.js一步步從創建帳號、發出交易到最終看到收據,分享的最後則以測試與資安審查做了收尾,讓我們更明白底層大致上是怎麼運作的。

  • Session 3 前端工程師也能搞得懂的區塊鏈

Lucien很詳細的介紹了區塊練的基本概念,同時利用完整的圖表在眾多區塊鏈中聚焦今天的主題,一步步的講解了其中幾個重要的概念後帶出了前端工程師在區塊鏈中會扮演什麼樣的角色,最終帶出了現在區塊鏈上常見的應用。

  • Session 4 JS在生成式、演算藝術與NFT的應用

哲宇則從自己的藝術背景出發,講解了JS在生成式藝術以及互動常用的工具,並給了相當精彩的demo讓我們更了解使用工具的重要,同時用了許多不同的例子讓我們看到了JS在這類領域的應用現況。

中間銜接的地方則是另一場講座

  • 多人座談會【參與 #技術社群 教會你的事】座談

中場的講座則將主題放在社群的參與上,講者們彼此分享了參與社群的收穫、心得以及東西方社群間的差異,看到這麼多人願意無私的奉獻更增進了社群的活力。

下午場同樣也分為兩大部分,前端開發與框架以及語言特性與後端技術,同時下半場的幾個講座也是最吸引我的環節,尤其是SSR的部分。

前端開發與框架

  • Session 1 窮途末路的 SPA,堅持 CSR 到放棄

KK首先說明了目前常見的SPA/CSR/SSR間有什麼差異,並帶出SPA的優點以及目前遇到的瓶頸,詳細講述了自己嘗試的過程並最終放棄的理由,最後帶到選用不同渲染策略應該要有的考量。

  • Session 2 為什麼許多公司都願意導入 Next.js

Leo 用很淺顯易懂的方式說明了Next.js的幾個重點,很好的說明Next究竟解決了那些React沒解決的問題,同時進一步的解析它目前有的其它優勢以及不足之處,將問題丟回給了聽眾自己,讓我們詢問自己是否真的需要導入這樣的框架。

  • Session 3 選擇 Svelte 的三個理由

Kalan將重點放在Svelte這個新興的熱門框架,淺談了目前框架間的戰國情況以及為什麼會選擇Svelte的核心理由,帶出眾多優點之餘也不忘了提了一下目前國內外社群對於Svelte的現況,期許更多人進來嘗試。

  • 多人座談會【後框架時代對前端開發者的影響】座談

多人的會談則根據目前的框架戰國時代有了進一步的討論,其中帶出了技術的抉擇還是回歸到商業的需求這樣的重點,不要一昧的追求流行而是應該好好審視自己專案的現況究竟需要什麼。

語言特性與後端技術

這部分因為議程方面的調動,實際上的順序並不是以下這樣的,但為了方便整理我還是先照官方的議程去寫每個部分的摘要。

  • Session 1 在你的庭院種一棵Elm

Paipo則介紹了Elm這個程式語言,說來也巧,我最近的分享也剛好有提到這玩意😁 Paipo用一個很棒的demo(一個typescript在開發時經常遇上的情況)來一步步解釋目前遇到的限制以及為什麼Elm在這樣的情況下會是更好的選擇。

  • Session 2 JavaScript 模組進化論 – 模組化的演進與實戰

Mujin(這名字一直讓我想到很久以前閃電狼的打野)介紹了模組化的基本概念,從為什麼JavaScript需要模組慢慢帶到一些現代的模組系統規範,像是commonJs、AMD & UMD等,最後探討了現行最常用的ESM模組規範以及為什麼它會是最適合瀏覽器的規範。

  • Session 3 從前端邁向全端 – 前端開發者不該錯過的 Serverless 技術

Kyle Mo 從前端工程師的角度出發,先介紹了前端在開發模式上的演進,緊接著則是帶入前端邁向全端的困難點,最終介紹了什麼是Serverless以及為什麼前端工程師也需要發展後端的技能樹,開頭的那句業界傳言: 「通常自稱全端的都很廢」真是讓人看了會心一笑😂 這張圖我一定要分享一下。

前端vs後端
  • Session 4 Memory Leak 與你的距離

Kuan詳細的帶我們走了一趟拜訪Memory Leak的旅途,將核心放在我們要如何避免這玩意的出現,過程中介紹了基本的概念以及工具的使用,同時也探討了一些更進階的記憶體概念並順帶推坑Rust(笑),最後用了一個看似沒什麼問題的範例作為demo收尾(node inspect + k6 for stress test),印象確實挺深刻的。

  • 多人座談會【回歸 JavaScript 本質與初心】座談

這部分的多人座談則是討論了JavaScript本身的魅力以及一些特性,同時一些常見的其它語言做了一些基本的比較,高支援度讓JavaScript的開發者有著以往沒有辦法想像的力量,但同時還是要注意你究竟要解決什麼問題再去選用你要的語言/工具。

最後則是以另一場講座進行收尾

  • 多人座談會【資深開發者的下一步?】座談

這場座談探討的範圍就已經超出單純技術的範疇,著重在資深開發者可選擇的方向以及一些你在實務上不得不面對的惱人問題,幾位講者甚至分享了自己在實務上遇到的一些現況以及處理方式,同時有帶出國內外團隊的一些明顯差異。

活動心得

即便只是摘要也佔了不少的篇幅,相信沒參加的你也能想像整個行程有多密集,雖然活動都還是聚焦於javascript,但卻能看到非常多的面向。從前端開發、後端技術等技術面向一直延伸到職涯發展等面向,以一天的活動來說真的是相當的充實。

我今年的主要目標是專注在React、SSR以及區塊鏈相關的議題,這三個是我在近期個人或工作上接觸最頻繁的面向,從這些議題講者們的分享大大的滿足我參加的主要動機,我實在等不及React18的推出以及它對SSR造成的影響了,不過其它議題的講座卻也讓我有了很多預期外的收穫。

有趣的是,雖然我是為了技術面而來,但在許多場次都在不經意提到技術外的許多要點,像是個人的mind-set(我對於那句不要限制自己是前端工程師印象極為深刻)、釐清問題的核心以及在學習或使用工具該有的心態等,確實都讓我自己有了很多的反思。過去作為一個菜鳥(當然,現在也還是年資不滿一年的菜鳥),我要考量的層面非常的淺,交付下來的工作雖能完成,但我能再進一步優化的地方仍僅止於表層,以SSR為例,我雖然近期在協助專案的轉型,在主管的引導下選用了Next.js作為我們的解法,但過程中我並沒有去思考有沒有在此之上的方案,Next.js無疑是個優秀的全端框架,但這真的是最適合解決我們專案面臨的問題嗎? 一個簡單的pre-rendering配合nginx會不會就足夠了? 很多時候我太被工具或一些既定的框架限制了自己的思考,沉迷於工具華麗的外表而放棄追求進一步的解答確實蠻致命的,尤其在現在的戰國時代中,選用適合的工具、方法變成每個工程師需要捫心自問的,主流的東西並不一定適合你的情況,要不斷的反思自己到底要解決什麼樣的問題

當然,工具的使用固然重要,不過要能揮舞各式武器的前提還是基於紮實的基本功,尤其身為轉職者的我們,要學、補足的東西更是有如繁星。這個領域非常的有意思,總是有層出不窮的新玩意,多多踏出自己的舒適圈去認識自己的不足,永遠都不要停止前進,保持自己的初心繼續往下走,這次的活動又再次讓我了解到我還有非常多的地方需要努力,以下幾點是我對活動中技術外面向的總結,共勉之,期許看到這文章的各位都能在這個領域中取得自己想要的成果。

  • 停止畫地自限,保有初心、不斷自我精進,勇敢踏出舒適圈去接觸不同的面向
  • 不要對問題做太多的假設與限制,試著去找出真正的問題並選用適合的工具
  • 認真工作之餘仍要做好與生活的平衡,你才有成長的空間

結語

緊湊的一整天活動就這樣結束了,雖然每個講者分享的時間有限,但過程中確實有著相當多的收穫,像這樣投入社群可以看到更多的面向,不管是技術面還是一些更實務的考量都是窩在自己小圈圈難以觸及的部分,同時看到許多一同參與的人也能感受到一股熱情,對我來說真的是相當有效的充電方式! 吸收新知之餘也期許自己能繼續成長,用自己所學的東西盡可能的回饋這個龐大的社群,打造一個正向的循環讓大家都更加進步、更快速的達成自己的目標! 再次感謝JSDC的籌備組給我們帶來這樣的活動,我想我們就明年盛會再見囉!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s