技術寫作馬拉松實錄:33 天 87 篇文章的高效創作流程與工具全公開

技術寫作馬拉松實錄:33 天 87 篇文章的高效創作流程與工具全公開

一封來自 ETHGlobal Taipei 的邀請,像是宇宙發出的召喚,引領我踏上一段 33 天的技術寫作馬拉松。這段旅程中,我每日一篇文章,打造黑客松得獎作品 OrbitGO,並用 AI 與自製工具建立起一條高效的知識創作產線。這篇文章,記錄了我如何將靈感化為實作,將持續輸出轉化為職涯突破的能量。

April 18, 2025
使用 viem 獲取使用者 USDC 代幣餘額的技術指南:以 vitalik.eth 為例

使用 viem 獲取使用者 USDC 代幣餘額的技術指南:以 vitalik.eth 為例

在 Web3 開發過程中,檢查用戶的代幣餘額是一項基本而重要的功能。本文將詳細介紹如何使用 viem 這一現代化的以太坊庫來查詢特定地址(包括 ENS 域名)的 USDC 代幣餘額。我們將以知名的以太坊創始人 Vitalik Buterin 的 ENS 域名 vitalik.eth 作為示例,展示完整的實現流程。

April 16, 2025
技術演講神器 Slidev:程式碼高亮、Mermaid 圖表、LaTeX 公式全支援

技術演講神器 Slidev:程式碼高亮、Mermaid 圖表、LaTeX 公式全支援

Slidev 是專為開發者與技術講者打造的開源簡報工具,支援 Markdown 撰寫、Vue 組件擴充、程式碼高亮、Mermaid 圖表與 LaTeX 數學公式,讓你輕鬆製作互動、可客製化的專業技術簡報。

April 16, 2025
Google 表單自動化全攻略:用 Apps Script 提升表單管理效率

Google 表單自動化全攻略:用 Apps Script 提升表單管理效率

在現代數位工作流程中,Google Forms 已成為收集和組織資料的強大工具。透過 Google Apps Script,我們可以程式化地創建、修改和管理 Google Forms,讓整個過程更加自動化和高效。本文將深入探討如何使用 Google Apps Script 創建功能豐富的 Google Form,並連接到 Google Sheets 收集回應。

April 15, 2025
極速通知系統 Notyf:支援 React、Vue 的 JavaScript Toast 解決方案

極速通知系統 Notyf:支援 React、Vue 的 JavaScript Toast 解決方案

Notyf 是一款體積不到 3KB、零依賴的 JavaScript Toast 通知庫,支援 React、Vue 等主流框架,具備高度可定制性與無障礙設計。本文將帶你深入了解 Notyf 的核心特性、安裝方式與實作範例,幫助你在不犧牲效能的前提下,快速打造現代化的通知系統。

April 14, 2025
React 開發者必學!Immer.js 簡化不可變資料處理的最佳利器

React 開發者必學!Immer.js 簡化不可變資料處理的最佳利器

在現代前端開發中,不可變性 (Immutability) 已成為處理狀態的重要範式,尤其是在 React、Redux 等生態系統中。Immer.js 作為一個輕量級的庫,提供了一種優雅的方式來處理 JavaScript 中的不可變狀態,並在 2019 年贏得了 React 開源"年度突破"獎和 JavaScript 開源"最具影響力貢獻"獎。本文將深入探討 Immer.js 的優勢及其在實際開發中的應用。

April 14, 2025
2025 Web3 技術人才全攻略:熱門技能、薪資行情與頂尖公司職缺解析

2025 Web3 技術人才全攻略:熱門技能、薪資行情與頂尖公司職缺解析

這篇文章深入剖析 2025 年 Web3 技術人才的招聘趨勢,透過 10 家頂尖區塊鏈企業的實際職缺資料,全面整理前後端、智能合約、DevOps 等熱門技術技能需求,並解析多鏈開發、錢包整合、安全審計等領域專業能力的重要性,同時強調遠端工作文化下的軟實力需求,為有志投入 Web3 的工程師提供清晰、實用的職涯發展藍圖。

April 13, 2025
前端圖標大統一!Iconify 是如何顛覆 SVG 圖標使用方式?

前端圖標大統一!Iconify 是如何顛覆 SVG 圖標使用方式?

探索 Iconify 如何革新前端圖標使用,提供統一且靈活的圖標管理方式,並了解其在 Vue 專案中的實際應用和優勢。

April 12, 2025
JavaScript 陣列方法深度解析:forEach、map 與 reduce

JavaScript 陣列方法深度解析:forEach、map 與 reduce

JavaScript 作為一門功能強大的程式語言,提供了多種操作陣列的高階函數方法,其中 forEach、map 和 reduce 是最常用且最具表達力的三種方法。這些方法為開發者提供了簡潔、可讀性高的寫法,能夠以宣告式而非命令式的方式處理陣列資料。本文將深入探討這三種方法的原理、使用方式、差異及適用場景,幫助開發者在實際專案中更有效地選擇和使用它們。

April 12, 2025
用 React Email 高效開發電子郵件:前端工程師實戰教學

用 React Email 高效開發電子郵件:前端工程師實戰教學

在現代 Web 應用程式中,電子郵件通訊是連接用戶的核心要素。然而,開發精美且功能性強大的電子郵件一直是開發者面臨的挑戰。React Email 作為一種新興的解決方案,正在改變開發者構建電子郵件的方式。本文將深入探討 React Email 的技術優勢、應用場景以及如何有效地使用它來優化電子郵件開發流程。

April 11, 2025
Astro 實作教學:打造高效滾動進度條的完整範例

Astro 實作教學:打造高效滾動進度條的完整範例

在現代網頁開發中,滾動進度條已成為提升用戶體驗的重要元素,它能直觀地向訪客展示頁面閱讀進度。本文將深入探討如何利用 Astro 框架創建一個高效、輕量級的滾動進度條,並分析其背後的技術原理與優勢。Astro 作為一個專注於性能的現代前端框架,為此類功能實現提供了優秀的開發體驗與執行效率。

April 10, 2025
前端除錯新境界:用 CSS 為 console.log 加上顏色與樣式

前端除錯新境界:用 CSS 為 console.log 加上顏色與樣式

使用 CSS 為 console.log 加上顏色與樣式,讓前端除錯變得更直觀有效。本文介紹如何利用 %c 格式說明符,在 Google Chrome 開發者工具中實現彩色輸出,並提供多種實用範例與應用技巧。

April 9, 2025
Axios 是什麼?一篇搞懂最受歡迎的 JavaScript HTTP 客戶端

Axios 是什麼?一篇搞懂最受歡迎的 JavaScript HTTP 客戶端

想知道 Axios 是什麼?這篇教學將帶你深入了解這個最受歡迎的 JavaScript HTTP 客戶端,從基本用法到錯誤處理、請求攔截、取消請求等進階功能,幫助你有效管理 Web API 串接工作。

April 9, 2025
React 效能瓶頸怎麼辦?用 useMemo 加速你的組件渲染!

React 效能瓶頸怎麼辦?用 useMemo 加速你的組件渲染!

React 組件卡頓、重新渲染太慢?本文深入解析 useMemo 的使用方式與實戰案例,幫你解決效能瓶頸,打造流暢的 React 應用體驗。

April 8, 2025
首戰 Web3 黑客松,用 React 打造 Web3 儀表板,勇奪 1inch 賽道銀獎!

首戰 Web3 黑客松,用 React 打造 Web3 儀表板,勇奪 1inch 賽道銀獎!

第一次參加 Web3 黑客松就獲獎?這篇文章記錄我如何用 React、TypeScript、Tailwind 與 RainbowKit 打造 OrbitGO,36 小時完成一個多鏈資產儀表板的開發心得。

April 8, 2025
Sitemap 是什麼?3 分鐘搞懂如何提升網站 SEO 排名!

Sitemap 是什麼?3 分鐘搞懂如何提升網站 SEO 排名!

Sitemap 是網站技術 SEO 的核心要素,能讓搜尋引擎更有效率地發現並索引您的網站內容。本文將深入探討 XML Sitemap 如何提升您的網站可見度,以及如何透過最佳實踐充分發揮其效益。

April 7, 2025
Decimal.js:JavaScript 中的高精度十進制運算庫

Decimal.js:JavaScript 中的高精度十進制運算庫

Decimal.js 是一個為 JavaScript 和 TypeScript 設計的任意精度十進制運算庫,專為解決 JavaScript 原生數字型別在處理浮點數時所面臨的精度問題。對於需要高精度計算的金融和科學應用來說,這個庫提供了一個強大且可靠的解決方案。

April 7, 2025
重返黑客松:我在 ETHGlobal Taipei 2025 重拾創作熱情的 36 小時

重返黑客松:我在 ETHGlobal Taipei 2025 重拾創作熱情的 36 小時

ETHGlobal Taipei 2025 對我來說,不只是一場黑客松,更像是一場找回創作初心的儀式。這次的參與讓我重新感受到,技術不是為了職位、KPI 或 OKR 而存在,而是為了解決問題、為了讓點子落地、為了再次享受「動手做」的快樂。

April 6, 2025
JSDoc:提升 JavaScript 程式碼品質的文檔工具與 AI 輔助自動生成

JSDoc:提升 JavaScript 程式碼品質的文檔工具與 AI 輔助自動生成

JSDoc 是 JavaScript 生態系統中的強大文檔生成工具,能顯著提升程式碼質量與項目可維護性。本文將深入探討 JSDoc 的優勢,及如何運用 AI 技術自動生成 JSDoc 文檔,使開發流程更加高效。

April 6, 2025
Socket.IO 技術深度解析:優勢與實踐

Socket.IO 技術深度解析:優勢與實踐

Socket.IO 是一個強大的實時通訊庫,為開發者提供了建立低延遲、雙向、事件導向的客戶端與伺服器之間通訊的能力。在現代網頁應用程式中,Socket.IO 已成為實現即時互動的首選解決方案。本文將深入探討 Socket.IO 的核心優勢,並通過實用的代碼示例展示其應用。

April 4, 2025
Wagmi 使用指南:以 React 快速建立高效區塊鏈應用

Wagmi 使用指南:以 React 快速建立高效區塊鏈應用

Wagmi 是一個專為以太坊應用程序設計的 React Hooks 集合,提供開發者所需的一切工具,使區塊鏈前端開發變得簡單高效。通過類型安全、可擴展和模塊化設計,Wagmi 讓開發者能夠專注於構建高性能的區塊鏈前端體驗,而不必擔心底層複雜性。

April 3, 2025
從 JavaScript 轉向 TypeScript 的開發心得分享

從 JavaScript 轉向 TypeScript 的開發心得分享

TypeScript 已成為現代前端與全端開發的主流選擇,越來越多開發者和企業選擇從傳統 JavaScript 轉向 TypeScript。本文將深入分析從 JS 轉向 TS 的主要優勢,並提供實際案例與轉換策略,幫助您判斷是否應該為團隊或個人專案進行這項技術升級。

April 3, 2025
Markdown:現代技術寫作的理想選擇

Markdown:現代技術寫作的理想選擇

Markdown 已成為技術寫作領域的一股強大力量,從開發者到技術文檔編寫者,越來越多專業人士選擇這種輕量級標記語言來創建各種內容。本文將深入探討 Markdown 的諸多優勢,解釋為何它成為技術文章創作的首選工具,並提供實用的示例代碼,幫助您快速入門這一技術寫作利器。

April 3, 2025
Fuse.js:強大的模糊搜尋庫及其技術優勢分析

Fuse.js:強大的模糊搜尋庫及其技術優勢分析

模糊搜尋技術在現代應用程式中扮演著關鍵角色,特別是當需要處理用戶輸入錯誤和提供更智能的搜尋體驗時。Fuse.js 作為一款輕量級且功能強大的 JavaScript 模糊搜尋庫,正逐漸成為前端開發者的首選工具。本文將深入探討 Fuse.js 的核心功能、技術優勢及其實際應用場景。

April 2, 2025
Alpine.js:現代網頁開發的輕量級 JavaScript 框架

Alpine.js:現代網頁開發的輕量級 JavaScript 框架

Alpine.js 是一個小巧但功能強大的 JavaScript 框架,為開發者提供了一種簡單直接的方式來增強網頁互動性。作為前端開發領域的新星,Alpine.js 結合了大型框架的反應式特性與輕量級的實現方式,為開發者帶來了高效且易於使用的解決方案。本文將深入探討 Alpine.js 的特點、優勢及其實際應用案例。

April 2, 2025
Mermaid.js:使用簡單文本定義生成精美圖表的強大工具

Mermaid.js:使用簡單文本定義生成精美圖表的強大工具

Mermaid.js 是一個強大的 JavaScript 庫,允許開發者使用簡單的類似 Markdown 的語法創建各種圖表和可視化效果。無需繪圖工具或設計技能,僅通過文本定義就能生成專業的圖表,包括流程圖、餅圖、時間線、序列圖等多種類型。本文將探討 Mermaid.js 的主要優勢,並提供三種常用圖表的實用示例。

April 1, 2025
Astro 是什麼?專為內容驅動網站設計的高效前端框架

Astro 是什麼?專為內容驅動網站設計的高效前端框架

Astro 是專為內容導向型網站而生的超輕量框架,兼具極速效能與自由整合力,本文將從實戰角度出發,帶你深入理解為何我從 GatsbyJS 遷移至 Astro。

April 1, 2025
Zod:TypeScript 優先的模式驗證與靜態類型推斷

Zod:TypeScript 優先的模式驗證與靜態類型推斷

Zod 是一個專為 TypeScript 設計的強大模式驗證庫,它能夠無縫橋接編譯時類型系統與執行時環境,為開發者提供全面的類型安全保障。在現代 Web 應用程式開發中,尤其是處理使用者輸入、API 資料或 AI 整合時,Zod 已成為許多開發團隊不可或缺的工具。本文將深入探討 Zod 的核心特性以及使用它的主要優勢。

April 1, 2025
TypeScript:提升代碼質量與開發效率的強力工具

TypeScript:提升代碼質量與開發效率的強力工具

TypeScript 作為 JavaScript 的超集,自 Microsoft 推出以來,逐漸成為許多開發者,特別是處理大型應用程序的團隊的首選語言。它不僅增強了 JavaScript 的功能,還通過靜態類型檢查和豐富的工具支持,顯著提高了開發效率和代碼質量。本文將深入探討 TypeScript 的核心特性,以及使用 TypeScript 相較於 JavaScript 的諸多優勢。

April 1, 2025
Recharts:React 中的強大數據可視化工具

Recharts:React 中的強大數據可視化工具

Recharts 是一個專為 React 應用打造的強大圖表庫,它提供了簡潔的聲明式語法和豐富的定制選項,使開發者能夠輕鬆創建互動式數據可視化組件。本文將深入探討 Recharts 的核心特性、安裝方法、基本使用以及其在 React 專案中的優勢。

March 31, 2025
IP-API 地理位置 API:功能、優勢與實現技術

IP-API 地理位置 API:功能、優勢與實現技術

在當今網絡環境中,通過 IP 地址獲取用戶地理位置信息已成為眾多網站和應用程序的基本需求。IP-API 提供了一個功能強大且部分免費的地理位置 API 服務,使開發者能夠輕鬆獲取 IP 地址相關的地理數據。本文將深入探討 IP-API 的功能特點、使用免費數據的優勢,以及如何通過 Fetch API 進行實際應用。

March 31, 2025
AI 世代來臨:為何你仍該堅持寫技術博客?

AI 世代來臨:為何你仍該堅持寫技術博客?

在 AI 工具普及的 2025 年,技術博客寫作依然是前端開發者的重要成長工具。本文探討如何透過技術寫作建立個人品牌,加速學習效率,並在競爭激烈的市場中脫穎而出。從知識管理到職業發展,深入分析技術博客的持續價值。

March 31, 2025
掌握 JavaScript async/await:從入門到進階的完整指南 2025

掌握 JavaScript async/await:從入門到進階的完整指南 2025

深入剖析 JavaScript 非同步程式設計的最新發展!從基礎概念到進階應用,本文完整介紹 async/await 的強大功能、最佳實踐和效能優化技巧。透過實用範例,了解如何運用 async/await 提升程式碼品質並避免常見陷阱。

March 30, 2025
styled-components 進入維護模式:技術演進與生態系變遷分析

styled-components 進入維護模式:技術演進與生態系變遷分析

在 2025 年 3 月 18 日,styled-components 核心維護者 Evan Jacobs(quantizor)宣布曾經風靡 React 社群的 CSS-in-JS 解決方案正式進入維護模式。這個消息對於前端開發社群產生了相當大的迴響,也標誌著前端樣式處理技術的一個重要轉折點。

March 29, 2025
Pyodide:在瀏覽器中運行 Python 的完整指南

Pyodide:在瀏覽器中運行 Python 的完整指南

Pyodide 作為一種強大的技術解決方案,讓開發者能夠直接在瀏覽器中運行 Python 代碼,為 Web 開發帶來了新的可能性。本文將深入探討 Pyodide 的核心概念、優勢、使用方法以及安裝配置指南,幫助開發者充分利用這一創新技術。

March 29, 2025
viem:下一代 Web3 開發的 TypeScript 接口

viem:下一代 Web3 開發的 TypeScript 接口

viem 是一個功能強大的 TypeScript 接口,為以太坊和其他 EVM 兼容區塊鏈提供低層次的無狀態原語。作為 ethers.js 和 web3.js 的替代品,viem 在開發者體驗、穩定性、捆綁包大小和性能方面有著顯著優勢。本文將深入探討 viem 的特性及其為 Web3 開發者帶來的獨特價值。

March 29, 2025
Prettier:提升代碼質量的自動化格式化工具

Prettier:提升代碼質量的自動化格式化工具

在現代網頁開發的快節奏環境中,代碼的一致性和可讀性變得越來越重要。作為開發人員,我們經常花費大量時間調整代碼風格、確保跨文件的一致性,以及解決因格式不一致導致的合併衝突。Prettier 作為一種自動化代碼格式化工具,能夠有效解決這些問題,提升開發效率和代碼質量。

March 29, 2025
前端性能優化:樹搖優化、打包分析 與 代碼拆分 在 Vite 中的實踐

前端性能優化:樹搖優化、打包分析 與 代碼拆分 在 Vite 中的實踐

在當今高度競爭的網絡環境中,前端網站性能已成為用戶體驗的關鍵因素。網站加載速度慢不僅降低用戶滿意度,還會影響搜索引擎排名和轉化率。本文將深入探討三種強大的前端優化技術:樹搖優化、打包分析 和 代碼拆分,在 Vite 中實現這些技術,並詳細介紹如何利用 Vite 大幅提升前端應用性能。

March 28, 2025
CSS-in-JS:現代 React 開發的樣式解決方案

CSS-in-JS:現代 React 開發的樣式解決方案

CSS-in-JS 是一種革命性的樣式技術,它使用 JavaScript 來創建、添加和管理樣式。當 JavaScript 被解析時,CSS 會被動態生成並附加到 DOM 中。這種方法將樣式的抽象提升到了組件級別,使開發者能夠使用 JavaScript 以聲明性和可維護的方式描述樣式。這篇文章將深入探討 CSS-in-JS 的優勢以及如何在 React.js 應用中實現它。

March 27, 2025
React 19 的革新:深入探討 useActionState Hook

React 19 的革新:深入探討 useActionState Hook

React 19 引入了一系列創新功能,其中最引人注目的之一是 useActionState Hook。這個強大的新工具為前端開發者提供了更簡潔、更高效的方式來管理表單操作和狀態更新。本文將深入剖析 useActionState 的實用性,並通過實例演示如何在項目中有效地運用它。

March 26, 2025
Tailwind CSS 與 React.js:打造現代前端開發環境

Tailwind CSS 與 React.js:打造現代前端開發環境

本文深入探討了 Tailwind CSS 的眾多優勢,以及如何在 Vite 驅動的 React.js 專案中有效實施它。通過整合這兩種強大技術,開發者可以顯著提升開發效率,同時維持高度自訂的設計靈活性。本文還將展示如何構建一個精美的登入表單,並探討如何結合 SCSS 與 Tailwind CSS 來優化您的前端開發流程。

March 26, 2025
PostCSS:現代化的 CSS 處理工具及其在 Vite 中的應用

PostCSS:現代化的 CSS 處理工具及其在 Vite 中的應用

PostCSS 作為一個強大且靈活的 CSS 處理工具,已經在前端開發社區獲得了廣泛的認可和應用。本文將深入探討 PostCSS 的本質、使用 PostCSS 的諸多優勢,以及如何在 Vite 項目中高效地集成和配置 PostCSS。

March 25, 2025
2025 前端技能圖譜:系統化學習之路—基於台灣招聘市場的研究與實踐

2025 前端技能圖譜:系統化學習之路—基於台灣招聘市場的研究與實踐

前端開發作為一個不斷演進的領域,每年都有新的技術和框架湧現。作為一名全棧開發者,我長期以來一直在思考如何系統化地組織前端知識,並將這些知識有效地傳遞給更多人。這篇文章將分享我如何基於台灣招聘市場的研究,構建了一套全面的前端技能圖譜,以及我未來的寫作計劃。

March 25, 2025
Medium-Zoom:提升網站圖像交互體驗的現代解決方案

Medium-Zoom:提升網站圖像交互體驗的現代解決方案

Medium-Zoom 是一個專注於提供類似 Medium 網站風格圖像縮放效果的輕量級 JavaScript 庫。這款工具能讓使用者點擊圖像後獲得沉浸式的放大視圖,提供更好的圖像細節瀏覽體驗,同時保持網站的整體美觀和用戶體驗流暢度。本文將深入探討 Medium-Zoom 的核心功能、使用優勢,以及與市場上其他類似解決方案的比較。

March 25, 2025
SCSS 技術詳解:優勢、與 CSS 的區別及在 React TypeScript 項目中的應用

SCSS 技術詳解:優勢、與 CSS 的區別及在 React TypeScript 項目中的應用

SCSS 作為現代 Web 開發中日益流行的樣式預處理器,為前端開發人員提供了比傳統 CSS 更強大的功能和更高效的工作流程。本文將深入探討 SCSS 的優勢、與 CSS 的主要區別,以及如何在 React TypeScript 項目中有效地使用它,幫助開發者提升樣式編寫效率和代碼可維護性。

March 25, 2025
運用 Uptime Kuma 強化網站可靠性

運用 Uptime Kuma 強化網站可靠性

Uptime Kuma 作為一種開源監控工具,可為企業提供全面的網站與服務可用性監控解決方案。在當今數位化時代,網站和數位服務已成為企業營運的核心部分,任何停機或性能問題都可能導致收入損失和客戶流失。本文將探討 Uptime Kuma 的主要功能、其如何增強網站穩定性,以及為何企業應採用此類監控工具來確保業務連續性。

March 24, 2025
AVIF:下一代圖像格式的技術深度解析

AVIF:下一代圖像格式的技術深度解析

2025 年 AVIF(AV1 圖像文件格式)已成為網頁圖像優化的重要選擇。本文將深入分析 AVIF 的技術優勢、性能表現,以及如何使用 libavif 庫來處理這種先進的圖像格式。

March 24, 2025
Umami 分析工具:簡單、隱私、強大的網站分析解決方案

Umami 分析工具:簡單、隱私、強大的網站分析解決方案

在當今數據驅動的網絡環境中,網站分析工具是了解用戶行為和優化網站性能的關鍵。Umami 作為一個開源的網站分析解決方案,正逐漸成為 Google Analytics 的有力競爭者。本文將深入探討 Umami 的特點、優勢,以及如何使用 Umami Cloud 或自托管方式部署這一強大工具。

March 23, 2025
Circle CCTP v2:推動 USDC 跨鏈交互的未來

Circle CCTP v2:推動 USDC 跨鏈交互的未來

在多鏈生態系統快速發展的當下,不同區塊鏈之間的互操作性變得尤為重要。Circle 的跨鏈傳輸協議(Cross-Chain Transfer Protocol,簡稱 CCTP)作為一個革命性的解決方案,正在改變 USDC 在不同區塊鏈之間的轉移方式。最近,Circle 推出了 CCTP v2,引入了多項重要升級,大幅提高了跨鏈轉賬的速度和靈活性。本文將深入探討 CCTP 的核心概念、優勢、v2 版本的改進以及其應用場景。

March 23, 2025
Mockaroo:加速前端開發的 API 模擬工具詳解

Mockaroo:加速前端開發的 API 模擬工具詳解

在現代軟體開發中,前端與後端開發經常需要同步進行,但後端 API 通常需要較長的開發時間。當後端尚未準備好時,前端開發人員如何繼續他們的工作?這時,API 模擬工具就顯得至關重要。本文將深入探討 Mockaroo 這款強大的數據模擬工具,解析它如何加速開發流程,詳細指導如何使用它,並分析其相比其他模擬服務的優勢。

March 22, 2025
Power Assert - JavaScript 測試中最智能的斷言工具

Power Assert - JavaScript 測試中最智能的斷言工具

在測試驅動開發中,斷言是驗證程式碼行為的關鍵。傳統的 assert 僅顯示斷言失敗的簡單訊息,而 Power Assert 則提供了直觀、詳細的失敗原因視覺化展示,讓除錯過程更加高效。本文深入介紹 Power Assert 的使用方法、配置選項及其在現代前端開發中的應用。

March 21, 2025
Create React App 的終結:為何被淘汰及 Vite 的崛起

Create React App 的終結:為何被淘汰及 Vite 的崛起

React 開發團隊於 2025 年 2 月 14 日正式宣布淘汰 Create React App (CRA),並鼓勵開發者轉向使用現代框架或構建工具如 Vite、Parcel 或 RSBuild。這一決定標誌著前端開發工具生態系統的重大轉變,開啟了以框架為中心的新時代。

March 21, 2025
React JSONSchema Form:構建強大且靈活的動態表單

React JSONSchema Form:構建強大且靈活的動態表單

在當今的 Web 開發中,表單是與用戶交互的最重要界面之一。對於 React 開發者來說,有多種表單解決方案可供選擇,其中 React JSONSchema Form (RJSF) 以其獨特的方式脫穎而出。本文將深入探討這個強大的表單庫,了解如何利用它構建複雜表單,以及如何通過自定義組件提升用戶體驗。

March 20, 2025
ShareThis:網站分享工具的全面解析

ShareThis:網站分享工具的全面解析

ShareThis 是一種社交分享工具,允許用戶在不同社交網絡平台上輕鬆分享網站內容。它提供多種免費工具、應用程序和插件,幫助網站管理員增加流量和社交關注。在全球擁有超過 5 億用戶,每天被數千家企業使用,ShareThis 不僅僅是一個分享按鈕工具,還提供數據解決方案,幫助企業優化營銷策略,深入瞭解用戶行為。

March 19, 2025
在 Node.js 中使用 bcrypt 加密密碼的完整指南

在 Node.js 中使用 bcrypt 加密密碼的完整指南

在現代應用程序開發中,安全存儲用戶密碼至關重要。本報告將詳細介紹如何在 Node.js 中使用 bcrypt 進行密碼加密,探討為何 bcrypt 優於其他哈希方法,並提供密碼加密的最佳實踐。

March 19, 2025
如何使用 Vite 和 Reveal.js 創建簡單的 HTML 演示文稿

如何使用 Vite 和 Reveal.js 創建簡單的 HTML 演示文稿

在當今數位化的演講和教學環境中,創建互動式、視覺吸引力強的幻燈片演示文稿變得越來越重要。本文將向您展示如何結合使用 Vite 和 Reveal.js 來快速建立一個簡單而功能強大的網頁演示文稿系統,讓您能夠通過 HTML 和 Markdown 創建精美的幻燈片。

March 18, 2025
從 2022 到 2025:重新審視前端開發的演變

從 2022 到 2025:重新審視前端開發的演變

2022 年 3 月,我曾整理了「一個 Full Stack Developer 的日常」,分享了自己的工作流程和方法論。如今已是 2025 年,前端開發領域已經歷了翻天覆地的變化。讓我們重新審視這個領域,看看三年來發生了什麼變化,以及現在學習前端開發應該採取什麼策略。

March 17, 2025
利用 AutoCorrect 與 GitHub Actions 提升繁體中文寫作品質

利用 AutoCorrect 與 GitHub Actions 提升繁體中文寫作品質

AutoCorrect 是一個強大的文案格式化工具,能夠自動糾正中日韓(CJK)與英文混合使用時的常見問題,如標點符號、空格等。本文將介紹如何透過 GitHub Actions 的自動化工作流程,讓您的繁體中文文章在推送到 GitHub 時自動進行格式化,有效提升文章的專業度和可讀性。

March 16, 2025
REST Countries API:全面指南與台灣例子

REST Countries API:全面指南與台灣例子

REST Countries API 是一個功能強大的開放源碼 RESTful 服務,提供世界各國豐富的資訊。本文將深入探討這個 API 的工作原理、主要功能以及實際應用案例,特別聚焦在台灣及其主要區域的數據查詢範例。

March 15, 2025
使用 AI 輔助開發 Go 語言專案:urusai 的誕生與研究型編程的樂趣

使用 AI 輔助開發 Go 語言專案:urusai 的誕生與研究型編程的樂趣

本文分享了我如何在沒有 Go 語言經驗的情況下,借助 AI 輔助開發出 urusai 工具的經歷。探討研究型編程的方法、AI 在軟體開發中的角色,以及這種開發模式對未來技術創新的啟示。

March 15, 2025
MyGO!!!!! Telegram 機器人:邊緣計算與動漫文化的融合

MyGO!!!!! Telegram 機器人:邊緣計算與動漫文化的融合

MyGO!!!!! Telegram 機器人是一個結合了現代邊緣計算技術與動漫文化的創新項目。這個基於 Grammy 和 Hono 框架構建的 Telegram 機器人,能讓用戶通過關鍵詞搜索 MyGO!!!!! 的圖片。本文將深入探討該機器人的背景、技術實現和功能特點,展示如何利用 Cloudflare Workers 部署高效能的 Telegram 機器人。

March 15, 2025
TypeScript Go 實現的突破性改進與構建工具的語言演變

TypeScript Go 實現的突破性改進與構建工具的語言演變

TypeScript 最近宣佈的 Go 語言原生實現(被稱為 TSGo 或 Corsa)標誌著這一流行編程語言發展歷程中的重要里程碑。這項於 2025 年 3 月 11 日公布的重大技術轉變,不僅展示了引人矚目的性能提升,還反映了更廣泛的 JavaScript 生態系統中正在發生的構建工具轉向 Rust 和 Go 等編譯型語言的趨勢。

March 15, 2025
從零開始的 dApp 開發:2024 年學習路線圖

從零開始的 dApp 開發:2024 年學習路線圖

Web3 的機會已經來臨,接下來的三個月,我必須全力以赴。以下是我 2024 年的學習計畫:

December 18, 2023
給過去的的自己的一封信:如何自學轉行成爲前端工程師?

給過去的的自己的一封信:如何自學轉行成爲前端工程師?

最近,一些朋友向我詢問如何自學成為前端工程師,這讓我回想起五年前我自己曾經處於迷茫的交叉路口。當時,我正面臨著轉行的艱鉅挑戰,但我絕不願意放棄。我開始執筆技術文章,並積極參加各種技術競賽。我希望這封信能夠超越時間的限制,給予過去的自己對未來的期望:

December 4, 2023
如何使用 Astro 404 頁面重定向正確的文章頁面?

如何使用 Astro 404 頁面重定向正確的文章頁面?

在博客的反向連結(backlink)檢查過程中,發現許多網站引用我的技術文章。然而,由於年代久遠,這些網站使用的連結往往導向 404 頁面,所以我就在 Astro 的 404 頁面寫一段代碼解決這個問題。

November 30, 2023
如何利用 TypeScript 與 Viem 開發 ENS 查詢和頭像功能?

如何利用 TypeScript 與 Viem 開發 ENS 查詢和頭像功能?

從前我在接觸 Web3 應用的時候,都覺得不是那麼容易。而我們透過 TypeScript 和 viem,可以輕鬆獲取區塊鏈信息,這裡我就分享一下非常常見的 ENS 解析器用法。希望可以有更多人進入 Web3 開發的旅程當中~

November 29, 2023
左右互搏術:ChatGPT 與 TDD 結合心得

左右互搏術:ChatGPT 與 TDD 結合心得

當我閱讀《射鵰英雄傳》時,左右互搏術讓我聯想到測試驅動開發(Test-Driven Development,TDD)。這裡以編寫購物車功能為例,分享如何運用 TDD 來協助編寫程式碼

November 27, 2023
Cloudflare Pages、Worker 和 KV:實現伺服器端渲染的強大組合

Cloudflare Pages、Worker 和 KV:實現伺服器端渲染的強大組合

當今的數位世界中,網站用戶要求即時、動態和高度互動的體驗。我們需要確保用戶始終能夠訪問最新的內容,同時保持優秀的性能。在這方面,透過結合 Cloudflare Pages、Worker 和 KV,我們可以實現伺服器端渲染,提供動態且實時的內容,從而提升網站的性能和可用性。本文將深入探討這三個工具,解釋它們如何協同運作,以實現即時伺服器端渲染,提供更出色的用戶體驗。

November 23, 2023
Astro、Tailwind CSS 和 Animate.css:提升網站性能和設計風格的關鍵工具

Astro、Tailwind CSS 和 Animate.css:提升網站性能和設計風格的關鍵工具

我們在提供出色的用戶體驗的同時,也要顧及前端工程師的開發體驗。本文將帶您深入了解我常用的核心技術:Astro、Tailwind CSS 和 Animate.css,它們為前端工程師提供了更高效的工作方式,同時帶來更優秀的性能、設計和互動體驗。

November 20, 2023
關於我成爲鍊金術士的二三事(第一章)

關於我成爲鍊金術士的二三事(第一章)

許多年後,當 Calpa 站在開往東京灣的油輪上時,他會想起當年在香港的往事(新小說連載)

November 2, 2023
回顧我的 2023 開發者生涯:前端、後端、雲端、到 Web3

回顧我的 2023 開發者生涯:前端、後端、雲端、到 Web3

2023 年,我回到香港,從全棧工程師,行過死蔭幽谷,現在成爲系統架構師。能夠在 Web3 的世界自由自在地行走,十分感激當初的百般試煉。現在,就讓我回顧這一年我採用的前端後端雲端 Web3 方案,希望可以拋磚引玉

October 13, 2023
從「費曼學習法」到團隊的實際應用:促進知識分享與合作

從「費曼學習法」到團隊的實際應用:促進知識分享與合作

作為資深開發者,我經常需要將複雜的技術概念傳遞給團隊成員,以確保項目順利進行。這推動我將複雜知識轉化為易懂形式,促進團隊合作,並加強自身學習。本文將分享如何在實際工作中運用費曼學習法,幫助團隊理解複雜技術,實現項目成功

September 3, 2023
重構我的網站:Astro 與 Vue 重構心得分享

重構我的網站:Astro 與 Vue 重構心得分享

透過重構博客網站,我得以體會結合 Static Site 和 Vue 的優點。在靜態網站生成和動態組件的結合下,可以實現更出色的網站開發,接下來的內容中將分享開發心得

August 13, 2023
優雅地使用 Storybook 建立 React.js 組件

優雅地使用 Storybook 建立 React.js 組件

Storybook 最大的優點是它可以提供不同的頁面來顯示組件的不同狀態,讓我們在各種不同的情況下測試和評估組件。通過為不同狀態創建不同的頁面,我們可以輕鬆地測試組件。另外,Storybook 也可以輸出一個 Static Website,可以輕鬆分享給設計師和其他團隊成員,讓他們容易理解組件的外觀和行為。

January 11, 2023
一個 Full Stack Developer 的日常

一個 Full Stack Developer 的日常

我在今年 3 月初的時候,透過 Mind Map 整理自己作爲 Full Stack Developer 的日常,並且花了很多時間去改善日常工作流程。最近我有點時間,於是就把那份 Mind Map 寫成文章,希望可以繼續拋磚引玉。謝謝大家支持

May 30, 2022
從遊戲角度探討 Software Engineering 工作

從遊戲角度探討 Software Engineering 工作

我越來越發現,要在 Software Engineering 這一行工作,就如同打遊戲一樣,大多時候都是說這些,天賦,技能樹,裝備,公會,隊友。

February 14, 2022
如何利用 Stack Overflow 高效學習 JavaScript?

如何利用 Stack Overflow 高效學習 JavaScript?

帶著問題去學習,會比單純看書的效果好得多。而 Stack Overflow 網站雲集世界上不同程序員遇到的問題,我們可以透過它來高效學習技能,比如說前端工程師的技能:JavaScript。

March 15, 2019
如何透過 ZEIT 方便快捷地部署免費的 Node.js 項目?

如何透過 ZEIT 方便快捷地部署免費的 Node.js 項目?

ZEIT 平台提供了免費的網站空間平台給開發者,我們可以透過 ZEIT 平台來部署 Node.js, Express.js, Koa.js 等應用。如果你有寫過 Node.js 應用,又想找個免費空間部署這些應用的話,那麼 ZEIT 會是一個不錯的選擇。

March 4, 2019
為什麼函數式組件需要引進 React?

為什麼函數式組件需要引進 React?

在編寫組件時,最讓我迷惑的是在我編寫純函數組件,為什麼沒有在代碼裡面調用 React 都需要導入 React。經過一番調研,我發現是因為 JSX 轉譯的設定。不過,人是比較懶惰的,透過安裝 babel-plugin-react-require 插件,達到自動導入 React 的效果。這篇文章將會講述我的調研經歷和一點反思。

February 26, 2019
如何使用 React 渲染 Markdown?

如何使用 React 渲染 Markdown?

Markdown 提供了一種方便的方式來撰寫文章。我們可以使用解析 Markdown 的工具,例如 Remarkable、Marked 等,將其轉換為 HTML,然後透過 React 原生的 dangerouslySetInnerHTML 方法將其嵌入到組件中。

February 23, 2019
超好用的全棧項目部署構建平台 - Netlify, ZEIT

超好用的全棧項目部署構建平台 - Netlify, ZEIT

如果你想要部署自己的前端項目的話,那麼 Netlify 提供了一個一站式的解決方法,讓你可以持續部署,以及自動開啟 HTTPS。如果你想要部署 Node.js 應用的話,那麼 ZEIT 會是另外一個解決方案。

February 17, 2019

十年挑戰之水平垂直置中

相比起當年的水平置中手法,現在達到相同效果的方法多了很多,例如 Flex, Grid 等。就讓我們趁著 Facebook 回顧當年今日的浪潮重溫一下吧。

January 20, 2019
GatsbyJS 入門(三):從零開始架構 React 靜態網站

GatsbyJS 入門(三):從零開始架構 React 靜態網站

GatsbyJS 提供了一個簡單易用的命令行工具,我們可以透過它來構建一個基本的 React 網站,並實時看到修改代碼所帶來的變化。

January 16, 2019
從博客系統回顧我的 2018 年前端生涯

從博客系統回顧我的 2018 年前端生涯

時光飛逝,我已從大學畢業成為前端工程師。回想這一年,我完成了三件事情:改版博客系統,讓不同用戶可以快速啟動項目,它是我第一個過百 Star 數的項目;翻譯並校對技術文章,學習了不少前端實用的技術;對博客系統框架的 GatsbyJS,ReactJS 技術研究。

December 24, 2018
基於 GatsbyJS 的博客系統正式開源:gatsby-starter-calpa-blog,及其使用方法

基於 GatsbyJS 的博客系統正式開源:gatsby-starter-calpa-blog,及其使用方法

感謝各位這些年來閱讀我的博客文章,以及優化博客系統框架,現在,我將為你帶來一個前後端徹底分離,而且可以一鍵啟動的博客框架。

December 3, 2018
GatsbyJS 入門(二):如何以 Starter 快速架構網站

GatsbyJS 入門(二):如何以 Starter 快速架構網站

上次我們提到 GatsbyJS,它是一個可以獲取任意數據,並生成靜態化網站的系統。這一次,就讓我們以 Calpa 的技術博客作為例子來開始架構網站吧

November 23, 2018
GatsbyJS 入門(一):打造開箱即用的現代化前端網站

GatsbyJS 入門(一):打造開箱即用的現代化前端網站

GatsbyJS 是一個現代化開發網站的網站產生系統,擁有完整、豐富且開源的生態圈。它利用 React + GraphQL 產生的多頁面應用,讓前端工程師,編輯,用戶都感到滿意。就讓我們一步步地探索這個系統吧。

November 16, 2018

前端工程師的日常修煉清單

學習如逆水行舟,不進則退。透過這個清單,我可以不斷學習前端知識,掌握更新的技能,天天進化。

November 5, 2018
透過 TDD 模式學習如何實現各種 npm 工具

透過 TDD 模式學習如何實現各種 npm 工具

在程序員的日常精進之中,閱讀優秀的代碼是必不可少的。透過 TDD 的開發模式,可以模仿那些優秀的代碼,從而提升自己代碼水平。下面介紹如何從零開始搭建 TDD 環境,並構建 isEven 代碼

November 2, 2018

深入淺出代碼優化﹣if/else

對於代碼裡面的 if else,我們可以使用邏輯判斷式,或更好的三元判斷式來優化代碼。除了可以降低維護項目的成本之外,還可以提升代碼可讀性。就讓我們從最簡單的 if else 例子開始吧。

October 22, 2018
Awesome Promise Methods

Awesome Promise Methods

October 15, 2018
Hackoberfest 2018 ﹣ 面向所有人群的開源社區最大活動

Hackoberfest 2018 ﹣ 面向所有人群的開源社區最大活動

世界上不同的程序員,因開源活動而連接一起。這次 Hacktoberfest 活動除了可以拿到活動的限量衣服和貼紙之外,更可以認識到世界上不同的程序員。我看著不斷而來的討論和 PR,我找回了自己在編程上的熱情。如果你有興趣參與開源活動,但不知道如何入手的話,它會是一個不錯的起點。

October 9, 2018
lozad.js ﹣ 高性能、無依賴的純 JS 任意元素懶加載插件

lozad.js ﹣ 高性能、無依賴的純 JS 任意元素懶加載插件

為了提升用戶的加載頁面速度,我們可以使用懶加載這個方法。當用戶打開頁面的時候,只需要載入首屏的資源,從而節省流量,提升加載速度。而用戶滾動到圖片佔用位置,瀏覽器才載入圖片資源。利用 `lozad.js`,我們可以簡單容易地懶加載圖片。它是一個可以單獨運行的工具,gzip 後的體積只有 910B,可以說是超輕量的工具庫。除了加載圖片之外,它還可以加載任意元素,例如 iframe,影片。在過去的一年,博客就已經啟動這個懶加載的功能了,也算是通過了眾多不同用戶的考驗了。

September 27, 2018
網站性能調優開發工具:Lighthouse,Puppeteer 以及進階部分丨 Google 開發者大會 2018

網站性能調優開發工具:Lighthouse,Puppeteer 以及進階部分丨 Google 開發者大會 2018

這次 Google 開發者大會請來了 Lighthouse 的工程師 - Eric Bidelman,分享如何簡單地使用 Lighthouse, Puppeteer 來自動化我們日常的流程。它是一個開源的自動化工具,用於改進網絡應用質量。您只需要提供網址,它就測試該頁面,並生成頁面性能報告。你可以看看採取哪些措施來改進您的應用

September 24, 2018
5 分鐘掌握 Day.js,輕量化處理時間和日期

5 分鐘掌握 Day.js,輕量化處理時間和日期

Day.js 是一個輕量的處理時間和日期的 JavaScript 庫,和 Moment.js 的 API 設計保持完全一樣。如果您曾經用過 Moment.js, 那麼您已經知道如何使用 Day.js

September 19, 2018
【譯】以申請大學流程來解釋 JavaScript 的 filter 方法

【譯】以申請大學流程來解釋 JavaScript 的 filter 方法

如果你熟悉申請大學流程的話,你也可以理解 JavaScript 的 filter 方法。相對於 JavaScript 裡面的 map() 和 reduce() 方法來說,filter() 方法也許是最一目了然的方法。

September 17, 2018
GitGuardian:防止公開暴露敏感信息

GitGuardian:防止公開暴露敏感信息

September 8, 2018
vtop ﹣ 一個你用了就會愛不釋手的圖形化進程管理工具

vtop ﹣ 一個你用了就會愛不釋手的圖形化進程管理工具

當我查看 CPU 和系統狀態時,我希望可以更加快捷,直觀地找出問題所在。vtop 則可以幫助我們節省分析過多數據,還提供 hjkl 一樣的 vim 鍵位,非常方便易用。如同 top 一樣,它可以顯示系統中各個進程中資源佔用狀況,並終止特定進程。

August 25, 2018
來杭工作兩個月後的生活與工作總結

來杭工作兩個月後的生活與工作總結

時光飛逝,轉眼已經離開香港兩個月。上有天堂,下有蘇杭。我也開始習慣這裡的生活,無論是生活節奏,還是工作習慣,都有所不同。這就是我這些天來最大的體會。

August 19, 2018

Uncaught ReferenceError: regeneratorRuntime is not defined 解決方法

async/await 能讓開發者享受異步操作的快感,解決回調地獄的問題。然而,編譯器對於 async/await 的編譯有時候卻不和我們想象中的一樣。透過安裝正確插件,或改回 Promise 版本,我們可以解決這個問題。

July 29, 2018
關於 2018 年的 Calpa Liu

關於 2018 年的 Calpa Liu

你好,歡迎來到我的博客。我是 Calpa,一個喜歡寫技術文章的前端程序員。

May 1, 2018

【方法】在直接複製貼上內容的時候,可能已經不知不覺注入了一段不可視的「空白」

趁著深夜有空,我就翻譯了一篇有趣的文章。這篇文章是說如何插入任意文本到任意文本。有時候,文章都會被某些網站會直接引用博客內容。這一類的插入空白字符串方法,可以成為其中一個有力的追蹤源頭的線索。

April 6, 2018
知乎無限 live 數據流網站

知乎無限 live 數據流網站

一直收聽知乎無限 live 的時候,我都會想:如何才能更有效率地收聽這些計畫內的 live 呢?於是我心血來潮,把無限 live 的資料拿了下來,然後做一個數據流的網站。這個網站展示和源碼已經放在 Github。這個項目可能適合那些喜歡看到很多數據的同學

March 28, 2018

Gatsbyjs async/await 更新報錯解決方法

當我在更新 gatsbyjs 本體和 `gatsbyjs-*` 插件後,就發現構建 JavaScript 代碼的時候失敗。解決問題的過程,需要多聯想關鍵字。但簡單來說,只要安裝正確的 babel 轉換插件,就可以解決這個問題。

March 21, 2018

Gitalk Error: Validation Failed. 442 報錯解決方法

最近忙著大學的事情,少了時間寫博客文章。可是沒想到在過去那一篇文章發佈之後,就遇到 Gitalk 評論區出現 Error: Validation Failed. 這樣的問題,在 Github 上面和網友討論之後,想出了一個解決方法,希望可以拋磚引玉。

March 10, 2018

美化 console.log 輸出

console.log() 這一個方法可以說是前端工程師最常用的調試方法之一。當我在研究音樂播放器 Aplayer 源碼的時候,發現其中有一行有趣的代碼,可以在 console 裏面輸出自帶顏色的圖案,故在此記錄一下。

March 4, 2018

又到了年度總結的季節 ﹣ 我的 2017 前端開發回顧

從最初的失望與後悔,到最後的興奮與感動,2017 年可以算是充滿挑戰與機遇的一年。雖然我依然是一個非科班學生,但是這沒有阻止我轉行成為前端工程師,反而成為向前邁進的動力之一。如果沒有這些經歷,我也不會發現自己對於編程的那份熱愛。在此,就讓我回顧一下這一年在自學編程轉行的經歷吧。在開始這篇文章之前,我先戴上頭盔,以防意外。

December 31, 2017
Node-prune:專門移除 node_modules 不必要檔案的輕量工具

Node-prune:專門移除 node_modules 不必要檔案的輕量工具

如果你有試過打包整個 Node 項目到服務器上,那麼你發現自己的項目體積比較大,其中一個原因是 `node_modules` 文件夾包含很多不必要的檔案。在使用 npm 安裝不同插件時,往往會包含很多不必要的文件夾,例如`example`, `doc`。要麼我們就是手動刪除它們,要麼我們就是自己寫一個自動腳本。而開發 Koa、Co、Express 的 TJ 大神則提供了一個簡單輕巧的工具。我們可以學習一下他的思路,以及使用這個工具。

November 26, 2017
你可能不知道的 JavaScript 代碼規範

你可能不知道的 JavaScript 代碼規範

良好的代碼規範,能夠提高代碼的可閱性,使得項目維護更友好。除了自己設定一個規範外,我們也可以借鑒一下現在流行的代碼規範,讓我們成長之後,再去看細節。

November 8, 2017
參加八次黑客馬拉松的個人體會與總結

參加八次黑客馬拉松的個人體會與總結

與其說黑客馬拉松是一場比賽,不如說它是一場程序員的盛會。作為一個前端開發者,也是蠻喜歡參加這樣的比賽。畢竟可以把自己的想法,在 24 小時之內把自己的想法,或是按著比賽主題做個原型出來。無論你是什麼技術背景的人,都歡迎你來參與這些盛會。

November 6, 2017
【圖多】《遠征成功﹣﹣一個香港人北上杭州豬場的前端面試之路》

【圖多】《遠征成功﹣﹣一個香港人北上杭州豬場的前端面試之路》

首先,我要感謝網易。作為一個香港人,能夠拿到杭州的面試機會,實屬機會難得。這次的兩輪技術面試,考察點廣泛而深入。雖然問題比較深入,但這讓我感覺對於技術要求比較高,這是一件好事,因為可以反映公司對於技術的重視。在大四的這一年裡,我會繼續努力,爭取時間學習一個。本文將會記錄我面試時遇過的問題,以及作為一個香港人在杭州遇到的困難。

September 30, 2017

異步操作見聞錄

異步操作是非常常見的操作,也是其中一題常見的前端工程師面試題目。在日常開發中,我們會和伺服器交互,或者是和用戶的行動作出反應,比如說監聽某些點擊事件。這個時候,其實我們是執行了異步操作,我們需要等待對方若干時間才能收到返回值,甚至是一個錯誤的值。因此,異步操作很容易產生一些誤會。這裡,我會說一下異步操作,及其返回的處理方法。

September 27, 2017
React-markdown -- 實時渲染 Markdown 的 React 工具

React-markdown -- 實時渲染 Markdown 的 React 工具

React-markdown 可以把 markdown 語句轉譯為 React 組件,十分方便使用。

August 31, 2017
React 應用輕量化(一)Source Map

React 應用輕量化(一)Source Map

create-react-app 提供了很方便的創建 React 應用途徑。它已經把 webpack, Babel, Autoprefixer, ESLint, Jest 等常用工具打包進去。可以說是一個非常方便,好用的製造 React 應用工具。當我打算把包裝好的檔案推上去的時候,我卻發現打包之後的檔案大小有點大,因此我就開始優化這個網頁應用了。第一點我優化的地方就是 Source Map。

August 27, 2017

善用 Github Issue 的開源評論插件 -- Gitalk

以前,我的博客是用 Disqus 的評論插件,但是無論是載入速度,還是樣式上,都是有所缺乏的。我一直沒有安裝其他的評論插件,因為覺得搬家有點麻煩。但是當我試用一下之後,我就覺得這個插件安裝很方便,功能也很實用,尤其是可以寫 Markdown 評論,讓我非常喜歡這個插件了。

August 4, 2017

項目代碼調試:提問前要做的六個步驟

上天對於每個地球人都是公平的,每個人都一天只有 24 小時。為什麼有的人會停留不前,有的人卻會不斷有所成長?其中一個原因是當遇到問題時,他們解決問題的方法是非常不同的。同樣是遇到問題,與其伸手,等其他程序員幫助去解決問題,倒不如自己先嘗試各種方法,然後才問人家。我會在這篇文章簡單說一下在你提問之前,你可以做的六個步驟。

July 24, 2017
簡單易用的開源 JavaScript 動畫圖標庫 -- Titanic

簡單易用的開源 JavaScript 動畫圖標庫 -- Titanic

如果你用過 Font Awesome 等圖標,你可能會覺得它們很好看,用起來很很方便。但是,在用戶點擊這些圖標的時候,它們是不會有反應的。如果有這些圖標會動的話,那就更加好。Titanic 提供一系列的動畫圖標,以及以 JavaScript 的調用圖標動畫的方法。

July 6, 2017
【翻譯】前端性能優化必備工具清單

【翻譯】前端性能優化必備工具清單

在網頁開發的世界裡,尤其是前端開發,我們會用很多時間尋找最好的設計,以及最好的內容。雖然這是沒有錯的,但是,我們會忘記去優化我們的網頁。這會讓用戶需要很久的時間,比如說,瀏覽器需要六秒到十秒以上才能完成整個渲染過程。在這篇文章,我會分享優化網頁的檢查清單。如果你覺得我有錯漏的地方,請在下面留言。這張清單會包含一些優化搜尋引擎排名 (SEO) 的技巧,以及減少網頁加載時間的最佳實踐。

June 19, 2017
2017 年香港開源年會後記

2017 年香港開源年會後記

大約兩個星期之前,我在 Facebook 上看到 2017 年的香港開源年會的消息。我想,我是不是可以透過這個機會,認識一下不同領域的程序。於是,我在 EventBrite 上面買了學生票。但最終我拿到 VIP 票了,感覺有點激動。我把這一次的會議做了幾點筆記,也許,每一個人都應該參加最少一次如此有規模的大會。我會在這裡說說我參與這次會議所發生的一些事。

June 14, 2017

香港開放數據平台 - 從入門到放棄

經過 2017 年香港開源年會之後,我都沒有去看香港的開放數據做得怎麼樣。今天香港正懸掛八號風球,正好是一個機會去了解一下。香港政府有一個開放數據平台,資料一線通,以多種檔案格式提供多個政府部門類別,機構的一些查詢資料,比如說天氣預報,中學教育統計資料。值得注意的是,這些檔案並不是 ODF,而是 xls, xml, csv, json, gif, txt, tif。

June 12, 2017

5 分鐘製作 Markdown PowerPoint

利用 markdown 製作投影片,其實可以很簡單。

June 1, 2017

JavaScript Array.map(parseInt) 錯誤解決方案

如果我想轉換數組裡面的字符串為數字的話,很自然就會想到 `map` 和 `parseInt` 這兩個方法。但是用起來的時候卻不是我想要的結果。

May 31, 2017

為什麼要寫技術博客?

從第一篇《Hello World》文章,我已經開始寫博客半年了,一共寫三十多篇,平均一個禮拜出一篇文章。其實,我沒有想那麼多,直接就開始寫文章了。可能我的博客沒有其他人寫得那麼好,但是我依然堅持寫博客。每一篇文章是需要一點時間構思、撰寫,但是這點時間是很值得的。

May 30, 2017

打好 JavaScript 基礎的 6 個步驟

平日開發的時候,我們會選擇使用一些框架來避免重複製造輪子,減輕我們的工作量。然而,我們卻不能透過使用更好的工具,或者更換框架來解決一些基礎開發問題。因此打好基礎很重要,不但決定前端程序員解決基礎問題的能力,還決定了面對日新月異框架時的掌握能力。當我開發 React 應用的時候,遇到的問題多是我對於 JavaScript 的理解不夠充分。因此,我在這裡寫一下如何打好 JavaScript 基礎,希望拋磚引玉 XD

May 21, 2017

深入 ECMAScript 的數據類型

每一種編程語言都有數據結構,但他們各有不同之處。JavaScript 是一種動態語言,變數的類型不用提前聲明,你可以使用同一個變數來保存不同的數據類型。

May 18, 2017

React 組件生命週期 - 加載組件

初探 React 組件生命週期

May 16, 2017

初探正則表達式

正則表達式是一個非常簡單的語法,但它也是神兵利器,可以說是程序員必須要理解的工具之一。它就像一本會不斷成長的寶刀,隨著程序員對它的理解,它的威力也跟著增強。

May 6, 2017

CreateListFromArrayLike called on non-object 報錯的解決方法

如果你遇到 CreateListFromArrayLike 的報錯的話,那麼可以看看代碼裡面調用 apply 方法的地方,call 是用 0 個或者更多的參數,而 apply 則是用一個數組。

May 1, 2017

Coders of the Caribbean Online Contest 後記

Codingame

April 25, 2017
HackUST 2017 後記

HackUST 2017 後記

April 23, 2017

【React Native】安裝 Android Apk 而無需連接伺服器的方法

通常情況下,我們使用以下命令來在我們的手機上測試 React Native 應用程式:react-native run-android。然而,這個方法需要將手機連接到電腦上。為了達到無需伺服器的目標,我們可以使用以下指令來實現:

April 11, 2017

14 種常見的 HTTP 狀態碼

當用戶向伺服器發出請求時,狀態碼能夠描述伺服器返回的結果。

April 8, 2017

localStorage vs sessionStorage

LocalStorage 和 SessionStorage 的對比

January 20, 2017

Guest Book

January 1, 2017