Published inDcard Tech Blog·Pinned採用 SWC 取代 Babel,大幅提升編譯速度過去有很長一段時間,前端工具幾乎都是 Webpack、Babel、ESLint、Prettier 等的天下,但隨著這些工具的速度漸漸成為瓶頸為人詬病,原先的優勢已經漸漸的開始消失。 新一代的技術夾帶著更少的技術債、更突破性的技術,甚至使用 JavaScript/TypeScript 以外的語言來實現,例如:ESBuild、Vite、SWC 等都非 …JavaScript7 min readJavaScript7 min read
Published inDcard Tech Blog·PinnedNx vs Turborepo,怎麼在大型 Monorepo 優化開發體驗?隨著前端的程式碼規模在 Dcard 越來越大,其中一個遇到的狀況就是,CI 的執行速度、local 的開發體驗都開始受到影響。 考慮到 monorepo 整體還是利大於弊,而且我們很重視迭代速度,於是決定投入更多來改善這個環節。剛好去年年底 Turborepo 的發佈吸引了我們的目光,就決定來好好分析一下該怎麼改善我們現行的架構與流程。 我們的 Monorepo 為了方便大家 …Nx10 min readNx10 min read
Jun 16, 2022淺談 GraphQL @defer @stream因為 GraphQL Working Group 近期的推動,GraphQL 的 @defer/@stream directive 提案又重新回到了開發者的視野。 目前對應的 RFC 仍為 Stage 1,但已經投入相當大量的規格制定工作與討論,應該蠻有機會持續推進。 GraphQL specification RFC 分成四個階段: - Stage …GraphQL9 min readGraphQL9 min read
Jan 5, 2022初窺 Shopify Hydrogen 框架以及 React Server ComponentsHydrogen 是 Shopify 打造的一個基於 React 的 Framework,可以用來製作客製化的店面網站,其最大的賣點是支援 React Server Components(RSC),這應該算是全球走在最前沿的 RSC 大型實驗。 Hydrogen 依賴在一些蠻知名的套件/技術之上,包括:Vite、GraphQL、React Rout …React9 min readReact9 min read
Nov 19, 2021React 的未來:18 以及在那之後前一陣子在 JSDC 給了「The Future of React: 18 and Beyond」的演講,為了濃縮成適合聽眾的 20 分鐘內容,並適當補充一些需要先備的知識,導致會有相當多內容變成遺珠之憾無法提及,所以決定另外來寫一篇文章記錄一下。 這篇文章將會依序介紹到以下的項目: 先備知識 — Suspense、Hydration 升級成 React …React22 min readReact22 min read
Nov 10, 2021深入淺出 JavaScript 軟體測試 — #3 Test Runner — Jest上一篇介紹了如何自行寫出能執行的測試,不過實際上大部分時候我們都不該這樣做,我們應該使用開源軟體,輕鬆地站在巨人的肩膀上。 後面的 JavaScript 相關測試與我個人的 Best Practices 都會搭配著 Jest 介紹,不過熟知各種不同的 runner 還是有其必要性,畢竟有時候專案用什麼你就得跟著去使用。JavaScript 比較常見的 …JavaScript7 min readJavaScript7 min read
Nov 8, 2021JavaScript 開發者用 napi-rs 初學 Rust為什麼學習 Rust 最近 JavaScript/TypeScript 的生態系有不少專案都底層都轉往使用 Rust 開發,包括像是 Deno、Next.js 最近用來取代 Babel 的 swc 或是 Babel 原作者的新專案 Rome。 這現象並不是說 Rust 要來取代 JavaScript/TypeScript 了,實際上更像是取代原本必須使用 C/C++ 來完成 …JavaScript14 min readJavaScript14 min read
Nov 2, 2021在 2021 可以使用 ESModule 了嗎?隨著今年沒有完整支援 ESModule 的 Node 10 達到 EOL(End-of-life),推行 ESModule 的運動再次興起。其中 JavaScript 領域的知名開發者 Sindre Sorhus 更是吹起了號角,發了許多文章強烈表示他轉向 ESM 的決心: https://github.com/sindresorhus/meta/d …JavaScript10 min readJavaScript10 min read
Oct 28, 2021深入淺出 JavaScript 軟體測試 — #2 測試的原理與細節上一篇介紹了測試時的 Mindset 跟一些好處,這篇要來講講測試的原理,已經比較熟測試的人可以考慮直接跳過這篇,去看之後幾篇針對一些狀況的寫法。 在 JavaScript test runner 這塊,我自己是 Facebook 的 Jest 的忠實擁護者,因為它包含了許多厲害的設計模式,給了充足彈性,是超過 50 個以上套件模組化的成果,包括 …JavaScript6 min readJavaScript6 min read
Oct 26, 2021深入淺出 JavaScript 軟體測試 — #1 撰寫測試的 Mindset最近在回顧一些四五年前寫的測試程式碼,其中有一部分還堪用,有一部分的可維護性跟保護力卻是有點堪憂,自己的階段也從「我不太會寫測試」到「追求極高的測試涵蓋率」再到「撰寫適合專案/產品的測試」,感受頗深。 於是這篇文章就誕生啦。 希望接下來能撥出一些時間,慢慢寫完這系列。這系列應該要包括: 面對測試的正確心態,以及談一些常見迷思 測試的原理與細節 Jest 的 …JavaScript6 min readJavaScript6 min read