跳到主要內容

[鐵人賽] Node 30 day 初介- Day1

鐵人賽 Node 30 day

在 Node.js 台灣社群一起合作寫了一本 Node.js 開發手冊,當初主要是希望能夠藉由蒐集,將中文資料集中,讓更多人可以學習如何使用 Node.js,而這次鐵人賽,希望透過這三十天,將內容做個濃縮,讓大家對於 Node.js 有個重新的學習,同時也將這兩年來開發 Node.js 的經驗導入於本書中。

這次資料預計分成四個章節,為編排。

環境建置

雖然 JS 可以在瀏覽器的環境中執行,不過為了流程順暢,初探的部份會先從環境建置開始講起,從 Node.js 在各個不同平台如何安裝。因應 Node.js 版本更新迅速,也會順便提到 NVM (Node.js Version Management) 的安裝方式,以及使用方法。

當然你也需要找個環境,讓你的程式可以進行佈署,因此這邊也會推薦幾個免費的環境給各位使用。

JavaScript 介紹

(接下來 JavaScript 一詞,將會縮減為 JS)

在閱讀此章節之前,請先拋開以往在瀏覽器編輯 JavaScript 的經驗,從現在起將討論是的 JavaScript 本質部份,會從 JavaScript 的變數、陣列、迴圈、函式、類別開始介紹,當中會使用到許多方法,只有在 Node.js 才會看到的方法,所以請記住我先前所說的,拋開以往對於瀏覽器的觀念,在這裡已經沒有瀏覽器的存在。

畢竟在 Node.js 的程式開發中,目前還是使用 JavaScript ,就算全面改用 CoffeeScript, TypeScript,本質上還是回到 JavaSCript 身為一個技術書籍來說,就是教大家最基本的東西,從中體驗 Node.js 開發,請好好的重新體會 JS 的好。

首先會先從 JS 的基本型態開始講起,從 JS 擁有哪些型態,用什麼方式宣告,一開始該怎麼寫,繼續講到 Array 怎麼宣告,其中有哪些方法,可以讓陣列 iterateor 完成自的使命。
Closure ,在大陸名詞翻譯為閉包,這在 JS 裡面是個有趣的議題,關係到 js 變數生命週期,當然這也是個很重要的概念釐清。

接著開始講解 Class, 什麼是類別,什麼是 function ,一個 function 怎麼生成 Class。當然談到這邊就會同時提到 JS Class 最特別東西, this,大多數的開發者都會與 Java 的 this 混淆,這邊將為各位做個釐清。

能夠建立 Class 之後,就不得不講到 js 其中一種特性,prototype ,這到底是什麼,為什麼會有 prototype ,在這邊會有許多 Class 邊際效應的開發討論。

js 基本特性經過四天的探討之後,直接就進入 node.js 的世界,接著會開始講解 Node.js 開發。

Node.js 實戰篇

這裡開始介紹 node.js 裡面專有的名詞,屬性,畢竟是基礎篇,在大家看這個章節的時候,對於初學者來說,有許多與 JS 本質無關的方法或函式,是屬於 Node.js 特有,大家就先忘記掉所有的細節,先跟著步驟一步一步進行 node.js 開發。

因為 Node.js 的核心 module 都是使用最精簡的方式,在建立 Http 服務的時候,事實上有許多基礎的建設,我們直接使用實際例子,從一個實際開發的例子當中開始進行 Node.js 開發,以實際開發的例子帶入情境,讓大家可以更快的了解什麼是 Node.js ,直接進入使用 JS 開發後端的感覺。

主軸會以留言板為應用架構,從 Express 怎麼建立一個討論版,接著加入 Socket.io 進行網站即時化的討論。既然是實戰,再開始寫程式之前要做最重要的事情,就是規劃,所有範例的開頭都是以規劃為基礎,接著才會進行連續幾天的程式寫作。

最後應該將程式進行收斂以及修改,這些步驟我們會邊寫邊改。

Node.js 其他應用

網站開發只是 node.js 的其中一種應用,如果有時間希望多介紹一些 node.js 的其他應用,讓大家可以了解 node.js 到底可以用來作什麼事情,哪些事情可以讓 node.js 來開發,熟悉 js 的朋友也可以來開發以前所沒有想過的事情。

留言

這個網誌中的熱門文章

Vibe Coding:為什麼 Junior 更快上手?Senior 要如何追趕?

現象層面(市場觀察) 最近有篇文章討論 junior & senior 開發者在 AI 時代的角色轉變,非常熱門。 身為 Cympack 產品開發團隊 ,我們也一直關注這個議題,在閱讀這篇文章時觀察到一些有趣的現象,對我們來說,這正好反映出 AI 正在改變開發生態,junior 借力 AI 快速成長、senior 則需要在 「架構思維」 與 「多 agent 協作」 中找到新定位,其中有些啟發(insight) 可以跟大家分享。 為什麼 Junior 更容易上手 vibe coding? 心智負擔低 → Junior 沒有太多傳統 code workflow 的框架包袱 敢於嘗鮮 → Gen Z / 年輕工程師天生習慣用 prompt-based 工具、跟 LLM 互動 少「優雅程式設計」的束縛 → 不太糾結「這樣寫會不會不夠優雅」,反而 embrace 快速迭代、快速出成果 反觀 Senior: 熟悉大型系統設計 有豐富的「工程正統流程」知識(架構設計、測試策略、效能優化、設計模式) 對 AI 生成 code 的品質 / 維護性通常比較保留 部分 10+ 年資深工程師,對 prompt engineering 沒那麼熟練,還在觀望 技能面(未來的關鍵能力) Vibe coding 本質上 = prompt engineering + AI co-pilot 管理能力 能力項目 誰目前比較有優勢? Prompt 撰寫 / AI 互動 Junior 較強(熟悉 chat-based 流程) 系統設計 / 架構把關 Senior 較強 AI 生成 code 驗證 / Bug 察覺能力 Senior 較強(能看出潛在問題) 快速疊代 / Hackathon 式開發 Junior 較強 長期維護性 / 穩定性 Senior 較強 總結 Junior 確實更快適應 vibe coding,並且更習慣以 「chat-based coding」 的工作流開發。 Senior 擁有驗證 AI 產物與系統設計的深度能力,但若不主動練習 vibe coding,長期會逐漸落後於新一波開發潮流。 就如同在 GAI 技術年會分享,希望帶給各位的感受, 『與 AI 協...

Vibe Coding 協作到自建 Dev Agent?從 Claude / Codex 到 OpenHands

過去一年,越來越多工程師開始 把 AI 真正帶進工作流程 。從一開始用 ChatGPT、Claude 來問語法問題,到後來很多人愛上 Cursor,直接在編輯器裡讓 AI 幫忙改 code、補 test case、甚至自動整理 PR。這樣的開發體驗,已經大大改變了我們寫程式的方式。 更現實的是,在很多企業內部、政府單位、或涉及機密資料的專案裡, 其實根本不能直接用 Cursor 或雲端 LLM 工具。   畢竟這些服務通常會把資料傳到雲端模型做處理,萬一專案裡有未公開的技術、敏感客戶資料,或是受限於法規 (像金融、醫療、政府標案) ,直接用雲端 AI 工具就會踩 紅線 。  因此,許多團隊反而更希望 「自己架一套 Dev Agent」 ,可以在內網執行,資料完全掌握在自己手上,該整合的內部工具、該讀的私有 repo、該串的 CI/CD pipeline,全部客製化、安全可控。 這時候,像 OpenHands 這樣的開源 Dev Agent 框架就特別有價值。它的出發點不是單純的 AI 助手,而是讓你能夠打造出一個真的可以跑在自己環境裡、可以理解整個開發流程的 AI 工程師。從建置到部署,從 CLI 操作到瀏覽器查詢, 從多檔案編輯到自動測試,全部都能自己完成,甚至還能針對不同專案調整專屬的工作流。 對很多開始探索 AI 協作開發的團隊來說,這是一條 從 「AI 幫你寫一段程式」,走向「AI 幫你解決一整個任務」 的進化路徑。而且,還是在可控、可自定義、安全的環境裡完成的。 🧩 主要概述 OpenHands 是由 All‑Hands AI 開發的開源「軟體開發代理人平台」,能模仿人類工程師從建立程式、修改程式碼、執行指令,到瀏覽網頁、呼叫 API……等一整套開發流程 它提供雲端(OpenHands Cloud)與本地 Docker 運行版本,用戶能配置 LLM(如 Claude、OpenAI、Gemini…) 📚 核心特性與怎麼使用 代理人的工具能力 支援代碼編輯、命令行、執行環境、網頁瀏覽、API 呼叫—接近人類開發者完整技能。其中 OpenHands Cloud 版本提供 $50 試用額度讓大家方便使用,又或者如果自己本機有 docker 的話,可以自己Local 版本透過 Docker 自架環境。 ...

Google Gemini 全端 AI Agent 快速入門 - 打造「思考」的 AI 助理

一套從搜尋、反思到輸出的全端 AI 代理人範例,讓你看懂什麼叫 Research Agent 在 AI 工具百家爭鳴的今天,大家都在問一個問題: 「我能不能不只問 AI 答案,而是讓它像一位助理一樣,有流程、有反思、還有出處,真正幫我完成一件事?」 Google 最近釋出了一個相當具有指標意義的開源專案 gemini-fullstack-langgraph-quickstart ,正是為了解這個問題而誕生。 這套系統到底是什麼? 這個範例不是傳統 Chatbot,而是展示一個完整的 AI research agent : 它會根據使用者的提問,自動發想搜尋關鍵字、查資料、整合重點,最後給出答案還附上引用來源。背後的邏輯設計得非常扎實,不只是能跑,更是具備可讀性、可擴展性與可商用性。 它的流程大致如下:  1. 使用者輸入問題(例如:「抖音是否影響台灣選舉?」)  2. Gemini LLM 幫你想出關鍵字(不只是照抄問題)  3. 呼叫 Google Search API 抓資料   4. LangGraph 控制流程 → 判斷資料夠不夠 → 若不足,自動補查  5. 整合最終答案,並產生 citation(來源說明) 你可以想像這就像一位實習助理幫你寫報告, 不只輸出一段內容,而是會 去查、會判斷、會補資料,而且說明「我為什麼這樣說」 。 LangGraph 是什麼角色? LangGraph 就是整個 Agent 背後的控制系統 。 用白話講,它幫你定義 AI 每一步要幹嘛、遇到什麼狀況該走哪條路、要不要反思、要不要再查,甚至可以定義條件邏輯與資料流動。 這就不像寫一個單純的 Chat API,而是比較像「把一個流程圖變成可以跑的程式」。 對工程師來說,它提供了從 prompt 到流程控制的設計彈性;對產品設計來說,它讓 AI 有了 「多步驟任務執行」 的能力。 技術架構與使用方式 這整套系統是 Fullstack 架構,前後端都幫你整好了,技術選型也非常實用:   前端:Vite + React + TailwindCSS + Shadcn UI  後端:FastAPI + LangGraph...