Astro 是專為內容導向型網站而生的超輕量框架,兼具極速效能與自由整合力,本文將從實戰角度出發,帶你深入理解為何我從 GatsbyJS 遷移至 Astro。
當我寫過八十篇技術文章之後,我發現技術文章越是簡單,越有效地傳播知識。這裡分享一下如何運用單一功能原則寫出更加容易理解的技術文章。
最近,一些朋友向我詢問如何自學成為前端工程師,這讓我回想起五年前我自己曾經處於迷茫的交叉路口。當時,我正面臨著轉行的艱鉅挑戰,但我絕不願意放棄。我開始執筆技術文章,並積極參加各種技術競賽。我希望這封信能夠超越時間的限制,給予過去的自己對未來的期望:
在博客的反向連結(backlink)檢查過程中,發現許多網站引用我的技術文章。然而,由於年代久遠,這些網站使用的連結往往導向 404 頁面,所以我就在 Astro 的 404 頁面寫一段代碼解決這個問題。
當今的數位世界中,網站用戶要求即時、動態和高度互動的體驗。我們需要確保用戶始終能夠訪問最新的內容,同時保持優秀的性能。在這方面,透過結合 Cloudflare Pages、Worker 和 KV,我們可以實現伺服器端渲染,提供動態且實時的內容,從而提升網站的性能和可用性。本文將深入探討這三個工具,解釋它們如何協同運作,以實現即時伺服器端渲染,提供更出色的用戶體驗。
我們在提供出色的用戶體驗的同時,也要顧及前端工程師的開發體驗。本文將帶您深入了解我常用的核心技術:Astro、Tailwind CSS 和 Animate.css,它們為前端工程師提供了更高效的工作方式,同時帶來更優秀的性能、設計和互動體驗。
2023 年,我回到香港,從全棧工程師,行過死蔭幽谷,現在成爲系統架構師。能夠在 Web3 的世界自由自在地行走,十分感激當初的百般試煉。現在,就讓我回顧這一年我採用的前端後端雲端 Web3 方案,希望可以拋磚引玉
ZEIT 平台提供了免費的網站空間平台給開發者,我們可以透過 ZEIT 平台來部署 Node.js, Express.js, Koa.js 等應用。如果你有寫過 Node.js 應用,又想找個免費空間部署這些應用的話,那麼 ZEIT 會是一個不錯的選擇。
如果你想要部署自己的前端項目的話,那麼 Netlify 提供了一個一站式的解決方法,讓你可以持續部署,以及自動開啟 HTTPS。如果你想要部署 Node.js 應用的話,那麼 ZEIT 會是另外一個解決方案。
GatsbyJS 提供了一個簡單易用的命令行工具,我們可以透過它來構建一個基本的 React 網站,並實時看到修改代碼所帶來的變化。
時光飛逝,我已從大學畢業成為前端工程師。回想這一年,我完成了三件事情:改版博客系統,讓不同用戶可以快速啟動項目,它是我第一個過百 Star 數的項目;翻譯並校對技術文章,學習了不少前端實用的技術;對博客系統框架的 GatsbyJS,ReactJS 技術研究。
感謝各位這些年來閱讀我的博客文章,以及優化博客系統框架,現在,我將為你帶來一個前後端徹底分離,而且可以一鍵啟動的博客框架。
上次我們提到 GatsbyJS,它是一個可以獲取任意數據,並生成靜態化網站的系統。這一次,就讓我們以 Calpa 的技術博客作為例子來開始架構網站吧
GatsbyJS 是一個現代化開發網站的網站產生系統,擁有完整、豐富且開源的生態圈。它利用 React + GraphQL 產生的多頁面應用,讓前端工程師,編輯,用戶都感到滿意。就讓我們一步步地探索這個系統吧。
學習如逆水行舟,不進則退。透過這個清單,我可以不斷學習前端知識,掌握更新的技能,天天進化。
世界上不同的程序員,因開源活動而連接一起。這次 Hacktoberfest 活動除了可以拿到活動的限量衣服和貼紙之外,更可以認識到世界上不同的程序員。我看著不斷而來的討論和 PR,我找回了自己在編程上的熱情。如果你有興趣參與開源活動,但不知道如何入手的話,它會是一個不錯的起點。
你好,歡迎來到我的博客。我是 Calpa,一個喜歡寫技術文章的前端程序員。
當我在更新 gatsbyjs 本體和 `gatsbyjs-*` 插件後,就發現構建 JavaScript 代碼的時候失敗。解決問題的過程,需要多聯想關鍵字。但簡單來說,只要安裝正確的 babel 轉換插件,就可以解決這個問題。
console.log() 這一個方法可以說是前端工程師最常用的調試方法之一。當我在研究音樂播放器 Aplayer 源碼的時候,發現其中有一行有趣的代碼,可以在 console 裏面輸出自帶顏色的圖案,故在此記錄一下。
從最初的失望與後悔,到最後的興奮與感動,2017 年可以算是充滿挑戰與機遇的一年。雖然我依然是一個非科班學生,但是這沒有阻止我轉行成為前端工程師,反而成為向前邁進的動力之一。如果沒有這些經歷,我也不會發現自己對於編程的那份熱愛。在此,就讓我回顧一下這一年在自學編程轉行的經歷吧。在開始這篇文章之前,我先戴上頭盔,以防意外。
與其說黑客馬拉松是一場比賽,不如說它是一場程序員的盛會。作為一個前端開發者,也是蠻喜歡參加這樣的比賽。畢竟可以把自己的想法,在 24 小時之內把自己的想法,或是按著比賽主題做個原型出來。無論你是什麼技術背景的人,都歡迎你來參與這些盛會。
首先,我要感謝網易。作為一個香港人,能夠拿到杭州的面試機會,實屬機會難得。這次的兩輪技術面試,考察點廣泛而深入。雖然問題比較深入,但這讓我感覺對於技術要求比較高,這是一件好事,因為可以反映公司對於技術的重視。在大四的這一年裡,我會繼續努力,爭取時間學習一個。本文將會記錄我面試時遇過的問題,以及作為一個香港人在杭州遇到的困難。
上天對於每個地球人都是公平的,每個人都一天只有 24 小時。為什麼有的人會停留不前,有的人卻會不斷有所成長?其中一個原因是當遇到問題時,他們解決問題的方法是非常不同的。同樣是遇到問題,與其伸手,等其他程序員幫助去解決問題,倒不如自己先嘗試各種方法,然後才問人家。我會在這篇文章簡單說一下在你提問之前,你可以做的六個步驟。
在網頁開發的世界裡,尤其是前端開發,我們會用很多時間尋找最好的設計,以及最好的內容。雖然這是沒有錯的,但是,我們會忘記去優化我們的網頁。這會讓用戶需要很久的時間,比如說,瀏覽器需要六秒到十秒以上才能完成整個渲染過程。在這篇文章,我會分享優化網頁的檢查清單。如果你覺得我有錯漏的地方,請在下面留言。這張清單會包含一些優化搜尋引擎排名 (SEO) 的技巧,以及減少網頁加載時間的最佳實踐。
大約兩個星期之前,我在 Facebook 上看到 2017 年的香港開源年會的消息。我想,我是不是可以透過這個機會,認識一下不同領域的程序。於是,我在 EventBrite 上面買了學生票。但最終我拿到 VIP 票了,感覺有點激動。我把這一次的會議做了幾點筆記,也許,每一個人都應該參加最少一次如此有規模的大會。我會在這裡說說我參與這次會議所發生的一些事。
經過 2017 年香港開源年會之後,我都沒有去看香港的開放數據做得怎麼樣。今天香港正懸掛八號風球,正好是一個機會去了解一下。香港政府有一個開放數據平台,資料一線通,以多種檔案格式提供多個政府部門類別,機構的一些查詢資料,比如說天氣預報,中學教育統計資料。值得注意的是,這些檔案並不是 ODF,而是 xls, xml, csv, json, gif, txt, tif。
從第一篇《Hello World》文章,我已經開始寫博客半年了,一共寫三十多篇,平均一個禮拜出一篇文章。其實,我沒有想那麼多,直接就開始寫文章了。可能我的博客沒有其他人寫得那麼好,但是我依然堅持寫博客。每一篇文章是需要一點時間構思、撰寫,但是這點時間是很值得的。
Hello World
二十一世紀的鍊金術士,以 AI 為觸媒,將想法具現化,以邏輯築陣、用創作構築可能。
從 2017 年開始寫作,目前已累積 273 篇煉金筆記。
如果你有 AI 專案、網站開發或技術整合需求,歡迎來信交流: partner@calpa.me
React 開發團隊於 2025 年 2 月 14 日正式宣布淘汰 Create React App (CRA),並鼓勵開發者轉向使用現代框架或構建工具如 Vite、Parcel 或 RSBuild。這一決定標誌著前端開發工具生態系統的重大轉變,開啟了以框架為中心的新時代。
3085 分享
2025年3月21日
2161 分享
2023年10月13日
2022 年 3 月,我曾整理了「一個 Full Stack Developer 的日常」,分享了自己的工作流程和方法論。如今已是 2025 年,前端開發領域已經歷了翻天覆地的變化。讓我們重新審視這個領域,看看三年來發生了什麼變化,以及現在學習前端開發應該採取什麼策略。
1489 分享
2025年3月17日
前端開發作為一個不斷演進的領域,每年都有新的技術和框架湧現。作為一名全棧開發者,我長期以來一直在思考如何系統化地組織前端知識,並將這些知識有效地傳遞給更多人。這篇文章將分享我如何基於台灣招聘市場的研究,構建了一套全面的前端技能圖譜,以及我未來的寫作計劃。
1376 分享
2025年3月25日
在 AI 輔助開發時代,清晰的程式文件不只是寫給人看的,更是讓 AI 工具正確理解你程式碼的關鍵。本文深入解析 Python DocString 的撰寫方式與實用範例,包含 PEP 257、Google 風格與 Numpydoc 樣式,幫助你打造對開發者與 AI 都友善的專業程式碼註解。
1368 分享
2025年4月18日
在 2025 年 3 月 18 日,styled-components 核心維護者 Evan Jacobs(quantizor)宣布曾經風靡 React 社群的 CSS-in-JS 解決方案正式進入維護模式。這個消息對於前端開發社群產生了相當大的迴響,也標誌著前端樣式處理技術的一個重要轉折點。
1031 分享
2025年3月29日
JSDoc 是 JavaScript 生態系統中的強大文檔生成工具,能顯著提升程式碼質量與項目可維護性。本文將深入探討 JSDoc 的優勢,及如何運用 AI 技術自動生成 JSDoc 文檔,使開發流程更加高效。
995 分享
2025年4月06日
918 分享
2023年12月04日
在當今高度競爭的網絡環境中,前端網站性能已成為用戶體驗的關鍵因素。網站加載速度慢不僅降低用戶滿意度,還會影響搜索引擎排名和轉化率。本文將深入探討三種強大的前端優化技術:樹搖優化、打包分析 和 代碼拆分,在 Vite 中實現這些技術,並詳細介紹如何利用 Vite 大幅提升前端應用性能。
886 分享
2025年3月28日
Cloudflare Queues 是專為分散式系統設計的消息佇列服務,支援非同步處理、訊息保證與高吞吐量。本文深入介紹其核心功能、實戰應用與架構優勢,助你打造更穩定、高效的現代應用。
2025年5月10日
GSAP 所有高級插件全面免費,ScrollTrigger、SplitText、MorphSVG 全部解鎖,Webflow 整合無縫對接,一文帶你快速上手。
2025年5月09日
Privy 提供一套簡單強大的 SDK,協助開發者在幾分鐘內實作錢包登入、訊息簽名與交易功能,支援多鏈、多裝置與自託管安全架構。無論你在打造 DeFi Dashboard、NFT 平台還是 Web3 遊戲入口,Privy 都能讓你快速整合區塊鏈功能,專注產品體驗。
2025年5月07日
用 ChatGPT 打造高效創作工作流,讓靈感不再流於空談,而是一步步變成真實成果。這篇實戰指南,寫給正在卡關的你。
2025年5月05日
Vercel AI SDK 是專為開發者打造的 TypeScript 工具包,支援 React、Next.js、Vue、Svelte、Node.js 等主流框架,協助快速構建 AI 驅動應用。本文將深入剖析其統一 API、靈活架構、效能優化及多平台支援等核心亮點。
2025年5月04日
你有遇過 AI 產生的程式碼完全跑不起來嗎?我曾經寫了一段計數器邏輯,結果它怎麼都看不懂。直到我用 TypeScript + 函數式設計重構,才發現——問題不在 AI,而是我們寫得不夠清楚。
想讓 ShareThis 分享按鈕擁有更多彈性與控制權?本教學將教你如何用 Cloudflare Workers 的 KV 資料庫與 Hono 框架,打造一個可擴充的後端 API。不只能保留原有分享數據,更支援快取、資料追蹤與訪問統計,幫助你打造真正可維護的分享統計系統。
2025年5月03日
測試不該拖慢開發流程,而 Vitest 正是讓你「寫測試像開發一樣快」的關鍵武器。還在用 Jest 等太久?Vitest 結合 Vite 高速構建與即時測試回饋,支援 TypeScript、Vue、React 等框架,全面升級你的測試流程!
2025年5月02日
Drizzle ORM 結合 TypeScript 類型安全與 SQL 靈活性,是現代開發者在 Cloudflare D1 上構建 Serverless 數據庫的理想選擇。本文提供從安裝、建模到查詢的完整實戰教學。
126 分享
2025年5月01日
管理圖片資源
快速查詢和定位 IP 地址的地理位置和相關信息
無需後端、無需登入,只需打開瀏覽器即可運行 Python 代碼(由 Pyodide 提供支持)
自動創建適合各種平台的文章封面圖
一鍵創建原作(青山剛昌)的封面圖
探索和使用傳統日本色彩
以視覺化儀表板方式追蹤文章成效、分享熱度與分類分布,協助創作者掌握內容表現。
使用蒙特卡羅方法演示 π 值的估算過程
使用 LLM 模型進行聊天
一鍵創建活動的封面圖
一鍵創建 Wagmi 的封面圖
Facebook Quote
用程式語法編寫旋律,用音符構築想像
一鍵創建 Blurhash
使用 MediaPipe TextClassifier 分類文字
前端工程師免費工具資源
後端工程師免費工具資源
全端工程師免費工具資源
Web3 工程師免費工具資源