<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Cursor｜林鼎淵 Dean Lin</title>
    <link>https://deanlin.net/tags/cursor/</link>
    <image><url>https://deanlin.net/images/author_hu_aa256fc934e9a932.jpg</url><title>Cursor｜林鼎淵 Dean Lin</title><link>https://deanlin.net/tags/cursor/</link><width>144</width><height>144</height></image>
    <description>林鼎淵（Dean Lin）的部落格：生成式 AI 企業內訓講師、外商資安公司軟體專家、7 本書作者。400 多篇文章用白話分享生成式 AI 實戰、Claude Code 與 Vibe Coding 教學、團隊合作與職場成長。</description>
    <generator>Hugo</generator>
    <language>zh-tw</language>
    <copyright>© 2020–2026 林鼎淵 Dean Lin</copyright>
    <lastBuildDate>Sat, 18 Oct 2025 15:47:32 +0800</lastBuildDate>
    <atom:link href="https://deanlin.net/tags/cursor/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cursor 教學：Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程</title>
      <link>https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/</link>
      <pubDate>Sat, 18 Oct 2025 15:47:32 +0800</pubDate>
      <guid>https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>AI 實戰</category>
      <description>如果你想嘗試 Vibe Coding，這是一隻讓「開始」變容易，「想法」有成果的影片。</description>
      <media:content url="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-og_hu_3581f7e197b32ff0.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>如果你想嘗試 Vibe Coding，這是一隻讓「開始」變容易，「想法」有成果的影片。</p>
<p>一開始會分享與 <strong>AI 釐清需求，討論出產品規格的技巧；</strong>並說明請 AI 撰寫程式前，我會如何<strong>設計專案的規則</strong>，讓 AI Agent 撰寫程式時，有參考的依據。</p>
<p>在準備好專案的規格與規則後，我才會讓 <strong>AI Agent 開始動手寫程式、完成專案</strong>。</p>
<p>但程式完成，不代表結果符合預期；你可能會遇到<strong>錯誤訊息、外觀破版，或是想要新增更多功能。</strong>這邊也會跟大家示範，可以如何引導 AI，讓專案更加完整。</p>
<p>在最後會分析整個專案架構，帶大家了解 <strong>AI Agent 到底幫我們做了哪些事；</strong>並透過 <strong>GitHub Pages 發布專案</strong>，讓你完成的網頁可以直接分享給朋友。</p>
<blockquote>
<p>建議搭配影片觀看實際的操作步驟。</p>
</blockquote>
<div class="yt" data-yt="wOnjdSDt-8A" data-title="【Cursor 教學】Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程 #spec #git #nodejs #deploy #ai #sdd">
  <a class="yt-link" href="https://www.youtube.com/watch?v=wOnjdSDt-8A" target="_blank" rel="noopener" aria-label="播放影片：【Cursor 教學】Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程 #spec #git #nodejs #deploy #ai #sdd">
    <img src="https://i.ytimg.com/vi/wOnjdSDt-8A/hqdefault.jpg" alt="" width="480" height="360" loading="lazy" decoding="async">
    <span class="yt-play" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false"><path d="M8 5.2v13.6L19 12z"/></svg></span>
    <span class="yt-title">【Cursor 教學】Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程 #spec #git #nodejs #deploy #ai #sdd</span>
  </a>
</div>

<figure class="figure"><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-01.webp" width="1400" height="788" alt="Cursor 教學：Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程（圖 2）" loading="lazy" decoding="async">
  <figcaption><a href="https://youtu.be/wOnjdSDt-8A">https://youtu.be/wOnjdSDt-8A</a></figcaption>
</figure>

<blockquote>
<p>第一次接觸 Cursor 與 Vibe Coding 的朋友，可以先參考下面的文章：</p>
<p>➤ <a href="https://deanlin.net/blog/202509/cursor-getting-started/">Cursor 教學：入門到實戰，用 AI Agent 自動化你的工作流！</a></p>
<p>➤ <a href="https://deanlin.net/blog/202509/cursor-productivity-extensions/">Cursor 教學：安裝 3 款讓 Vibe Coding 效率翻倍的工具！用「個人形象網站」實戰演練</a></p>
</blockquote>
<hr>
<h2 class="h-nomark" id="-釐清需求生成專案規格">① 釐清需求，生成專案規格<a class="h-anchor" href="#-%e9%87%90%e6%b8%85%e9%9c%80%e6%b1%82%e7%94%9f%e6%88%90%e5%b0%88%e6%a1%88%e8%a6%8f%e6%a0%bc" aria-label="這個段落的連結"></a></h2>
<p>我覺得 Vibe Coding 的目的，是要在短時間實踐你腦中的靈感，或解決現實生活遇到的痛點。</p>
<h3 id="-最小可行性方案">最小可行性方案<a class="h-anchor" href="#-%e6%9c%80%e5%b0%8f%e5%8f%af%e8%a1%8c%e6%80%a7%e6%96%b9%e6%a1%88" aria-label="這個段落的連結"></a></h3>
<p>儘管每個人想完成的專案大小不同，但建議大家先釐清目標的「最小可行性方案」</p>
<p>把想要一口氣搞定大型專案的想法，從腦中拿掉；否則最終產生的結果，要馬不會動，要馬問題一堆。</p>
<p>後續反而要花更多的時間，一一排除這些問題。</p>
<h3 id="-製作純前端網頁">製作純前端網頁<a class="h-anchor" href="#-%e8%a3%bd%e4%bd%9c%e7%b4%94%e5%89%8d%e7%ab%af%e7%b6%b2%e9%a0%81" aria-label="這個段落的連結"></a></h3>
<p>同時建議沒有程式背景的朋友，可以把「純前端網頁」，也就是這篇文章的範例，當成第一個 Vibe Coding 專案。</p>
<p>因為不涉及後端、資料庫，所以比較沒有資訊安全、隱私外洩的問題。</p>
<p>而且完成後可以直接把網頁分享給朋友，非常有成就感。</p>
<h3 id="-真的會用到的工具">真的會用到的工具<a class="h-anchor" href="#-%e7%9c%9f%e7%9a%84%e6%9c%83%e7%94%a8%e5%88%b0%e7%9a%84%e5%b7%a5%e5%85%b7" aria-label="這個段落的連結"></a></h3>
<p>另外專案的目標，最好設定為自己「真的會用到」的工具。</p>
<p>像大家現在看我上面的 YT 影片，可能覺得我侃侃而談，講得流暢不卡詞。</p>
<p>這不是因為我有多厲害，而是因為面前有一個提詞器；準備好逐字稿後，我只要錄影時照著念就好了。</p>
<p>一開始我是使用網路上，其他人分享的線上提詞器；但免費的廣告一堆，付費的又塞了一堆用不到的功能。</p>
<p>既然如此，我乾脆直接用 Vibe Coding 寫一款完全符合自己使用需求的提詞器，同時也讓大家免費使用。</p>
<h3 id="-新增空資料夾來開始專案">新增空資料夾，來開始專案<a class="h-anchor" href="#-%e6%96%b0%e5%a2%9e%e7%a9%ba%e8%b3%87%e6%96%99%e5%a4%be%e4%be%86%e9%96%8b%e5%a7%8b%e5%b0%88%e6%a1%88" aria-label="這個段落的連結"></a></h3>
<p>我們要先透過討論釐清這個網站需要有的功能；因此這邊不使用 AI Agent，而是先切換到 Ask 的模式來討論。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-02.webp" width="947" height="548" alt="新增空資料夾，來開始專案（圖 2）" loading="lazy" decoding="async"></p>
<pre tabindex="0"><code>我想要設計一個「純前端」的「提詞器」網頁
想要以「最小可行性方案 MVP」來進行設計
請從實際使用者的角度，將功能依據「必要、次要」的方式來分類
並告訴我使用者體驗最佳的操作流程
</code></pre><p>此時你會得到 AI 初步的規劃建議，如果你對結果不滿意，可以繼續討論。</p>
<p>假使覺得這個規劃可以接受，就可以把它轉換成方便網頁工程師理解的需求規格。</p>
<pre tabindex="0"><code>請扮演專業的 UI/UX 設計師，根據上面的討論
用下面的格式，回傳「具體、可執行」的網頁設計規格。
目標是幫助前端工程師能依據描述直接開始開發，內容需具備視覺與互動細節。

輸出格式：
# [頁面名稱]
- 功能簡述：（一句話概述頁面目的）
- 色系搭配：（主色、輔色、背景色、按鈕色）

## [由上而下列出使用元素]
請依畫面垂直順序列出元件，格式如下：
- 元件名稱（如：頂部導覽列 / 按鈕 / Banner 區塊）
  - 顏色：
  - 寬度：
  - 高度：
  - 字型大小與樣式（如有文字）：
  - 功能說明（該元件的目的）：
  - 若為[按鈕] → 說明觸發任務（例：「送出表單」「切換主題」）
  - 若為[功能按鍵] → 說明使用方式（例：「滑過顯示選單」「長按複製」）

⚠️ 請只輸出上述格式內容，不要附加分析、理由或額外說明。
</code></pre><p>透過這個提示詞，你就會得到一份非常詳盡的規格：</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-03.webp" width="947" height="548" alt="新增空資料夾，來開始專案（圖 3）" loading="lazy" decoding="async"></p>
<p>接下來切換成 Agent 模式，請他將前面對話的內容彙整成一個 Markdown 格式的 Prompt，儲存到專案「idea」的資料夾中。</p>
<pre tabindex="0"><code>將上面對話的結論彙整成 Markdown 格式的 Spec
請儲存到專案根目錄的「idea」資料夾中（若無自動建立），以好辨識的英文命名檔案
還不需要實作
</code></pre><p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-04.webp" width="947" height="548" alt="新增空資料夾，來開始專案（圖 4）" loading="lazy" decoding="async"></p>
<p>之所以這麼做，就是產生一個<strong>可以讓我們手動編輯細節的規格文件</strong>，而且後續開發時可以回顧專案的設計。</p>
<p>儘管相關訊息可以從過去的對話找到，但相信我，你幾乎不會翻過去的對話內容。</p>
<blockquote class="pullquote"><p>儘管我們可以使用 AI Agent 模式，讓 AI 直接寫程式；但我更建議大家先討論出具體、明確的專案框架後，再請 AI 做事。</p>
</blockquote>
<p>近幾年流行一個名詞，叫做 SDD（Specification-Driven Development），也就是規格驅動開發</p>
<p>比如今天的範例，就是用規格驅動 AI 開發，當目標足夠明確、解決的問題足夠具體時，你對生成的結果才有較高的掌握度，Vibe Coding 的成功率才會上升。</p>
<p>如果你在想這些步驟會不會花太多時間。</p>
<blockquote class="pullquote"><p>我可以用十多年的開發經驗跟你保證，如果初期沒寫好文件，日後要花好幾倍的時間去反覆修改。</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="-設計規則讓-ai-知道做事邏輯">② 設計規則，讓 AI 知道做事邏輯<a class="h-anchor" href="#-%e8%a8%ad%e8%a8%88%e8%a6%8f%e5%89%87%e8%ae%93-ai-%e7%9f%a5%e9%81%93%e5%81%9a%e4%ba%8b%e9%82%8f%e8%bc%af" aria-label="這個段落的連結"></a></h2>
<p>今天的範例為「前端網頁」，可以只用簡單的 HTML、CSS、JavaScript 來完成。</p>
<p>但為了讓大家對「專案」有更具體的概念，所以我以三大前端框架 Vue、React、Angular 做示範。</p>
<p>在每個框架下，其實都還有各自的元件庫可以使用</p>
<ul>
<li><strong>Vue</strong>：Element Plus、Vuetify、Naive UI</li>
<li><strong>React</strong>：Ant Design、Material UI、Chakra UI</li>
<li><strong>Angular</strong>：Angular Material、NG-ZORRO、PrimeNG</li>
</ul>
<p>如果你對這些框架不熟悉，建議你可以先挑一個（ex: <strong>React + Material UI</strong>），未來 Vibe Coding 就直接指定他。</p>
<p>之所以這麼做，是因為<strong>每個框架與元件庫會遇到的坑都不一樣</strong>，假使每次都用不同的框架來製作專案。</p>
<p><strong>那可能每個坑都得走一遍，這是一件非常沒有效率的事情。</strong></p>
<h3 id="-建立專案的-rules">建立專案的 Rules<a class="h-anchor" href="#-%e5%bb%ba%e7%ab%8b%e5%b0%88%e6%a1%88%e7%9a%84-rules" aria-label="這個段落的連結"></a></h3>
<p>接下我們要去建立專案的 Rules，讓他製作網站時知道要依循什麼規則。</p>
<p>點擊右上角的設定，選擇「Rules &amp; Memories」，在 Project Rules 點擊新增。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-05.webp" width="947" height="548" alt="建立專案的 Rules（圖 5）" loading="lazy" decoding="async"></p>
<p>檔名我就直接打「spec」，然後選擇 Always Apply 讓他每次對話都會觸發。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-06.webp" width="947" height="548" alt="建立專案的 Rules（圖 6）" loading="lazy" decoding="async"></p>
<p>然後貼上設計的規則，在規則的部分，使用 Markdown 的語法撰寫就好，大家有興趣可以自行客製化，我只是提供一個基礎的範本。</p>
<pre tabindex="0"><code>## 使用的框架與元件庫
- 框架: React + Vite
- Node 版本: 加 .nvmrc
- 元件庫: Material UI

## 注意事項
- 請先搜尋網路上類似工具使用的套件
- 需考量 RWD 響應頁面
- 建立 .gitignore 來排除指定檔案上傳（ex: node_modules）

## README
- 專案介紹、功能列表、需求（Node 版本）、安裝與啟動、部署步驟、授權

## GitHub Pages 部署
- 使用 GitHub Actions
- 僅 master branch 觸發
</code></pre><hr>
<h2 class="h-nomark" id="-讓-ai-agent-參考規格規則開發專案">③ 讓 AI Agent 參考規格、規則開發專案<a class="h-anchor" href="#-%e8%ae%93-ai-agent-%e5%8f%83%e8%80%83%e8%a6%8f%e6%a0%bc%e8%a6%8f%e5%89%87%e9%96%8b%e7%99%bc%e5%b0%88%e6%a1%88" aria-label="這個段落的連結"></a></h2>
<p>在專案的需求規格以及規則都設計好後，接下來就可以用 AI Agent 設計初版網頁了。</p>
<p>建議開一個新對話，選擇 Agent 模式，你直接跟他說：</p>
<pre tabindex="0"><code>請參考「idea」的 SPEC，在專案根目錄新增「teleprompter-app」來實作專案
</code></pre><p>稍等一段時間，AI Agent 就會根據 SPEC 把這個網站製作出來。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-07.webp" width="947" height="548" alt="③ 讓 AI Agent 參考規格、規則開發專案（圖 7）" loading="lazy" decoding="async"></p>
<p>如果他有自動幫你運行專案，你可以先請他關閉：</p>
<pre tabindex="0"><code>幫我關閉專案
</code></pre><p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-08.webp" width="947" height="548" alt="③ 讓 AI Agent 參考規格、規則開發專案（圖 8）" loading="lazy" decoding="async"></p>
<p>這是因為在專案完成後，建議大家用新的 Cursor 視窗來來開啟這個專案，因為前面專案的規格與規則是為了產生這個專案而寫的，專案產生完畢後，繼續使用原有的規格、規則，可能會導致 AI 混亂。</p>
<p>另外在安裝專案套件與啟動專案這塊，你可以直接跟 AI 說：</p>
<pre tabindex="0"><code>幫我安裝套件並啟動專案
</code></pre><p>不過我是更建議大家打開 package.json 這個檔案，裡面有專案的各種資訊，像 scripts 這塊就是你可以透過 npm 執行的各種指令。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-09.webp" width="947" height="548" alt="③ 讓 AI Agent 參考規格、規則開發專案（圖 9）" loading="lazy" decoding="async"></p>
<p>像是基礎的開發啟動是 <code>npm run dev</code>、想要建立靜態檔用 <code>npm run build</code> 。</p>
<p>如果想安裝套件，就用 <code>npm install</code>，他會安裝 <code>dependencies</code> 與 <code>devDependencies</code> 所列出的套件。</p>
<p>這邊我們打開終端機，在下面貼上指令「npm run dev」來啟動專案（具體指令請參考 scripts）</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-10.webp" width="947" height="548" alt="③ 讓 AI Agent 參考規格、規則開發專案（圖 10）" loading="lazy" decoding="async"></p>
<p>但提醒大家，不管我們前期的規格對功能、外型描述得多仔細；他完成的結果還是有可能會不如預期（比如影片範例就是一片空白）。</p>
<figure class="figure"><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-11.webp" width="947" height="548" alt="可以按下 F12 查看主控台是否有錯誤訊息" loading="lazy" decoding="async">
  <figcaption>可以按下 F12 查看主控台是否有錯誤訊息</figcaption>
</figure>

<blockquote class="pullquote"><p><strong>別忘記，生成式 AI 的結果本來就是充滿隨機性的。</strong></p>
</blockquote>
<p>這些是我為何建議先完成最小可行性產品，因為範圍小，所以釐清錯誤、調整內容相對方便。</p>
<blockquote class="pullquote"><p><strong>一但範圍大了，你連怎麼調整都會沒有頭緒。</strong></p>
</blockquote>
<p>所以千萬別想著靠一個指令就生成一套系統，因為光生成一個簡單的網頁都會遇到很多問題了。</p>
<hr>
<h2 class="h-nomark" id="-解決問題優化專案新增功能">④ 解決問題、優化專案、新增功能<a class="h-anchor" href="#-%e8%a7%a3%e6%b1%ba%e5%95%8f%e9%a1%8c%e5%84%aa%e5%8c%96%e5%b0%88%e6%a1%88%e6%96%b0%e5%a2%9e%e5%8a%9f%e8%83%bd" aria-label="這個段落的連結"></a></h2>
<p>以前端網頁來說，問題通常分成兩大塊：</p>
<ul>
<li><strong>外型</strong>：你可能覺得頁面的版型、顏色、按鈕大小不符合你的預期</li>
<li><strong>功能</strong>：有些操作起來不符合你的預期</li>
</ul>
<h3 id="-解決問題">解決問題<a class="h-anchor" href="#-%e8%a7%a3%e6%b1%ba%e5%95%8f%e9%a1%8c" aria-label="這個段落的連結"></a></h3>
<p>比如我想要讓提詞器播放順利，可以這麼說：</p>
<pre tabindex="0"><code>提詞器進入全螢幕後遇到以下問題：
1. 第二次點擊播放時，進度條會直接到底
2. 觸控板滑動時，頁面滑動與滑鼠感受不同
3. 滑到中間位置時按播放，感覺是更從前面的位置開始
</code></pre><h3 id="-優化專案">優化專案<a class="h-anchor" href="#-%e5%84%aa%e5%8c%96%e5%b0%88%e6%a1%88" aria-label="這個段落的連結"></a></h3>
<p>另外這個網頁有一些快捷鍵，我希望具體的使用方式可以放在首頁輸入框下方，這邊我就貼上一個比較模糊的指令，跟他說：</p>
<pre tabindex="0"><code>在首頁「輸入框」下方，新增「快捷鍵」提示的區塊，說明快捷鍵功能，請使用明顯的色系搭配
</code></pre><p>這個 Prompt 我就沒有指定具體色系、寬度、高度，由 AI 自動判斷。</p>
<p>等 AI 完成實作後，如果你不滿意，可以透過後續引導來微調細節。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-12.webp" width="947" height="548" alt="優化專案（圖 12）" loading="lazy" decoding="async"></p>
<h3 id="-新增功能">新增功能<a class="h-anchor" href="#-%e6%96%b0%e5%a2%9e%e5%8a%9f%e8%83%bd" aria-label="這個段落的連結"></a></h3>
<p>這邊我再新增一個功能來做示範，比如我希望貼上文字後，能有中文、英文、符號的字數統計，以及總共行數：</p>
<pre tabindex="0"><code>在首頁「輸入框」下方，增加「即時字數統計」的功能，在 1 列分 3 塊顯示
- 中文字數、中文標點符號數
- 英文單詞數、英文標點符號數
- 總共行數
希望文字有對應顏色搭配方便辨識
</code></pre><p>等 AI 搞定後，我們回到網頁，然後貼上文字，初步確認計算是否符合需求。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-13.webp" width="947" height="548" alt="新增功能（圖 13）" loading="lazy" decoding="async"></p>
<p>其實這個提詞器還有很多細節可以優化，這邊給大家看我最後調整了哪些細節：</p>
<ul>
<li>在首頁的地方，我增加了自己社群的資訊</li>
<li>把「字數統計、快捷鍵說明」這兩個區塊都改成一行顯示，減少空間上的浪費</li>
<li>進入全螢幕畫面後，我把原本置中的內容改成靠左以符合我的習慣</li>
<li>因為錄製影片時前面會有腳架，所以我設計了間隔，讓文字不要被腳架擋住</li>
<li>設計了分段的功能，讓我可以調整講話節奏</li>
<li>右上角多了一個「倒數計時器」，讓我知道現在的稿子會講多久</li>
</ul>
<div class="gallery-row cols-2">

<figure class="figure"><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-14.webp" width="947" height="548" alt="新增功能（圖 14）" fetchpriority="high" decoding="async">
</figure>

<figure class="figure"><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-15.webp" width="947" height="548" alt="Cursor 教學：Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程（圖 2）" loading="lazy" decoding="async">
  <figcaption><a href="https://deanlin.net/teleprompter-app">https://deanlin.net/teleprompter-app</a></figcaption>
</figure>


</div>

<blockquote class="pullquote"><p>我覺得 Vibe Coding 的魅力不是一鍵搞定，而是你可以根據實際需求快速迭代產品，但前提是你知道自己要的是什麼。</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="-了解-ai-生成的專案架構">⑤ 了解 AI 生成的專案架構<a class="h-anchor" href="#-%e4%ba%86%e8%a7%a3-ai-%e7%94%9f%e6%88%90%e7%9a%84%e5%b0%88%e6%a1%88%e6%9e%b6%e6%a7%8b" aria-label="這個段落的連結"></a></h2>
<p>接下來讓我們來瀏覽一下專案資料夾，了解 AI 幫我們做了哪些事情：</p>
<h3 id="-packagejson">package.json<a class="h-anchor" href="#-packagejson" aria-label="這個段落的連結"></a></h3>
<ul>
<li>scripts 這裡，有專案啟動、建立靜態資源的指令</li>
<li>dependencies、devDependencies 則是專案使用套件的版本資訊</li>
</ul>
<p>未來隨著專案規模擴大，你可能會遇到框架與套件、套件與套件之間相容性的問題，到時可能就會有鎖定版本、升降版本的需求，原則上就是在這邊調整的。</p>
<h3 id="-node_modules">node_modules<a class="h-anchor" href="#-node_modules" aria-label="這個段落的連結"></a></h3>
<p>「dependencies、devDependencies」列出的套件，都會被安裝到 node_moodules 的資料夾當中。</p>
<p>以 Node.js 的專案來說，通常體積最大的就是 node_moodules 這個資料夾。</p>
<p>因為套件版本已經有 package.json 控管，所以我們並不會把 node_moodules 上傳到 Git。</p>
<p>至於如何把他從 Git 版控中移除，就要談到 .gitignore 這個檔案了</p>
<h3 id="-gitignore">.gitignore<a class="h-anchor" href="#-gitignore" aria-label="這個段落的連結"></a></h3>
<p>這個檔案是用來告訴 Git 哪些檔案或資料夾不該被版本控制追蹤：</p>
<ul>
<li>MacOS 與 Windows 的系統暫存檔（.DS_Store/Thumbs.db）</li>
<li>儲存專案套件的 node_modules 資料夾</li>
<li>自動生成的結果，如 build 這類資料夾</li>
<li>像 .env 這種會儲存個人設定與密鑰的設定檔</li>
</ul>
<h3 id="-readme">README<a class="h-anchor" href="#-readme" aria-label="這個段落的連結"></a></h3>
<p>這份文件會包含專案簡介、功能列表、安裝環境需求等資訊，可以幫助你快速掌握這個專案的重點資訊。</p>
<hr>
<h2 class="h-nomark" id="-用-github-pages-免費發布網頁">⑥ 用 GitHub Pages 免費發布網頁<a class="h-anchor" href="#-%e7%94%a8-github-pages-%e5%85%8d%e8%b2%bb%e7%99%bc%e5%b8%83%e7%b6%b2%e9%a0%81" aria-label="這個段落的連結"></a></h2>
<p>確認專案都符合需求後，我們可以透過 GitHub Pages 發布專案，具體的執行流程可以參考專案中 「.github/workflow」 底下的 「deploy.yml」 設定檔。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-16.webp" width="947" height="548" alt="⑥ 用 GitHub Pages 免費發布網頁（圖 16）" loading="lazy" decoding="async"></p>
<p>在 GitHub 建立 Repository 後，會根據這邊設計的流程來發布專案。</p>
<h3 id="-建立-repository">建立 Repository<a class="h-anchor" href="#-%e5%bb%ba%e7%ab%8b-repository" aria-label="這個段落的連結"></a></h3>
<p>Repository 名稱輸入「teleprompter-app」，因為我們這個專案預計要發佈到 GitHub Pages，所以選擇 Public。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-17.webp" width="947" height="548" alt="建立 Repository（圖 17）" loading="lazy" decoding="async"></p>
<h3 id="-把電腦專案與-github-repository-連接">把電腦專案與 GitHub Repository 連接<a class="h-anchor" href="#-%e6%8a%8a%e9%9b%bb%e8%85%a6%e5%b0%88%e6%a1%88%e8%88%87-github-repository-%e9%80%a3%e6%8e%a5" aria-label="這個段落的連結"></a></h3>
<p>在終端機輸入 <code>git init</code> 來初始化專案 git。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-18.webp" width="947" height="548" alt="把電腦專案與 GitHub Repository 連接（圖 18）" loading="lazy" decoding="async"></p>
<p>然後回到網頁，複製第一行 <code>git add…</code> 貼到專案的終端機，這樣我們就可以把電腦的專案與 GitHub 上面的專案連結。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-19.webp" width="947" height="548" alt="把電腦專案與 GitHub Repository 連接（圖 19）" loading="lazy" decoding="async"></p>
<h3 id="-確認有更新到-github-repository">確認有更新到 GitHub Repository<a class="h-anchor" href="#-%e7%a2%ba%e8%aa%8d%e6%9c%89%e6%9b%b4%e6%96%b0%e5%88%b0-github-repository" aria-label="這個段落的連結"></a></h3>
<p>點擊提交，就會在自己的電腦記錄這個變更，但如果想更新到雲端，你需要點擊 Push 才會成功喔！</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-20.webp" width="947" height="548" alt="確認有更新到 GitHub Repository（圖 20）" loading="lazy" decoding="async"></p>
<p>Push 後我們回到 GitHub 網頁，刷新一下頁面，如果能看到專案的內容，就代表你成功上傳專案了！</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-21.webp" width="947" height="548" alt="確認有更新到 GitHub Repository（圖 21）" loading="lazy" decoding="async"></p>
<h3 id="-到-actions-分頁查看部署的狀況">到 Actions 分頁查看部署的狀況<a class="h-anchor" href="#-%e5%88%b0-actions-%e5%88%86%e9%a0%81%e6%9f%a5%e7%9c%8b%e9%83%a8%e7%bd%b2%e7%9a%84%e7%8b%80%e6%b3%81" aria-label="這個段落的連結"></a></h3>
<p>成功的話會有綠色勾勾，失敗則是紅色叉叉，會需要點進去釐清具體的錯誤原因。</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-22.webp" width="947" height="548" alt="到 Actions 分頁查看部署的狀況（圖 22）" loading="lazy" decoding="async"></p>
<p>錯誤通常都是因為：</p>
<ul>
<li>靜態資源沒找到（static resource）</li>
<li>語法格式錯誤（line error）</li>
<li>套件相依問題（npm dependency）</li>
</ul>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-23.webp" width="947" height="548" alt="到 Actions 分頁查看部署的狀況（圖 23）" loading="lazy" decoding="async"></p>
<p>把它複製起來貼到 AI 對話框，通常都能快速釐清問題並解決。</p>
<p>如果一切順利，點擊進去就會看到這個專案的網址嚕：</p>
<p><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-24.webp" width="947" height="548" alt="到 Actions 分頁查看部署的狀況（圖 24）" loading="lazy" decoding="async"></p>
<p>之後這個專案都是使用這個網址，把它點開來，順利的話，就可以看到成品嚕～</p>
<figure class="figure"><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-25.webp" width="1400" height="1125" alt="Cursor 教學：Vibe Coding 實戰！從釐清需求到部署上線，一次搞懂完整開發流程（圖 5）" loading="lazy" decoding="async">
  <figcaption><a href="https://deanlin.net/teleprompter-app/">https://deanlin.net/teleprompter-app/</a></figcaption>
</figure>

<p>如果影片看到了這裡，可以幫我點個讚鼓勵一下，我會持續分享更多實用教學。</p>
<hr>
<h2 id="結語vibe-coding-的底層邏輯">結語：Vibe Coding 的底層邏輯<a class="h-anchor" href="#%e7%b5%90%e8%aa%9evibe-coding-%e7%9a%84%e5%ba%95%e5%b1%a4%e9%82%8f%e8%bc%af" aria-label="這個段落的連結"></a></h2>
<p>過去學程式、寫程式，是一個痛苦，且漫長的週期。</p>
<p>沒學到一定的程度，你連小程式都開發不了。</p>
<p>但現在有了 AI，即使你不會寫程式，也能透過對話的方式，一步步完成專案的建立。</p>
<p>像今天這隻影片就分享了用 Vibe Coding 從 0 到 1 的完整過程，雖然專案的規模較小，不過日後面對更大型的專案時，底層邏輯與流程也是一樣的。</p>
<p>建議大家先從小專案開始練習、熟悉開發的流程；這樣日後想設計大專案時，會更有完整的概念。</p>
<p>另外隨著專案規模擴大，功能增加，你還需要搭配一些自動化測試的工具來輔助。</p>
<p>單靠人工的方式手動測試，不但沒效率，還很容易有遺漏的測試項目。</p>
<p>而且新功能的增加，有可能會導致舊功能壞掉，<strong>如果這隻 YT 影片的按讚破 200，我會再出一隻影片。</strong></p>
<p>跟大家分享用 AI 撰寫測試程式的概念與技巧～</p>
<blockquote class="pullquote"><p>之所以製作一系列 Vibe Coding 影片，是為了避免大家踩到我遇過的「坑」。</p>
</blockquote>
<p>如果你對 AI 工具、自我成長、職涯發展感興趣，<a href="https://dean-lin.medium.com/subscribe">歡迎追蹤我</a>！我會我會持續分享新的觀點 💡</p>
<figure class="figure"><img src="https://deanlin.net/blog/202510/cursor-vibe-coding-end-to-end/images/cursor-vibe-coding-end-to-end-26.webp" width="1400" height="914" alt="林鼎淵著作《工程師下班有約：企業內訓講師帶你認清職涯真相！》" loading="lazy" decoding="async">
  <figcaption><a href="https://www.tenlong.com.tw/products/9786264142083">https://www.tenlong.com.tw/products/9786264142083</a></figcaption>
</figure>

<a class="linkcard" href="https://deanlin.net/categories/ai/">
  <span class="lc-body">
    <span class="lc-title">AI 實戰</span>
    <span class="lc-desc">實測生成式 AI 工具、Vibe Coding 與自動化流程的第一手心得，把 AI 變成每天都用得上的即戰力。</span>
    <span class="lc-site"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"/></svg>林鼎淵 Dean Lin</span>
  </span>
</a>

]]></content:encoded>
    </item>
    <item>
      <title>Cursor 教學：安裝 3 款讓 Vibe Coding 效率翻倍的工具！用「個人形象網站」實戰演練</title>
      <link>https://deanlin.net/blog/202509/cursor-productivity-extensions/</link>
      <pubDate>Sun, 28 Sep 2025 19:36:06 +0800</pubDate>
      <guid>https://deanlin.net/blog/202509/cursor-productivity-extensions/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>AI 實戰</category>
      <description>在這篇文章中，我會示範安裝 3 款工具，讓 Cursor AI Agent 效率直接翻倍，並以「個人形象網站」為例，完整實戰給你看！</description>
      <media:content url="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-og_hu_a51633a2c6413bdb.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>最近幫企業上 Vibe Coding 的課程時，除了請他們安裝 Cursor 外。</p>
<p>在課程中還會透過實際範例，分享哪些工具安裝後，可以提升 Vibe Coding 的效率。</p>
<p>因為其實有很多的需求，根本不需要寫程式，直接使用別人完成的套件就好。</p>
<p>你也不用煩惱該使用哪個套件，以及套件該如何使用；因為安裝好這些工具後，AI Agent 會根據你提出的需求，自行判斷這些工具使用的時機點。</p>
<blockquote>
<p>建議搭配影片觀看實際的操作步驟。</p>
</blockquote>
<div class="yt" data-yt="5DEV_K0JauQ" data-title="【Cursor 教學】安裝 3 款讓 Vibe Coding 效率翻倍的工具！用「個人形象網站」實戰演練 #python #nodejs #nvm #git #ai #vibecoding">
  <a class="yt-link" href="https://www.youtube.com/watch?v=5DEV_K0JauQ" target="_blank" rel="noopener" aria-label="播放影片：【Cursor 教學】安裝 3 款讓 Vibe Coding 效率翻倍的工具！用「個人形象網站」實戰演練 #python #nodejs #nvm #git #ai #vibecoding">
    <img src="https://i.ytimg.com/vi/5DEV_K0JauQ/hqdefault.jpg" alt="" width="480" height="360" loading="lazy" decoding="async">
    <span class="yt-play" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false"><path d="M8 5.2v13.6L19 12z"/></svg></span>
    <span class="yt-title">【Cursor 教學】安裝 3 款讓 Vibe Coding 效率翻倍的工具！用「個人形象網站」實戰演練 #python #nodejs #nvm #git #ai #vibecoding</span>
  </a>
</div>

<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-01.webp" width="1233" height="690" alt="Cursor 教學：安裝 3 款讓 Vibe Coding 效率翻倍的工具！用「個人形象網站」實戰演練（圖 1）" fetchpriority="high" decoding="async"></p>
<pre tabindex="0"><code>文章大綱

① 突破 AI Agent 限制，用 Python 自動萃取文件、網路爬蟲
② 安裝 Node.js，讓 AI 生成漂亮、專業的形象網頁
③ 加入 Git 版控，Vibe Coding 放心爆改
</code></pre><p>在這篇文章中，我會帶你一步步操作，讓你看完後也能打造出屬於自己的個人形象網站！</p>
<blockquote>
<p><a href="https://youtu.be/kVniOF36GEk">如果你是第一次接觸 Cursor，可以先看這隻影片。</a></p>
</blockquote>
<hr>
<h3 id="文章開始前先提醒一下大家">文章開始前，先提醒一下大家：<a class="h-anchor" href="#%e6%96%87%e7%ab%a0%e9%96%8b%e5%a7%8b%e5%89%8d%e5%85%88%e6%8f%90%e9%86%92%e4%b8%80%e4%b8%8b%e5%a4%a7%e5%ae%b6" aria-label="這個段落的連結"></a></h3>
<h3 id="ai-agent-的功能非常強大給他權限後不僅能自動安裝所需套件執行指令還能新增修改甚至刪除檔案因此使用時務必小心">AI Agent 的功能非常強大，給他權限後，不僅能自動安裝所需套件、執行指令，還能新增、修改甚至刪除檔案，因此使用時務必小心。<a class="h-anchor" href="#ai-agent-%e7%9a%84%e5%8a%9f%e8%83%bd%e9%9d%9e%e5%b8%b8%e5%bc%b7%e5%a4%a7%e7%b5%a6%e4%bb%96%e6%ac%8a%e9%99%90%e5%be%8c%e4%b8%8d%e5%83%85%e8%83%bd%e8%87%aa%e5%8b%95%e5%ae%89%e8%a3%9d%e6%89%80%e9%9c%80%e5%a5%97%e4%bb%b6%e5%9f%b7%e8%a1%8c%e6%8c%87%e4%bb%a4%e9%82%84%e8%83%bd%e6%96%b0%e5%a2%9e%e4%bf%ae%e6%94%b9%e7%94%9a%e8%87%b3%e5%88%aa%e9%99%a4%e6%aa%94%e6%a1%88%e5%9b%a0%e6%ad%a4%e4%bd%bf%e7%94%a8%e6%99%82%e5%8b%99%e5%bf%85%e5%b0%8f%e5%bf%83" aria-label="這個段落的連結"></a></h3>
<h2 class="h-nomark" id="-突破-ai-agent-限制用-python-自動萃取文件網路爬蟲">① 突破 AI Agent 限制，用 Python 自動萃取文件、網路爬蟲<a class="h-anchor" href="#-%e7%aa%81%e7%a0%b4-ai-agent-%e9%99%90%e5%88%b6%e7%94%a8-python-%e8%87%aa%e5%8b%95%e8%90%83%e5%8f%96%e6%96%87%e4%bb%b6%e7%b6%b2%e8%b7%af%e7%88%ac%e8%9f%b2" aria-label="這個段落的連結"></a></h2>
<p>第一個建議大家安裝的工具是 Python。</p>
<p>我們安裝 Python 不是為了寫程式，而是為了讓 AI Agent 在面對問題時，有更多的解決方案。</p>
<h3 id="-安裝-python">安裝 Python<a class="h-anchor" href="#-%e5%ae%89%e8%a3%9d-python" aria-label="這個段落的連結"></a></h3>
<p>安裝 Python 這塊，大家可以直接到<a href="http://python.org/downloads/">官網</a>，根據自己的作業系統下載安裝檔即可。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-02.webp" width="1400" height="753" alt="安裝 Python（圖 2）" loading="lazy" decoding="async"></p>
<p>安裝步驟我就不再贅述，安裝完成後，我們可以在 Cursor 打開一個新的終端機，然後輸入</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>python --version
</span></span></code></pre></div><p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-03.webp" width="741" height="181" alt="安裝 Python（圖 3）" loading="lazy" decoding="async"></p>
<p>如果有出現版號，就代表有順利安裝，接下來讓我們進入到實戰階段。</p>
<blockquote>
<p>若輸入 <code>python &ndash;version</code> 沒有反應，請改用 <code>python3 &ndash;version</code></p>
</blockquote>
<h3 id="-提取文件資訊">提取文件資訊<a class="h-anchor" href="#-%e6%8f%90%e5%8f%96%e6%96%87%e4%bb%b6%e8%b3%87%e8%a8%8a" aria-label="這個段落的連結"></a></h3>
<p>像有些人會把 Cursor 當成 RAG 的工具使用，透過他快速檢索、分析、統整資訊。</p>
<p>但他有一個痛點，就是 Cursor 只能檢索「文字檔」，比如 Markdown/txt 這類型的文件，或是 JavaScript/Python 這類的程式。</p>
<p>假如你的檔案類型是 Word/PPT/PDF，Cursor 預設是沒辦法幫你檢索的。</p>
<p><strong>但如果有安裝 Python，這一切就變成了有可能，像這邊我在資料夾放了自己的講師履歷。</strong></p>
<p>如果今天想把裡面的文件、圖片提取出來，執行下面的指令，AI Agent 就會安裝對應的套件來解析文件，並根據需求將文件儲存成對應的 Markdown 檔案。</p>
<pre tabindex="0"><code>
資料夾有 pdf/ppt/doc 等多種格式的文件，我想請你把所有文件內的「文字」取出來，並確定可以用繁體中文顯示。
並建立一個「doc」的資料夾，用 Markdown 的格式儲存，並整理文字結構，設計合適的大標、中標、小標，方便閱讀。
如果 ppt/doc 裡面有圖片，請建立一個「img」的資料夾，圖片檔的命名，前綴請使用文件檔名。
</code></pre><p>在執行這段指令後，AI Agent 就會設計執行步驟，一開始會先安裝需要的 Python 套件，設計程式來提取文件裡面的文字、圖片。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-04.webp" width="541" height="586" alt="提取文件資訊（圖 4）" loading="lazy" decoding="async"></p>
<p>稍等一下，我們就可以在「doc」與「img」資料夾中，看到文字與圖片有順利的提取出來；節省過去需要手動複製貼上的步驟。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-05.webp" width="1400" height="764" alt="提取文件資訊（圖 5）" loading="lazy" decoding="async"></p>
<p>把文字提取出來後，就可以把 Cursor 當成 RAG 工具來協助統整資料了；首先把「doc」資料夾拖到 AI 的對話框，這樣 AI 才知道他要處理的內容範圍</p>
<p>接著貼上下面的 Prompt:</p>
<pre tabindex="0"><code>我是個講師，正在準備個人形象網站的素材，內容要呈現如下資訊：
- 擅長領域: 搭配可以佐證的資訊
- 個人成就: 找出可數據化的成就，展現實力的強大
- 課程資訊: 課程主題、說明、價格、受眾、預期成果
請先建立「integrate」資料夾，並將上面提到的面向用 Markdown 格式建立，並像個善於推銷自己的 KOL 般，用自信的語氣撰寫文案
</code></pre><p>這段 Prompt 我先表明自己的身份是「講師」，要求他幫我整理出「擅長領域、個人成就、課程資訊」的資訊，以此做為「個人形象網站」的素材。</p>
<p>稍等一段時間，在「integrate」資料夾，就能看到 AI 按照需求，幫我們完成了資料的彙整。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-06.webp" width="1400" height="764" alt="提取文件資訊（圖 6）" loading="lazy" decoding="async"></p>
<h3 id="-用網頁爬蟲蒐集資訊">用網頁爬蟲蒐集資訊<a class="h-anchor" href="#-%e7%94%a8%e7%b6%b2%e9%a0%81%e7%88%ac%e8%9f%b2%e8%92%90%e9%9b%86%e8%b3%87%e8%a8%8a" aria-label="這個段落的連結"></a></h3>
<p>另外有些人會使用 AI 來蒐集網路資料，但許多網站是禁止爬蟲的。</p>
<p>這邊我打開 <a href="https://notebooklm.google.com/">NotebookLM</a> 示範給大家看，如果來源貼上用 <a href="https://chatgpt.com/s/t_68d21677946081918576092e1c2d37c1">ChatGPT 分享的對話</a>，NotebookLM 的解析是錯誤的，甚至像是 <a href="https://deanlin.net/blog/202507/afteroffice1-15-years-one-book/">Medium 這類部落格文章</a>也無法辨識</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-07.webp" width="1400" height="764" alt="用網頁爬蟲蒐集資訊（圖 7）" loading="lazy" decoding="async"></p>
<p>但如果你請 AI Agent 幫你用 Selenium 這個網路爬蟲工具，模擬真實使用者就能夠完成這項爬蟲任務了。</p>
<p>大家可以嘗試下面的指令：</p>
<pre tabindex="0"><code>先建立「crawler」資料夾，然使用 Selenium 模擬 Chrome 瀏覽器來設計爬蟲程式
取得下面 ChatGPT 分享連結的對話內容，這個網頁有反爬蟲設計，所以網頁開啟後，先等 5 秒鐘渲染元素再去抓取與 ChatGPT 的對話
https://chatgpt.com/s/t_68d21677946081918576092e1c2d37c1
抓到對話後建立「output」，將資料寫入 Markdown 檔案，檔名使用網頁標題，並優化 Markdown 格式為好閱讀的結構
</code></pre><p>這段提示詞有 2 個重點：</p>
<ul>
<li>要求 AI 使用 Selenium 模擬 Chrome 瀏覽器來設計爬蟲程式</li>
<li>提醒他網頁有反爬蟲設計，所以網頁開啟後，要先等 5 秒鐘渲染元素再去抓取與 ChatGPT 的對話</li>
</ul>
<p>稍等一段時間，在 output 的資料夾中，就能看到 Cursor 突破原有的爬蟲限制，取得與 ChatGPT 的對話內容。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-08.webp" width="1400" height="764" alt="用網頁爬蟲蒐集資訊（圖 8）" loading="lazy" decoding="async"></p>
<p>剛好透過這個範例提醒大家，雖然我們用 Vibe Coding 完成了這個爬蟲程式。</p>
<p><strong>但他的成功是建立在指令非常明確之上，如果沒有網路爬蟲的基礎概念，AI 的失敗率是非常高的。</strong></p>
<blockquote class="pullquote"><p>專業知識，是你在 AI 時代的護城河。</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="-安裝-nodejs讓-ai-生成漂亮專業的形象網頁">② 安裝 Node.js，讓 AI 生成漂亮、專業的形象網頁<a class="h-anchor" href="#-%e5%ae%89%e8%a3%9d-nodejs%e8%ae%93-ai-%e7%94%9f%e6%88%90%e6%bc%82%e4%ba%ae%e5%b0%88%e6%a5%ad%e7%9a%84%e5%bd%a2%e8%b1%a1%e7%b6%b2%e9%a0%81" aria-label="這個段落的連結"></a></h2>
<p>大多數人 Vibe Coding 的第一個作品，通常是網頁。</p>
<p>但如果你只是請 Cursor 幫你設計一個公司或是個人的形象網頁，那 AI 通常是使用簡單的 HTML 與 CSS 做基礎設計。</p>
<p><strong>但如果安裝了 Node.js，你就可以直接使用知名的前端三大框架 Vue/React/Angular 來做設計。</strong></p>
<p>這些框架生成出來的結果會更符合現代審美，未來想擴充功能時，也有豐富的套件可以直接使用。</p>
<h3 id="-安裝-nodejs">安裝 Node.js<a class="h-anchor" href="#-%e5%ae%89%e8%a3%9d-nodejs" aria-label="這個段落的連結"></a></h3>
<p>在安裝 Node.js 這塊，我建議大家透過 NVM 來安裝</p>
<ul>
<li><a href="https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-updating">Mac 執行指令就可以安裝了</a></li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
</span></span></code></pre></div><ul>
<li><a href="https://github.com/coreybutler/nvm-windows/releases">但如果你是 Windows，就需要下載 exe 檔來安裝</a></li>
</ul>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-09.webp" width="1075" height="451" alt="安裝 Node.js（圖 9）" loading="lazy" decoding="async"></p>
<p>因為 Node.js 有多個版本，而 NVM 這款工具可以幫你快速在不同版本間切換、更新。</p>
<p>nvm 安裝完成後，開啟終端機輸入 <code>nvm -v</code>，確認有成功安裝：</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-10.webp" width="767" height="221" alt="安裝 Node.js（圖 10）" loading="lazy" decoding="async"></p>
<p>接下來輸入 <code>nvm install &ndash;lts</code> 來安裝最新版本的 Node.js</p>
<p>安裝完畢後，輸入 <code>node -v</code> 便可檢視剛剛安裝與現在使用的對應版本</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-11.webp" width="767" height="229" alt="安裝 Node.js（圖 11）" loading="lazy" decoding="async"></p>
<p>完成上述步驟後，接下來就可以開始製作網頁了。</p>
<h3 id="-生成個人形象網頁">生成個人形象網頁<a class="h-anchor" href="#-%e7%94%9f%e6%88%90%e5%80%8b%e4%ba%ba%e5%bd%a2%e8%b1%a1%e7%b6%b2%e9%a0%81" aria-label="這個段落的連結"></a></h3>
<p>在前面，已經透過 AI 從 Word/PDF/PPT 裡面取出了個人資訊與相關照片，接下來我就直接示範如何用 Cursor 生成個人形象網頁的初版。</p>
<blockquote>
<p>提醒大家，照片取出來後，建議給予分類、命名，這樣 AI 生成的結果會更好。</p>
</blockquote>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-12.webp" width="1024" height="644" alt="生成個人形象網頁（圖 12）" loading="lazy" decoding="async"></p>
<p>下面我們把生成網頁，要參考的文字、圖片資料夾拖到與 AI 的對話，然後貼上下面指令：</p>
<pre tabindex="0"><code>建立一個「personal-website」資料夾，我想要用 React 框架，設計一個個人形象網頁。
網頁一定要呈現的頁面如下：
- 頂部: 有個人形象照與基礎資訊
- 擅長領域: 切換不同領域時更換對應顏色
- 個人成就: 加上互動效果與圖片
- 課程資訊: 以卡片顯示，含說明與價格
- 聯絡洽詢: 頁面最下方
設計重點:
- RWD 響應式設計
- 有一致的色系規範
- 搭配對應圖片（請複製到專案並用相對路徑）
- 互動效果與視覺化呈現（例如 hover、切換）
整體水準:
- 高度專業感
- 資訊重點清晰
- 圖片長寬比例需考量版面配置
</code></pre><p>這段指令除了一開始有指定使用的<strong>前端框架為 React </strong>外，下面有分成 3 塊指引：</p>
<ol>
<li>首先我跟他說明頁面要呈現的資訊</li>
<li>接著提醒設計要注意的重點</li>
<li>最後則是放上一些額外的需求</li>
</ol>
<p>然後稍等一段時間，個人形象網頁的初版就完成了：</p>
<div class="gallery-row cols-2">

<figure class="figure"><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-13.webp" width="1400" height="713" alt="生成個人形象網頁（圖 13）" fetchpriority="high" decoding="async">
</figure>

<figure class="figure"><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-14.webp" width="1400" height="713" alt="生成個人形象網頁（圖 14）" loading="lazy" decoding="async">
</figure>


</div>

<blockquote class="pullquote"><p>但還是要提醒大家，AI 只是加速製作網頁的過程，你要自己去確認細節是否符合自己的需求。</p>
</blockquote>
<p>像是基本的文字描述、圖片擺放是否恰當，以及 RWD 的設計是否完善等等。</p>
<p><strong>如果不知道在哪新增圖片、或是文字大小不知道怎麼調整，可以直接向 AI 詢問。</strong></p>
<p>如果生成網頁的過程遇到 Bug，出現一堆紅字，那也非常正常。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-15.webp" width="1400" height="757" alt="生成個人形象網頁（圖 15）" loading="lazy" decoding="async"></p>
<p>你可以把錯誤訊息複製下來，貼到 AI 的對話窗，請他協助解決。</p>
<p><strong>這方法能解決大多數的基礎問題，但如果遇到的錯誤太多，或是邏輯上的問題，就需要根據實際情境來處理，這邊會再找時間寫一篇文章分享。</strong></p>
<hr>
<h2 class="h-nomark" id="-加入-git-版控vibe-coding-放心爆改">③ 加入 Git 版控，Vibe Coding 放心爆改<a class="h-anchor" href="#-%e5%8a%a0%e5%85%a5-git-%e7%89%88%e6%8e%a7vibe-coding-%e6%94%be%e5%bf%83%e7%88%86%e6%94%b9" aria-label="這個段落的連結"></a></h2>
<p>Vibe Coding 時，你的每個指令都可能大幅調整專案的程式。</p>
<p>但 AI 修改的結果未必是你要的，甚至有時會把正常的功能給改壞了。</p>
<p>為了把改壞的內容救回來，我會建議大家安裝 Git，這個程式碼版本控制工具，並註冊 GitHub 帳號來管理專案。</p>
<h3 id="-安裝-git">安裝 Git<a class="h-anchor" href="#-%e5%ae%89%e8%a3%9d-git" aria-label="這個段落的連結"></a></h3>
<p>首先，我們可以到 <a href="https://git-scm.com/downloads">Git 官網下載</a>安裝檔</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-16.webp" width="1400" height="757" alt="安裝 Git（圖 16）" loading="lazy" decoding="async"></p>
<p>安裝好 Git 後，開啟 Cursor 終端機輸入指令 `git -v` 確認有正確安裝</p>
<p>接著用下面的指令來完成初始化設定，請自行調整成自己的英文名字與 email</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git config --global user.name <span style="color:#a5d6ff">&#34;baobao&#34;</span>
</span></span><span style="display:flex;"><span>git config --global user.email <span style="color:#a5d6ff">&#34;baobao@gmail.com&#34;</span>
</span></span></code></pre></div><p>然後產生 SSH Key，這是為了確保這台電腦有更新專案的權限，這邊也請自行調整成自己的 mail</p>
<pre tabindex="0"><code>ssh-keygen -t ed25519 -C &#34;baobao@gmail.com&#34;
</code></pre><p>SSH Key 生成出來後，可以透過下面的指令顯示公鑰，這會在下一個步驟用到</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>cat ~/.ssh/id_ed25519.pub
</span></span></code></pre></div><h3 id="-註冊-github">註冊 GitHub<a class="h-anchor" href="#-%e8%a8%bb%e5%86%8a-github" aria-label="這個段落的連結"></a></h3>
<p>這邊我們來到 <a href="https://github.com/">GitHub 的官網</a>，你可以直接使用 Gmail 來註冊。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-17.webp" width="1400" height="757" alt="註冊 GitHub（圖 17）" loading="lazy" decoding="async"></p>
<p>註冊完成後，我們到帳號右上角的 Settings</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-18.webp" width="1400" height="757" alt="註冊 GitHub（圖 18）" loading="lazy" decoding="async"></p>
<p>選擇側邊欄的「SSH and GPG Keys」，點擊「New SSH Key」來新增剛剛生成的公鑰</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-19.webp" width="1400" height="757" alt="註冊 GitHub（圖 19）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-20.webp" width="1400" height="757" alt="註冊 GitHub（圖 20）" loading="lazy" decoding="async"></p>
<p>接著建立一個新的 repository，用來儲存剛剛 AI 生成的網頁專案。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-21.webp" width="1400" height="757" alt="註冊 GitHub（圖 21）" loading="lazy" decoding="async"></p>
<p>Repository name 可以自由輸入，這邊我打「personal-website」，Description 可保留空</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-22.webp" width="1400" height="757" alt="註冊 GitHub（圖 22）" loading="lazy" decoding="async"></p>
<p>如果你不想把這個 Repository 公開，可以在「Configuration」把 visibility 改成「Private」</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-23.webp" width="1400" height="757" alt="註冊 GitHub（圖 23）" loading="lazy" decoding="async"></p>
<h3 id="-把專案更新到-github">把專案更新到 GitHub<a class="h-anchor" href="#-%e6%8a%8a%e5%b0%88%e6%a1%88%e6%9b%b4%e6%96%b0%e5%88%b0-github" aria-label="這個段落的連結"></a></h3>
<p>接著回到剛剛 Cursor 幫我們生成的專案，在終端機輸入 <code>git init</code> 來初始化專案 git。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-24.webp" width="1120" height="210" alt="把專案更新到 GitHub（圖 24）" loading="lazy" decoding="async"></p>
<p>然後回到網頁，複製第一行 <code>git add…</code> 貼到專案的終端機，這樣我們就可以把電腦的專案與 GitHub 上面的專案連結。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-25.webp" width="1400" height="239" alt="把專案更新到 GitHub（圖 25）" loading="lazy" decoding="async"></p>
<p>然後點擊左上方的 Source Control，你可以手動在框框內輸入這次的更新內容，又或是點擊旁邊的星星按鈕，讓 AI 自動產生：</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-26.webp" width="1400" height="617" alt="把專案更新到 GitHub（圖 26）" loading="lazy" decoding="async"></p>
<p>確認文字描述符合自己的預期後，點擊 commit，就會在自己的電腦記錄這個變更；但如果想更新到雲端，你需要點擊 Push 才會成功喔！</p>
<p>Push 後我們回到 GitHub 網頁，刷新一下頁面，如果能看到專案的內容，就代表你成功了！</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-27.webp" width="1400" height="727" alt="把專案更新到 GitHub（圖 27）" loading="lazy" decoding="async"></p>
<p>接著回到專案，嘗試與 AI 提出一個修改的需求</p>
<pre tabindex="0"><code>我希望可以有 Dark Mode 與 Light Mode 的設計
</code></pre><p>等 AI 執行完畢後，你可以在 Source Control 這個地方看到 Vibe Coding 更新的內容。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-28.webp" width="1400" height="820" alt="把專案更新到 GitHub（圖 28）" loading="lazy" decoding="async"></p>
<p>如果發現他改壞了，後續對話也無法解決，你可以全部放棄變更！</p>
<p><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-29.webp" width="1400" height="820" alt="把專案更新到 GitHub（圖 29）" loading="lazy" decoding="async"></p>
<p>這邊我再給他一個要調整的內容</p>
<pre tabindex="0"><code>1. 形象照的圖片顯示上半部就好
2. 最上方個人簡介區塊下面要有留白
3. 我的成就裡面的圖片，可以根據不同比例完整顯示，要上下左右置中，多個地方用透明顯示
4. 職涯發展顧問、職涯發展的顏色太淡，不好辨識
</code></pre><p>如果對這次的調整滿意，就提交並發布一版保存；提交我們的 commit，點擊同步變更後他就會提交到 GitHub 雲端上面，以上是最基礎的 Git 操作。</p>
<p>他是一個很棒的版本控制工具，功能非常多，這邊放上常用指令，有興趣深入研究的朋友可以保存一下。</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git init：在目前資料夾初始化 git
</span></span><span style="display:flex;"><span>git clone &lt;repo-url&gt;：將遠端的專案下載到電腦
</span></span><span style="display:flex;"><span>git checkout &lt;branch&gt;：切換到指定分支
</span></span><span style="display:flex;"><span>git checkout -b &lt;branch&gt;：建立並切換到新分支
</span></span><span style="display:flex;"><span>git merge &lt;branch&gt;：將指定分支合併到當前分支
</span></span><span style="display:flex;"><span>git stash：暫存目前變更
</span></span><span style="display:flex;"><span>git stash pop：取回並套用暫存變更
</span></span><span style="display:flex;"><span>git push origin &lt;branch&gt;：將本地分支推送到遠端
</span></span><span style="display:flex;"><span>git pull origin &lt;branch&gt;：拉取遠端分支並合併
</span></span><span style="display:flex;"><span>git fetch：抓取遠端最新狀態
</span></span></code></pre></div><p>如果不知道指令怎麼下，別忘記有 AI 這個好夥伴可以詢問～</p>
<hr>
<h2 id="vibe-coding-的工具很重要但電腦品質也不能太差">Vibe Coding 的工具很重要，但電腦品質也不能太差<a class="h-anchor" href="#vibe-coding-%e7%9a%84%e5%b7%a5%e5%85%b7%e5%be%88%e9%87%8d%e8%a6%81%e4%bd%86%e9%9b%bb%e8%85%a6%e5%93%81%e8%b3%aa%e4%b9%9f%e4%b8%8d%e8%83%bd%e5%a4%aa%e5%b7%ae" aria-label="這個段落的連結"></a></h2>
<p>在舉辦幾場 Vibe Coding 的工作坊後；我發現一件特別的事，明明指令相同，有些學員可以很快取得期待的結果，而有些學員則是很容易卡住。</p>
<p>一開始我以為是運氣問題，但深入討論後，<strong>發現瓶頸其實是出在電腦的硬體規格上面。</strong></p>
<p>因為 Vibe Coding 會需要索引專案、執行指令、編譯程式，假如電腦的記憶體、CPU，以及硬碟的配置較差。</p>
<p>那你執行的每一步都要會花更多的時間，有時不是 AI 做不出來，只是速度慢到你以為他卡住了。</p>
<p>其實電腦也不需要買多好的，我前陣子買了一台一萬八的 Windows 電腦，CPU 是 Intel i7、記憶體 16 GB、硬碟用 SSD，跑起來就很夠用了。</p>
<hr>
<h2 id="結語掌握讓-vibe-coding-效率翻倍的工具">結語：掌握讓 Vibe Coding 效率翻倍的工具<a class="h-anchor" href="#%e7%b5%90%e8%aa%9e%e6%8e%8c%e6%8f%a1%e8%ae%93-vibe-coding-%e6%95%88%e7%8e%87%e7%bf%bb%e5%80%8d%e7%9a%84%e5%b7%a5%e5%85%b7" aria-label="這個段落的連結"></a></h2>
<p>最後來回顧一下今天分享的 3 個工具：</p>
<ol>
<li>我們可以透過 Python 幫我們讀取不同格式的文件內容，甚至用網路爬蟲取得詳細資訊。</li>
<li>安裝 Node.js 後，我們可以使用最流行前端框架，打造更專業、漂亮的網站。</li>
<li>有了 Git 協助版本控管後，我們就可以用 Vibe Coding 大膽嘗試創意的想法</li>
</ol>
<p><strong>安裝這些工具不是為了讓你變成程式設計師，而是讓 AI 有更多武器來幫你解決問題。</strong></p>
<p>看到這裡，大家應該可以感受到 Vibe Coding 的可能性與便利。</p>
<blockquote class="pullquote"><p>但還是要提醒大家，Vibe Coding 並不是完全零門檻的事情。</p>
</blockquote>
<p>在實務上，當問題變得更複雜，或需要跨領域整合時，專業知識仍然是必要的。</p>
<p>像今天分享的這些工具，對沒有資訊背景的人來說，可能都是知識盲區。</p>
<blockquote class="pullquote"><p>AI 能做到哪些事情，其實是取決於你對這個世界的認知。</p>
</blockquote>
<p>希望今天的分享，能讓你使用 Cursor 做 Vibe Coding 時，獲得更好的體驗。</p>
<p>如果你對 AI 工具、自我成長、職涯發展感興趣，<a href="https://dean-lin.medium.com/subscribe">歡迎追蹤我</a>！我會我會持續分享新的觀點 💡</p>
<figure class="figure"><img src="https://deanlin.net/blog/202509/cursor-productivity-extensions/images/cursor-productivity-extensions-30.webp" width="1400" height="914" alt="林鼎淵著作《工程師下班有約：企業內訓講師帶你認清職涯真相！》" loading="lazy" decoding="async">
  <figcaption><a href="https://www.tenlong.com.tw/products/9786264142083">https://www.tenlong.com.tw/products/9786264142083</a></figcaption>
</figure>

<a class="linkcard" href="https://deanlin.net/categories/ai/">
  <span class="lc-body">
    <span class="lc-title">AI 實戰</span>
    <span class="lc-desc">實測生成式 AI 工具、Vibe Coding 與自動化流程的第一手心得，把 AI 變成每天都用得上的即戰力。</span>
    <span class="lc-site"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"/></svg>林鼎淵 Dean Lin</span>
  </span>
</a>

]]></content:encoded>
    </item>
    <item>
      <title>Cursor 教學：入門到實戰，用 AI Agent 自動化你的工作流！</title>
      <link>https://deanlin.net/blog/202509/cursor-getting-started/</link>
      <pubDate>Sun, 14 Sep 2025 22:59:10 +0800</pubDate>
      <guid>https://deanlin.net/blog/202509/cursor-getting-started/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>AI 實戰</category>
      <description>Cursor 不只是工程師專屬的程式編輯器（IDE），更是創作者的 AI 夥伴！斜槓講師、作家、影片創作者的我，就把它應用到課程規劃、文章撰寫、資料彙整、字幕生成、腳本設計、字卡規劃、音效建議…等多個領域。</description>
      <media:content url="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-og_hu_a39abbb9c300b784.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>Cursor 不只是工程師專屬的程式編輯器（IDE），更是創作者的 AI 夥伴！</p>
<p>斜槓講師、作家、影片創作者的我，就把它應用到課程規劃、文章撰寫、資料彙整、字幕生成、腳本設計、字卡規劃、音效建議…等多個領域。</p>
<p>這篇文章會從 Cursor 的基礎操作開始，帶大家學會範圍限制，與設定 Rules 提升答案品質。</p>
<p>最後透過實際案例，分享 AI Agent 可以給我們帶來的幫助。</p>
<blockquote>
<p>建議搭配影片觀看實際的操作步驟。</p>
</blockquote>
<div class="yt" data-yt="kVniOF36GEk" data-title="【Cursor 教學】入門到實戰，用 AI Agent 自動化你的工作流！">
  <a class="yt-link" href="https://www.youtube.com/watch?v=kVniOF36GEk" target="_blank" rel="noopener" aria-label="播放影片：【Cursor 教學】入門到實戰，用 AI Agent 自動化你的工作流！">
    <img src="https://i.ytimg.com/vi/kVniOF36GEk/hqdefault.jpg" alt="" width="480" height="360" loading="lazy" decoding="async">
    <span class="yt-play" aria-hidden="true"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false"><path d="M8 5.2v13.6L19 12z"/></svg></span>
    <span class="yt-title">【Cursor 教學】入門到實戰，用 AI Agent 自動化你的工作流！</span>
  </a>
</div>

<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-01.webp" width="1400" height="788" alt="Cursor 教學：入門到實戰，用 AI Agent 自動化你的工作流！（圖 1）" fetchpriority="high" decoding="async"></p>
<h2 id="動機我厭倦在-ai-工具間複製貼上">動機：我厭倦在 AI 工具間複製貼上<a class="h-anchor" href="#%e5%8b%95%e6%a9%9f%e6%88%91%e5%8e%ad%e5%80%a6%e5%9c%a8-ai-%e5%b7%a5%e5%85%b7%e9%96%93%e8%a4%87%e8%a3%bd%e8%b2%bc%e4%b8%8a" aria-label="這個段落的連結"></a></h2>
<p>我的本職是工程師，一開始只把 Cursor 當做程式編輯器；而創作文章、資料彙整還是在 ChatGPT 或 NotebookLM 上操作。</p>
<p><strong>但時間一久，我覺得要根據需求使用不同工具很浪費時間。</strong></p>
<p>像是我在企業內訓備課的時候，有些主辦方會給我課程的參考資料，但這些資料的格式不一，可能是 Word/PDF/PPT。</p>
<p>而且有些資料還有重複的問題，儘管可以靠 NotebookLM 彙整資訊，但上傳、複製、貼上的動作不但無趣又很浪費時間，而且無法跨筆記本操作。</p>
<p>另外我開始拍 YouTube 後，也需要花很多時間處理「腳本設計、字卡規劃、音效建議、宣傳導流」這一系列的事情。</p>
<p><strong>錄幾隻影片後，我覺得自己拍片的熱情，快被這些瑣碎的事情給消耗殆盡。</strong></p>
<p>於是我開始思考：</p>
<blockquote class="pullquote"><p>有哪些任務可以交給 AI 處理？有沒有可能，把任務集中到一個工具搞定。</p>
</blockquote>
<p>最後我把寫程式的思維，整合進 Cursor；<strong>才發現它根本就是創作者的神器！</strong></p>
<hr>
<h2 class="h-nomark" id="-下載-cursor掌握基礎操作">① 下載 Cursor，掌握基礎操作<a class="h-anchor" href="#-%e4%b8%8b%e8%bc%89-cursor%e6%8e%8c%e6%8f%a1%e5%9f%ba%e7%a4%8e%e6%93%8d%e4%bd%9c" aria-label="這個段落的連結"></a></h2>
<h3 id="-下載安裝">下載安裝<a class="h-anchor" href="#-%e4%b8%8b%e8%bc%89%e5%ae%89%e8%a3%9d" aria-label="這個段落的連結"></a></h3>
<p>首先我們要進入<a href="https://cursor.com/cn/downloads"> Cursor 官網</a>，點擊「下載」按鈕，便可獲得安裝檔。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-02.webp" width="1400" height="599" alt="下載安裝（圖 2）" loading="lazy" decoding="async"></p>
<p>這篇文章以 Mac 操作為主，但 Windows 與 Linux 系統也是可以操作的。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-03.webp" width="1400" height="748" alt="下載安裝（圖 3）" loading="lazy" decoding="async"></p>
<h3 id="-隱私設定">隱私設定<a class="h-anchor" href="#-%e9%9a%b1%e7%a7%81%e8%a8%ad%e5%ae%9a" aria-label="這個段落的連結"></a></h3>
<p>在安裝並註冊完 Cursor 後，我們先打開設定；確認目前是否已經選擇 Privacy Mode。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-04.webp" width="1400" height="813" alt="隱私設定（圖 4）" loading="lazy" decoding="async"></p>
<p>啟用後，通過 Cursor 伺服器的資料不會被用於模型訓練，提升我們使用上的資訊安全。</p>
<h3 id="-基礎操作">基礎操作<a class="h-anchor" href="#-%e5%9f%ba%e7%a4%8e%e6%93%8d%e4%bd%9c" aria-label="這個段落的連結"></a></h3>
<p>操作方面，你可以在右側的對話窗，透過對話向 AI 提出需求，提示詞的技巧與 ChatGPT 相同。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-05.webp" width="1400" height="813" alt="基礎操作（圖 5）" loading="lazy" decoding="async"></p>
<p>下面是範例 Prompt：</p>
<pre tabindex="0"><code>幫我設計一個 Cursor Vibe Coding 的教學大綱，並建立一個 Markdown 檔案，檔名需為好理解且具描述性的英文檔名。
大綱內容要有清楚的結構（如章節或步驟），用詞要容易理解，方便教學使用。
Cursor 是一款 IDE 工具，課程要注重如何善用 AI 取得更流暢的開發體驗。授課對象為沒寫過程式的學員。
</code></pre><p>他遵循的結構如下：</p>
<ul>
<li><strong>目標</strong>：在目標方面，我跟他說要設計一個 Cursor Vibe Coding 的教學大綱</li>
<li><strong>格式</strong>：在輸出格式上，我要求他要用 Markdown 檔案呈現，並且使用英文檔名</li>
<li><strong>注意</strong>：並要求他注意設計大綱時結構要清楚，用詞要容易理解</li>
<li><strong>脈絡</strong>：並補充工具簡介與學員的背景</li>
</ul>
<p>從下圖可以看到，只要提示詞足夠明確，就能在初始對話獲得品質較高的回覆。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-06.webp" width="1400" height="811" alt="基礎操作（圖 6）" loading="lazy" decoding="async"></p>
<p>同時也跟大家說明 Cursor 與 ChatGPT 最大不同的點，<strong>就在於 ChatGPT 要來回複製貼上，而 Cursor 可以直接新增、修改檔案，讓你免於複製貼上的繁瑣步驟。</strong></p>
<h3 id="-clear-all-chat">Clear all chat<a class="h-anchor" href="#-clear-all-chat" aria-label="這個段落的連結"></a></h3>
<p>但也提醒大家要<strong>定期清空對話</strong>，避免 AI 因為錯誤的上下文，導致回覆的品質下降。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-07.webp" width="1400" height="815" alt="Clear all chat（圖 7）" loading="lazy" decoding="async"></p>
<h3 id="-cursor-價格說明">Cursor 價格說明<a class="h-anchor" href="#-cursor-%e5%83%b9%e6%a0%bc%e8%aa%aa%e6%98%8e" aria-label="這個段落的連結"></a></h3>
<p>完成註冊後，一開始會有兩週的 Pro 版試用，但試用是有額度限制的；像我大概一天就把免費額度用完。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-08.webp" width="1400" height="710" alt="Cursor 價格說明（圖 8）" loading="lazy" decoding="async"></p>
<p>如果大家看完文章，並在實際操作中，覺得 Cursor 對你的工作、創作有幫助，可以考慮付費升級到 Pro 版。</p>
<p><strong>以我個人來說，Cursor 幫我節省下來的時間、精力，遠遠超過這個價值。</strong></p>
<hr>
<h2 class="h-nomark" id="-了解不同模型的使用時機">② 了解不同模型的使用時機<a class="h-anchor" href="#-%e4%ba%86%e8%a7%a3%e4%b8%8d%e5%90%8c%e6%a8%a1%e5%9e%8b%e7%9a%84%e4%bd%bf%e7%94%a8%e6%99%82%e6%a9%9f" aria-label="這個段落的連結"></a></h2>
<p>現在是生成式 AI 大爆發的年代。</p>
<p>每隔幾天，就會有新聞報導，說某個模型又取得了更優秀的成績。</p>
<p><strong>但如果你使用的是 Cursor，那現在最夯的 ChatGPT、Gemini、Claude 的最新模型都能使用。</strong></p>
<h3 id="-模型選擇">模型選擇<a class="h-anchor" href="#-%e6%a8%a1%e5%9e%8b%e9%81%b8%e6%93%87" aria-label="這個段落的連結"></a></h3>
<p>下面的列表，就是Cursor 有提供的模型：</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-09.webp" width="1400" height="818" alt="模型選擇（圖 9）" loading="lazy" decoding="async"></p>
<p>你會看到有些模型<strong>有大腦的符號 </strong>🧠，這代表他是「推理模型」，可以<strong>處理更複雜的任務，但執行時間較長</strong>。</p>
<p>而其他的則是「非推理模型」，面對<strong>簡單問題可以更快的得到答案。</strong></p>
<p>你可以在這個頁面勾選想使用的模型，<strong>建議勾選最新的模型，會得到更好的表現。</strong></p>
<blockquote>
<p>不過在對話的時候，我建議選擇「Auto」就好，讓 AI 來幫你決定；不然每次對話都要選對應的模型也太累人。</p>
</blockquote>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-10.webp" width="687" height="428" alt="模型選擇（圖 10）" loading="lazy" decoding="async"></p>
<hr>
<h2 class="h-nomark" id="-學會範圍限制提升答案品質">③ 學會範圍限制，提升答案品質<a class="h-anchor" href="#-%e5%ad%b8%e6%9c%83%e7%af%84%e5%9c%8d%e9%99%90%e5%88%b6%e6%8f%90%e5%8d%87%e7%ad%94%e6%a1%88%e5%93%81%e8%b3%aa" aria-label="這個段落的連結"></a></h2>
<p>儘管 Cursor 具備檢索「整個專案」的能力；但執行比較久，錯誤率也會隨之上升。</p>
<p>所以我會<strong>建議限制參考資源的範圍，比如特定的資料夾、檔案；</strong>這樣 Cursor 就能更快、更精準地完成需求。</p>
<p>使用上非常簡單，用拖拉的方式即可，可以一次選擇多個檔案、資料夾。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-11.webp" width="1400" height="774" alt="③ 學會範圍限制，提升答案品質（圖 11）" loading="lazy" decoding="async"></p>
<p>如果想要更精確的指定，你也可以選擇文件內特定範圍的文字（點擊 Add to Chat），請 AI 針對性的閱讀、修改。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-12.webp" width="1400" height="774" alt="③ 學會範圍限制，提升答案品質（圖 12）" loading="lazy" decoding="async"></p>
<hr>
<h2 class="h-nomark" id="-設定-rules讓-ai-更懂你">④ 設定 Rules，讓 AI 更懂你<a class="h-anchor" href="#-%e8%a8%ad%e5%ae%9a-rules%e8%ae%93-ai-%e6%9b%b4%e6%87%82%e4%bd%a0" aria-label="這個段落的連結"></a></h2>
<p>除了限制範圍可以提升 AI 回應的品質外，設定好 Rules 可以讓 AI 更懂你</p>
<p>Rules 就是告訴 AI，你的工作習慣、偏好和要求的設定</p>
<p>這邊分享一個 <a href="https://x.com/kayladotdev/status/1853272891023872450">Cursor 內部員工的 Rules 範例</a>：</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-markdown" data-lang="markdown"><span style="display:flex;"><span>DO NOT GIVE ME HIGH LEVEL SHIT, IF I ASK FOR FIX OR EXPLANATION, I WANT ACTUAL CODE OR EXPLANATION!!! I DON&#39;T WANT &#34;Here&#39;s how you can blablabla&#34;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Be casual unless otherwise specified
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Be terse
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Suggest solutions that I didn&#39;t think about—anticipate my needs
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Treat me as an expert
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Be accurate and thorough
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Give the answer immediately. Provide detailed explanations and restate my query in your own words if necessary after giving the answer
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Value good arguments over authorities, the source is irrelevant
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Consider new technologies and contrarian ideas, not just the conventional wisdom
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> You may use high levels of speculation or prediction, just flag it for me
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> No moral lectures
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Discuss safety only when it&#39;s crucial and non-obvious
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> If your content policy is an issue, provide the closest acceptable response and explain the content policy issue afterward
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Cite sources whenever possible at the end, not inline
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> No need to mention your knowledge cutoff
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> No need to disclose you&#39;re an AI
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Please respect my prettier preferences when you provide code.
</span></span><span style="display:flex;"><span><span style="color:#ff7b72">-</span> Split into multiple responses if one response isn&#39;t enough to answer the question.
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>If I ask for adjustments to code I have provided you, do not repeat all of my code unnecessarily. Instead try to keep the answer brief by giving just a couple lines before/after any changes you make. Multiple code blocks are ok.
</span></span></code></pre></div><p>大家可以把它複製起來，然後貼到 Rules 設定中，這會在所有專案中生效！</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-13.webp" width="1400" height="813" alt="④ 設定 Rules，讓 AI 更懂你（圖 13）" loading="lazy" decoding="async"></p>
<p>另外大家可以再加上一個 Rules，告訴 AI 你習慣使用的語言</p>
<pre tabindex="0"><code>Always respond in 繁體中文
</code></pre><blockquote>
<p>每個人都有不同的職業、偏好、需求，大家可以針對性地來設計專屬自己的 Rules，讓他更符合工作流。</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="-撰寫-spec讓-ai-知道怎麼做事">⑤ 撰寫 Spec，讓 AI 知道怎麼做事<a class="h-anchor" href="#-%e6%92%b0%e5%af%ab-spec%e8%ae%93-ai-%e7%9f%a5%e9%81%93%e6%80%8e%e9%ba%bc%e5%81%9a%e4%ba%8b" aria-label="這個段落的連結"></a></h2>
<p>剛剛示範的 Rules，是跟著你的帳號走，在每個專案都會生效；但現實生活中的每個專案，往往都有不同目的。</p>
<p>像我就是一個斜槓的工程師，除了寫程式外，還要寫部落格、寫書、備課，甚至還有拍 YouTube。</p>
<p><strong>如果把每個身份都寫進 Rules，不但不好管理，甚至還會讓 AI 混亂，導致效能下降。</strong></p>
<p>所以這個時候，你應該要<strong>針對專案的不同目標，來設計 Rules，不過因為規則複雜，所以我習慣把它稱為 Spec，也就是需求規格</strong>。</p>
<p>讓 AI 知道在不同專案下，該如何完成任務。</p>
<h3 id="-建立給專案的-rules">建立給專案的 Rules<a class="h-anchor" href="#-%e5%bb%ba%e7%ab%8b%e7%b5%a6%e5%b0%88%e6%a1%88%e7%9a%84-rules" aria-label="這個段落的連結"></a></h3>
<p>在剛剛建議 Rules 的地方往下滑一點，就可以建立針對 Project 的 Rules。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-14.webp" width="1400" height="813" alt="建立給專案的 Rules（圖 14）" loading="lazy" decoding="async"></p>
<p>比如我們想請 AI 做的是把文章轉成腳本，名字我就打「article-to-script」。</p>
<p>接著你會看到這個檔案出現在「.cursor」的「rules」資料夾中，副檔名為 .mdc。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-15.webp" width="1400" height="801" alt="建立給專案的 Rules（圖 15）" loading="lazy" decoding="async"></p>
<p>你可以自由設定這個規格要觸發的時機，像是永遠觸發、AI 自動判斷、針對特定檔案、或是人為呼叫都可以。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-16.webp" width="1400" height="811" alt="建立給專案的 Rules（圖 16）" loading="lazy" decoding="async"></p>
<p>至於內容要怎麼寫，我們一樣可以請 AI 幫忙。</p>
<pre tabindex="0"><code>你是一位擅長打造 KOL 的專家團隊，我想請你請從業界實戰的角度，規劃出當用戶輸入「文章轉腳本」時， AI 要執行的步驟、輸出的限制、以及結果品質的檢查，完成後將結果更新到這個檔案中。
</code></pre><p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-17.webp" width="1400" height="811" alt="建立給專案的 Rules（圖 17）" loading="lazy" decoding="async"></p>
<p>得到初步的版本後，你可以根據實際需求調整細節；比如我<strong>在結尾加入這個腳本要儲存的位置，避免修改原本的檔案。</strong></p>
<pre tabindex="0"><code>## 檔案儲存位置
在同層資料下以 `{原檔名}_script.md` 命名來建立檔案
</code></pre><p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-18.webp" width="1400" height="811" alt="建立給專案的 Rules（圖 18）" loading="lazy" decoding="async"></p>
<h3 id="-驗證-rules-是否生效">驗證 Rules 是否生效<a class="h-anchor" href="#-%e9%a9%97%e8%ad%89-rules-%e6%98%af%e5%90%a6%e7%94%9f%e6%95%88" aria-label="這個段落的連結"></a></h3>
<p>這邊我拿自己過去寫的一篇文章，實際 Demo 給大家看；我先把這篇文章拖到右側 AI 對話窗，然後跟他說「文章轉腳本」。</p>
<p>接著稍等一段時間，一份腳本的草稿就生成了，這可以大幅增加創作者的效率！</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-19.webp" width="1400" height="811" alt="驗證 Rules 是否生效（圖 19）" loading="lazy" decoding="async"></p>
<hr>
<h2 class="h-nomark" id="-體驗-ai-agent-一鍵搞定的快感">⑥ 體驗 AI Agent 一鍵搞定的快感<a class="h-anchor" href="#-%e9%ab%94%e9%a9%97-ai-agent-%e4%b8%80%e9%8d%b5%e6%90%9e%e5%ae%9a%e7%9a%84%e5%bf%ab%e6%84%9f" aria-label="這個段落的連結"></a></h2>
<h3 id="-讓-project-rules-互相參考">讓 Project Rules 互相參考<a class="h-anchor" href="#-%e8%ae%93-project-rules-%e4%ba%92%e7%9b%b8%e5%8f%83%e8%80%83" aria-label="這個段落的連結"></a></h3>
<p>在剛剛的範例中，我只有提供 AI 一個客製化規則。</p>
<p><strong>但其實你可以設計多個可以串聯的規則，這邊我也拿自己的案例來分享。</strong></p>
<p>我有為了製作 Youtube 專門開一個專案，並在下方設計完整的 Spec，涵蓋了了「文章轉腳本，腳本轉逐字稿，以及把腳本轉成短影音」的規則。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-20.webp" width="1400" height="800" alt="讓 Project Rules 互相參考（圖 20）" loading="lazy" decoding="async"></p>
<p>我除了可以透過這些關鍵字來執行外，也可以輸入「一次搞定」，這邊我就有告訴他完整的執行順序。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-21.webp" width="1400" height="811" alt="讓 Project Rules 互相參考（圖 21）" loading="lazy" decoding="async"></p>
<h3 id="-發揮-ai-agent-的潛力">發揮 AI Agent 的潛力<a class="h-anchor" href="#-%e7%99%bc%e6%8f%ae-ai-agent-%e7%9a%84%e6%bd%9b%e5%8a%9b" aria-label="這個段落的連結"></a></h3>
<p>在影片的開頭，我有說到 Cursor 可以幫我彙整 Word/PPT/PDF 等多種格式的文字與圖片。</p>
<p>不過更準確的說法，是 Cursor 辨識完文件的格式後，安裝了許多 Python 的套件，然後下指令提取出檔案的文字、圖片。</p>
<p><strong>而這一系列從「辨識文件、安裝套件、執行指令、彙整文件」的操作，都是 AI 幫我完成的，我只有要求他幫我彙整資料夾內的文件，整合資訊到新檔案而已。</strong></p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-22.webp" width="684" height="615" alt="發揮 AI Agent 的潛力（圖 22）" loading="lazy" decoding="async"></p>
<p>我有次也好奇 AI Agent 能做到什麼地步，於是把 MP4 影片檔丟給他，請他幫我生成出 SRT 字幕檔，結果沒想到<strong>他安裝完辨識語音的 Whisper 套件後，真的把字幕檔生成出來了</strong>。</p>
<p><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-23.webp" width="935" height="740" alt="發揮 AI Agent 的潛力（圖 23）" loading="lazy" decoding="async"></p>
<p>看到結果的時候我超 Shock！</p>
<p>但也提醒一下大家，<strong>儘管 AI Agent 可以幫我們做到很多事情，但開放權限給他時，請先搞清楚是否會造成危害。</strong></p>
<p><strong>像套件自動安裝、指令自動執行儘管很方便；但越強大的工具，出事時，問題往往也越大。</strong></p>
<blockquote>
<p>AI Agent 有辦法將一個簡單的指令，解析成「多個執行步驟」後，完成「複雜、龐大」的任務（但結果未必正確）。</p>
</blockquote>
<hr>
<h2 id="結語一起嘗試-ai-工具的潛能吧">結語：一起嘗試 AI 工具的潛能吧！<a class="h-anchor" href="#%e7%b5%90%e8%aa%9e%e4%b8%80%e8%b5%b7%e5%98%97%e8%a9%a6-ai-%e5%b7%a5%e5%85%b7%e7%9a%84%e6%bd%9b%e8%83%bd%e5%90%a7" aria-label="這個段落的連結"></a></h2>
<p>希望這篇文章，能讓沒有開發經驗的朋友，也願意嘗試 Cursor 這款強大的 AI 工具。</p>
<p>在具備正確觀念，並熟悉設定後，相信 AI 可以幫我們搞定許多繁瑣的事務，讓我們專注在真正有價值的工作上！</p>
<p>如果你對 AI 工具、自我成長、職涯發展感興趣，<a href="https://dean-lin.medium.com/subscribe">歡迎追蹤我</a>！我會我會持續分享新的觀點 💡</p>
<figure class="figure"><img src="https://deanlin.net/blog/202509/cursor-getting-started/images/cursor-getting-started-24.webp" width="1400" height="914" alt="林鼎淵著作《工程師下班有約：企業內訓講師帶你認清職涯真相！》" loading="lazy" decoding="async">
  <figcaption><a href="https://www.tenlong.com.tw/products/9786264142083">https://www.tenlong.com.tw/products/9786264142083</a></figcaption>
</figure>

<a class="linkcard" href="https://deanlin.net/categories/ai/">
  <span class="lc-body">
    <span class="lc-title">AI 實戰</span>
    <span class="lc-desc">實測生成式 AI 工具、Vibe Coding 與自動化流程的第一手心得，把 AI 變成每天都用得上的即戰力。</span>
    <span class="lc-site"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"/></svg>林鼎淵 Dean Lin</span>
  </span>
</a>

]]></content:encoded>
    </item>
    <item>
      <title>這是堂滿足私慾的課程 ── 用 AI 輔助開發的技巧</title>
      <link>https://deanlin.net/blog/202410/ai-assisted-development-course/</link>
      <pubDate>Wed, 02 Oct 2024 21:09:17 +0800</pubDate>
      <guid>https://deanlin.net/blog/202410/ai-assisted-development-course/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>AI 實戰</category>
      <description>有寫程式的人都知道，Live coding 是一件很有壓力的事情。 而使用生成式 AI 做 Live coding，更是充滿各種隨機性。 而我挑戰的，是用生成式 AI 在近 80 位觀眾面前，針對 8 個不同的主題做 Live coding（甚至涵蓋多個程式語言）。</description>
      <media:content url="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-og_hu_83e7b0e4cd8924e4.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>有寫程式的人都知道，Live coding 是一件很有壓力的事情。</p>
<p>而使用生成式 AI 做 Live coding，更是充滿各種隨機性。</p>
<p>而我挑戰的，是用生成式 AI 在近 80 位觀眾面前，針對 8 個不同的主題做 Live coding（甚至涵蓋多個程式語言）。</p>
<p><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-01.webp" width="1400" height="786" alt="這是堂滿足私慾的課程 ── 用 AI 輔助開發的技巧（圖 1）" fetchpriority="high" decoding="async"></p>
<h2 id="-這個主題跟大綱可能沒什麼人會報名喔">這個主題跟大綱，可能沒什麼人會報名喔！<a class="h-anchor" href="#-%e9%80%99%e5%80%8b%e4%b8%bb%e9%a1%8c%e8%b7%9f%e5%a4%a7%e7%b6%b1%e5%8f%af%e8%83%bd%e6%b2%92%e4%bb%80%e9%ba%bc%e4%ba%ba%e6%9c%83%e5%a0%b1%e5%90%8d%e5%96%94" aria-label="這個段落的連結"></a></h2>
<p>最近受老朋友的邀約，開了一系列生成式 AI 的課程。</p>
<p>因為課程主題的自由度較高，所以我安排了一個想講，但過去從沒講過的主題：「用 AI 輔助開發的技巧」，大綱如下：</p>
<ul>
<li>撰寫 Regex 正則表達式</li>
<li>轉換程式語言</li>
<li>撰寫邏輯複雜、不熟悉的資料庫語法</li>
<li>產生比較真實的假資料</li>
<li>重構程式</li>
<li>撰寫單元測試</li>
<li>程式語言、框架升級小幫手</li>
<li>撰寫驗證效能的程式</li>
</ul>
<p>把大綱發給朋友後，他馬上回：「可以開，但那一場可能會比較少人。」</p>
<p>果不其然，上課的人數少了快 4 成；不過沒被上面的課程大綱嚇跑，已經很值得鼓勵了。</p>
<p><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-02.webp" width="1400" height="697" alt="這個主題跟大綱，可能沒什麼人會報名喔！（圖 2）" loading="lazy" decoding="async"></p>
<hr>
<h2 id="-風險高受眾少但我就是想講">風險高、受眾少，但我就是想講！<a class="h-anchor" href="#-%e9%a2%a8%e9%9a%aa%e9%ab%98%e5%8f%97%e7%9c%be%e5%b0%91%e4%bd%86%e6%88%91%e5%b0%b1%e6%98%af%e6%83%b3%e8%ac%9b" aria-label="這個段落的連結"></a></h2>
<p>如果你用過生成式 AI 輔助開發，那你一定知道他並沒有官方 Demo 的那麼靠譜。</p>
<p>可能有時程式可以跑，但有時會出現各種 Bug，如果不具備對應的專業知識，甚至會需要花更多的時間在 Debug 上。</p>
<p>過去我也講過 6 場生成式 AI Live coding 的課程，很多原本自己試過數十次都沒問題的 Prompt，偏偏在講課的時候出狀況。</p>
<p>有些人會說：「拿過去跟 AI 聊天的成功範例 Demo 就好了啊，幹嘛整自己？」</p>
<p>也許這樣做最沒風險，但我認為只有在現場實際操作，才能證明這個工具真的有用！</p>
<p><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-03.webp" width="1400" height="697" alt="風險高、受眾少，但我就是想講！（圖 3）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-04.webp" width="1400" height="697" alt="風險高、受眾少，但我就是想講！（圖 4）" loading="lazy" decoding="async"></p>
<hr>
<h2 id="-要講就要準備充分">要講，就要準備充分<a class="h-anchor" href="#-%e8%a6%81%e8%ac%9b%e5%b0%b1%e8%a6%81%e6%ba%96%e5%82%99%e5%85%85%e5%88%86" aria-label="這個段落的連結"></a></h2>
<p>講自己熟悉的主題很輕鬆，但準備全新的主題才會成長。</p>
<p>所以備課時，每個主題都選擇業界實際上會遇到的痛點，並搭配對應的範例做講解與 Live coding。</p>
<p>在技術上，我選擇了 ChatGPT、Cursor、Codeium、Qodo 等輔助開發的 AI 工具，讓觀眾了解使用時機＆功能差異。</p>
<p>並且每個 Prompt 都經過多次驗證，確保觀眾在課後練習時，也能完成課堂上的範例。</p>
<p><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-05.webp" width="1400" height="697" alt="要講，就要準備充分（圖 5）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-06.webp" width="1400" height="697" alt="要講，就要準備充分（圖 6）" loading="lazy" decoding="async"></p>
<hr>
<h2 id="-機會屬於勇敢嘗試的人">機會屬於勇敢嘗試的人<a class="h-anchor" href="#-%e6%a9%9f%e6%9c%83%e5%b1%ac%e6%96%bc%e5%8b%87%e6%95%a2%e5%98%97%e8%a9%a6%e7%9a%84%e4%ba%ba" aria-label="這個段落的連結"></a></h2>
<p>我知道還有很多工程師排斥使用 AI 開發，更不用說 Cursor 這類 AI 的 IDE。</p>
<p>但現在會使用 AI 輔助開發的工程師，產能絕對超過周圍的同事。</p>
<p>隨著 AI 能力的成長，我相信這個差距會越來越明顯。</p>
<p>而這個超越他人的機會，只屬於勇敢嘗試的人！</p>
<p>在此鼓勵看到這篇文章的人，勇敢跨出自己的舒適圈，嘗試過去沒碰過的工具吧！</p>
<blockquote>
<p>PS. 不過大家在使用 AI 開發公司的專案前，請遵守公司的資安規範，否則可能會有嚴重的後果。</p>
</blockquote>
<a class="linkcard" href="https://deanlin.net/categories/ai/">
  <span class="lc-body">
    <span class="lc-title">AI 實戰</span>
    <span class="lc-desc">實測生成式 AI 工具、Vibe Coding 與自動化流程的第一手心得，把 AI 變成每天都用得上的即戰力。</span>
    <span class="lc-site"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"/></svg>林鼎淵 Dean Lin</span>
  </span>
</a>

<p><strong>想將 AI 導入自己的職場與生活嗎？歡迎<a href="https://www.books.com.tw/products/0011004216">購買筆者出版的新書</a></strong>，幫助您<strong>在 AI 的浪潮中站穩腳步，並在未來的職場競爭中佔據優勢！</strong></p>
<figure class="figure"><img src="https://deanlin.net/blog/202410/ai-assisted-development-course/images/ai-assisted-development-course-07.webp" width="1400" height="319" alt="林鼎淵著作《ChatGPT 與 AI 繪圖效率大師（新增 Copilot、Gamma、Runway、Suno）》" loading="lazy" decoding="async">
  <figcaption><a href="https://www.books.com.tw/products/0011004216">https://www.books.com.tw/products/0011004216</a></figcaption>
</figure>

]]></content:encoded>
    </item>
  </channel>
</rss>
