~/blog/cursor-ai-prompt-engineering-developer-skills-guide.md
AI 自動化與智慧應用 · 2025 / 12 / 14

Cursor AI 掀桌子了?深度解析:從「鍵盤手」到「AI 指揮官」的生存指南

Eric — 浪花科技創辦人 / AI 架構師
Eric
浪花科技創辦人 · AI 架構師
Cursor AI 掀桌子了?深度解析:從「鍵盤手」到「AI 指揮官」的生存指南
目錄 table-of-contents.md

Cursor 改變的不是「打字速度」,而是工程師的工作型態

把 AI 從「補全幾行」拉升到「指揮整個功能模組」,這才是 Cursor 對程式碼編輯器的重新定義——聊天、生成、除錯、跨檔案上下文全部整合進開發流程,讓你用自然語言下指令。我的核心觀點很直接:AI 不會取代工程師,但會重新分配工程師的價值——撰寫語法的比重下降,定義需求、管理上下文、審閱產出的比重上升。

如果你只想記住三件事:(1) 學會把需求寫成規格化的提示詞;(2) 主動餵給 AI 對的專案上下文;(3) 永遠以「程式碼審閱者」的身分把關 AI 的產出。下面我們逐一拆解,並附上可直接參考的 WordPress 實作範例。

什麼是 Cursor?它和「VS Code + Copilot」差在哪裡?

很多人第一次接觸會覺得:「Cursor 不就是內建 Copilot 的 VS Code 修改版嗎?」這個比喻低估了它。差別不在於「多了一個外掛」,而在於整個編輯器的互動邏輯是圍繞 AI 重新打造的。

用一個比喻說明:VS Code + Copilot 像是給一輛性能不錯的房車外掛渦輪增壓——跑得更快,但本質上仍是你手動駕駛;Cursor 則是從駕駛艙互動邏輯就以輔助駕駛為核心重新設計。差異體現在以下幾個面向:

  • AI 原生整合:AI 不是附屬品,而是編輯器的核心。聊天、程式碼生成、除錯功能都深度整合在工作流中,反應更即時。
  • 全域上下文感知(@):這是它最強大的地方。你可以用 @ 符號把專案中的任何檔案、資料夾,甚至官方文件納入對話的「上下文」,等於直接告訴 AI:「請參考這幾個檔案的寫法和邏輯,幫我完成這個新功能。」這讓 AI 的回答從「猜測」變成有根據的「推論」。
  • 一鍵除錯與重構:遇到 Bug,直接選取有問題的程式碼問它原因,它會分析、提出假設,甚至直接幫你修復。想把一坨義大利麵程式碼重構成更清晰的結構,也只是一句話的事。

一句話總結它的設計目標:讓你花更少時間在「如何寫」的語法細節,把心力放在「寫什麼」的業務邏輯與架構設計上。這也自然帶出下一個問題——工程師的技能樹該怎麼重新點?

AI 時代,工程師的核心技能有哪些變化?

當「撰寫程式碼」逐漸被自動化,工程師比拚的重點也從「誰背的 API 多、演算法熟」轉向「誰能更精準地指揮 AI 完成更宏大的目標」。以下三項能力會是新技能樹的主幹。

1. 提示詞工程:把需求寫成規格,而不是寫成願望

提示詞工程(Prompt Engineering)說穿了就是「如何跟 AI 有效溝通」。它的本質不是把需求變成文字,而是像產品經理對工程師提需求一樣,提供清晰的目標、完整的上下文、明確的限制與預期的產出格式。

以 WordPress 開發一個按鈕短代碼(Shortcode)為例,對比兩種提示詞:

  • 糟糕的提示詞:// 幫我做一個按鈕的 shortcode
  • 優秀的提示詞:// 請用 WordPress 的 add_shortcode 函式,建立一個名為 'custom_button' 的短代碼。它需要接受三個屬性:'link'(連結網址)、'text'(按鈕文字)和 'style'(樣式)。'style' 可以是 'primary' 或 'secondary',預設值為 'primary'。所有傳入屬性都要做安全處理(escaping/sanitization),例如連結用 esc_url、文字用 esc_html。最終 HTML 結構像這樣:<a href="..." class="btn btn--primary">...</a>

差別在於:後者幾乎就是一份微型規格文件。你給的資訊越豐富、越結構化,AI 產出的程式碼就越接近可直接使用的程度。一個結構良好的提示詞,可能會生成這樣的程式碼:

<?php
// 一個好的 Prompt 可能會生成如下的程式碼
function roamer_custom_button_shortcode($atts) {
    // 設定預設屬性
    $atts = shortcode_atts(
        array(
            'link'  => '#',
            'text'  => 'Click Me',
            'style' => 'primary',
        ),
        $atts,
        'custom_button'
    );

    // 對屬性進行清理與安全處理
    $link = esc_url($atts['link']);
    $text = esc_html($atts['text']);
    $style = sanitize_key($atts['style']);

    // 驗證樣式,避免非預期的 class 出現
    $allowed_styles = array('primary', 'secondary');
    if (!in_array($style, $allowed_styles)) {
        $style = 'primary'; // 如果傳入不合法的樣式,就用預設值
    }

    // 產生 CSS class
    $css_class = 'btn btn--' . $style;

    // 產生最終的 HTML,並確保 class 也經過安全處理
    $output = sprintf(
        '<a href="%s" class="%s">%s</a>',
        $link,
        esc_attr($css_class),
        $text
    );

    return $output;
}
add_shortcode('custom_button', 'roamer_custom_button_shortcode');
?>

這段程式碼考慮了預設值、輸入清理與不合法樣式的回退處理,幾乎可以直接使用。這就是規格化提示詞的價值。一個實用的記憶框架,是讓提示詞涵蓋五個要素:

  1. 角色(Role):告訴 AI 它扮演什麼角色,例如「一個資深 WordPress 開發者」。
  2. 目標(Goal):明確說出你想完成什麼。
  3. 上下文(Context):提供相關背景資訊與程式碼範例。
  4. 限制與規則(Constraints):告訴它不能做什麼、必須遵循什麼規範(例如遵循 WordPress Coding Standards)。
  5. 輸出格式(Format):指定回傳格式,例如「一個完整的 PHP 函式」。

2. 上下文管理:餵對資料,AI 才不會胡說八道

AI 本身沒有你專案的「記憶」,你必須主動把上下文餵給它。這就像請一位廚師到你家做菜,如果不告訴他冰箱裡有哪些食材、有哪些鍋具,他廚藝再好也難以發揮。Cursor 的 @ 功能正是上下文管理的體現。

舉例來說,當要新增一個與 WooCommerce 訂單相關的功能時,可以這樣下指令:

我要客製化結帳頁面。請參考 @woocommerce/templates/checkout/form-checkout.php 這個檔案的結構,以及我目前主題的 @./functions.php 檔案。我想在帳單地址之後,新增一個「公司統編」欄位,並把它儲存到訂單的 meta data 中。

透過 @,你把兩個最關鍵的參考文件交給了 AI。它就能理解現有的程式碼風格與架構,生成更貼合專案、更少需要修改的程式碼。未來一個優秀的工程師,某種程度上也是一個懂得用高品質資料「餵養」AI 的人。

3. 程式碼審閱:AI 是副駕,不是自動駕駛

這是最重要、也最容易被忽略的一點:不要無腦複製貼上 AI 給你的任何一行程式碼。

AI 的知識來自它訓練時看過的大量公開程式碼,而網路上的程式碼品質參差不齊。它可能生成:

  • 有效能問題的程式碼:例如在迴圈中進行大量的資料庫查詢。
  • 有安全漏洞的程式碼:例如忘記在 WordPress 中使用 Nonce 來防止 CSRF 攻擊,或把使用者輸入直接拼接到 SQL 查詢中。
  • 不符合最佳實踐的程式碼:例如使用已經過時的函式或寫法。

AI 是你的副駕駛——它能幫你看地圖、提醒路況、協助換檔,但方向盤最終握在你手裡。你的經驗、你對架構的理解、你對安全性的執著,才是決定專案成敗的關鍵。你的角色從「生產者」轉變為「品管 + 架構師」:快速審閱 AI 的產出、判斷優劣,並在需要時親自修正或給予更精確的指令進行重構。

AI 會取代工程師嗎?

簡短回答:不會取代工程師,但會取代「不會用 AI 的工程師」。

每次技術浪潮來襲,總會有「XXX 取代 OOO」的焦慮。但歷史上,工具的進化從來不是為了取代人類,而是增強人類:蒸汽機沒有取代工人,而是讓工人能操作更強大的機器;計算機沒有取代會計師,而是讓會計師能處理更複雜的財務報表。

AI 也是一樣。它把我們從繁瑣、重複的編碼勞動中解放出來,讓我們有更多時間思考真正重要的事:系統架構設計、使用者體驗流程、商業邏輯的實現,以及更複雜問題的解決方案。與其擔心被取代,不如立刻擁抱、學習、駕馭它——打開 Cursor,用上面提到的三項技能去完成你的下一個任務,你的角色就會從敲鍵盤的工匠,逐步變成指揮 AI 的指揮官。

WordPress 開發者該如何開始?

建議從一個小任務開始,把「人機協作」變成日常習慣:

  1. 挑一個小範圍任務:例如下次需要建立一個新的 Custom Post Type(CPT)或 Shortcode 時,先別自己動手寫。
  2. 寫出規格化提示詞:用前面提到的五要素(角色、目標、上下文、限制、輸出格式)詳細描述需求,看 AI 能生成什麼。
  3. 用 @ 餵入專案上下文:引用相關範本與 functions.php,讓產出貼合你的專案風格。
  4. 仔細審閱並比較:把 AI 的產出與你自己會寫的做對照,找出差異、判斷優劣,並親自修正。
  5. 逐步融入工作流:從這種協作模式開始,慢慢把它變成日常開發的一部分。

對於如何把 AI 整合進開發流程,或打造更智慧、更自動化的企業系統有興趣嗎?浪花科技專注於提供深度的技術解決方案,我們不只寫 Code,更打造能為企業賦能的系統架構。歡迎點擊這裡,填寫表單與我們聊聊

延伸閱讀

// FAQ

常見問題

Cursor 和「VS Code 加 Copilot」差在哪裡?
Cursor 是一款以 AI 為核心重新設計的程式碼編輯器,它是 VS Code 的分支,AI 是編輯器的核心而非附加外掛。最大差異是全域上下文感知,你可以用 @ 符號把專案中的任何檔案、資料夾甚至官方文件納入對話上下文,讓 AI 的回答從猜測變成有根據的推論,並能進行跨檔案重構與一鍵除錯。
AI 時代工程師需要哪些核心技能?
重點從背 API 與演算法轉向精準指揮 AI。三項主幹能力是:提示詞工程(把需求寫成規格而非願望)、上下文管理(主動餵給 AI 正確的專案檔案與背景)、以及程式碼審閱(以品管與架構師身分把關 AI 產出)。撰寫語法的比重下降,定義需求、管理上下文、審閱產出的比重上升。
怎樣寫出好的提示詞讓 AI 產出可用的程式碼?
讓提示詞涵蓋五個要素:角色(例如資深 WordPress 開發者)、目標(明確要完成什麼)、上下文(相關背景與程式碼範例)、限制與規則(必須遵循的規範,如 WordPress Coding Standards)、輸出格式(指定回傳的格式)。提供的資訊越豐富、越結構化,產出就越接近可直接使用的程度。
AI 會取代工程師嗎?
AI 不會取代工程師,但會取代不會用 AI 的工程師。工具的進化是為了增強人類而非取代,它把工程師從繁瑣重複的編碼勞動中解放,讓人有更多時間專注於系統架構設計、使用者體驗與商業邏輯。工程師的角色會從生產者轉變為品管加架構師。
為什麼不該直接複製貼上 AI 產生的程式碼?
AI 的知識來自訓練時看過的大量公開程式碼,品質參差不齊,可能產生有效能問題(如在迴圈中大量查詢資料庫)、有安全漏洞(如忘記用 Nonce 防 CSRF、或把使用者輸入直接拼接到 SQL)、或不符最佳實踐的程式碼。AI 是副駕而非自動駕駛,每一行產出都應由開發者逐一審閱與把關。
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。

$
// final.exec()

準備好讓你的網站開始為你工作了嗎?