~/blog/intent-based-development-ai-prompt-guide-2026.md
AI 自動化與智慧應用 · 2026 / 03 / 01

AI 寫 Code 寫出一座垃圾山?2026 意圖驅動開發 (IBD) 實戰:拒絕技術債的 Prompt 工程學

Eric — 浪花科技創辦人 / AI 架構師
Eric
浪花科技創辦人 · AI 架構師
AI 寫 Code 寫出一座垃圾山?2026 意圖驅動開發 (IBD) 實戰:拒絕技術債的 Prompt 工程學
目錄 table-of-contents.md

Prompt 的本質不是聊天,而是規格。AI 寫 Code 會堆出一座垃圾山,多半不是模型不夠聰明,而是我們把模糊的念頭丟過去,卻期待換回乾淨的架構。意圖驅動開發(IBD)要做的,就是把「我想要什麼」寫成可驗證的意圖——這篇用實戰範例示範拒絕技術債的 Prompt 工程學。

在 2026 年的今天,生成式 AI 已經強大到可以秒產整個 WordPress 外掛或 Laravel 模組。但是,我們發現了一個恐怖的現象:軟體開發的速度變快了,但「技術債」累積的速度卻是指數級暴增。

很多開發者(甚至是資深工程師)陷入了「Vibe Coding」的陷阱——感覺對了就 Commit,反正 Code 能跑。結果三個月後,當你要維護時,才發現那是一坨邏輯不通、變數命名混亂、甚至充滿資安漏洞的義大利麵程式碼。今天要聊的,就是如何用「意圖驅動開發」(Intent-Based Development, IBD) 來拯救你的專案,讓 AI 成為你的頂級架構師,而不是製造垃圾的實習生。

什麼是意圖驅動開發 (Intent-Based Development)?

在 2024 年以前,我們習慣叫它 Prompt Engineering,但在 2026 年,這個詞已經不夠精確了。IBD 的核心哲學是:不要告訴 AI 「寫這段程式碼」,而是告訴它「為什麼要寫」、「在什麼情境下寫」以及「有哪些不可跨越的邊界」。

AI 模型(無論是 GPT-6 還是 Claude 4.5)本質上是機率模型,它們傾向於給出「最常見」的答案,而不是「最適合你專案架構」的答案。如果你只給指令 (Command),AI 就只會吐出程式碼片段;如果你給的是意圖 (Intent),AI 才能生成符合系統思維的解決方案。

IBD 的黃金三角架構

要在 2026 年寫出高品質、無技術債的 AI 指令,你必須遵循這個架構:

  • Context (脈絡):這段程式碼住在原本系統的哪裡?現有的架構模式是什麼?(例如:我們使用 Repository Pattern,不要把邏輯寫在 Controller 裡)。
  • Intent (意圖):業務邏輯的目標是什麼?(例如:我要做一個防止超賣的機制,而不是單純的庫存扣除)。
  • Constraints (邊界/約束):什麼是絕對不能做的?(例如:必須使用 WordPress 的 $wpdb->prepare 防止注入,禁止使用原生 PHP $_POST)。

實戰演練:從「垃圾 Prompt」到「IBD Prompt」

讓我們直接看一個 WordPress 開發的例子。假設我們要寫一個「取得最新文章並顯示」的短代碼。

❌ 導致技術債的 Prompt (The Lazy Prompt)

幫我寫一個 WordPress Shortcode,顯示最近 5 篇文章的標題和連結。

AI 可能產出的結果 (災難現場):


// 這段程式碼在 2026 年簡直是犯罪
function recent_posts_shortcode() {
    $posts = get_posts('numberposts=5');
    $output = '';
    return $output;
}
add_shortcode('recent_posts', 'recent_posts_shortcode');

這段程式碼有什麼問題?沒有快取 (效能殺手)、沒有 HTML 跳脫 (XSS 風險)、直接在函式內組字串 (難以維護)。這就是技術債的源頭。

✅ 意圖驅動開發 (IBD) 的 Prompt

身為資深工程師,你的 Prompt 應該長這樣:

Context: 我們正在開發一個高流量的企業級 WordPress 網站,嚴格遵守 WordPress Coding Standards (WPCS)。
Intent: 我需要一個 Shortcode `[roamer_latest_news]`,用於在首頁顯示最新消息。這是一個高頻讀取的區塊。
Constraints:
1. 必須使用 WordPress Transients API 進行快取 (快取時間 1 小時),避免每次都查詢資料庫。
2. HTML 輸出必須嚴格使用 `esc_html()` 和 `esc_url()` 進行跳脫。
3. 使用 `WP_Query` 而不是 `get_posts`,以便未來擴充。
4. 請將 HTML 結構與 PHP 邏輯盡量分離,或者使用 output buffer。
5. 如果沒有文章,不回傳任何 HTML。

AI 在 IBD 引導下產出的結果:


function roamer_latest_news_shortcode( $atts ) {
    // 1. 設定預設屬性 (防呆)
    $atts = shortcode_atts( array(
        'limit' => 5,
    ), $atts, 'roamer_latest_news' );

    // 2. 處理快取 Key,確保不同參數有不同快取
    $cache_key = 'roamer_latest_news_' . intval( $atts['limit'] );
    $query     = get_transient( $cache_key );

    if ( false === $query ) {
        $args = array(
            'post_type'      => 'post',
            'posts_per_page' => intval( $atts['limit'] ),
            'post_status'    => 'publish',
            // 優化效能:只查詢需要的欄位
            'no_found_rows'  => true,
        );
        $query = new WP_Query( $args );
        // 設定快取 1 小時
        set_transient( $cache_key, $query, HOUR_IN_SECONDS );
    }

    // 3. Output Buffer 與安全處理
    if ( $query->have_posts() ) {
        ob_start();
        ?>
        
    have_posts() ) : $query->the_post(); ?>
  • <a href="">
<?php wp_reset_postdata(); return ob_get_clean(); } return ''; } add_shortcode( 'roamer_latest_news', 'roamer_latest_news_shortcode' );

看到了嗎?這兩段程式碼的差距,就是「業餘」與「專業」的距離。第二段程式碼考慮了效能、安全性和可維護性,這才是不會產生技術債的程式碼。

2026 年避免 AI 技術債的 3 個關鍵心法

在浪花科技,我們強制要求工程師在使用 Antigravity 或 Copilot 時遵守以下原則:

1. 不要讓 AI 決定架構 (Architecture First)

AI 擅長填空,但不擅長畫設計圖。在開始 Prompt 之前,你必須先決定好資料夾結構、命名規則和設計模式(Design Pattern)。如果你讓 AI 決定要把函式寫在 functions.php 還是獨立的 Class 檔案,它通常會選擇最簡單(也最髒)的方式。

2. 建立專案級的「系統提示詞」(System Instructions)

在 Cursor 或 Antigravity 中,你可以設定專案層級的 Rules。把你的 Coding Style、資安規範(例如:所有 API 都要有 Nonce 驗證)寫進去。這就像是給 AI 戴上緊箍咒,讓它產出的每一行代碼都符合你的團隊規範。

3. Code Review 的對象是「意圖」而非「語法」

以前我們 Review 是看有沒有分號漏掉,現在 AI 不會犯這種錯。2026 年的 Code Review 重點在於:「這段 AI 生成的代碼,是否真正理解了我的業務邏輯?」 檢查它是否處理了邊緣情況 (Edge Cases),是否在錯誤發生時有適當的 Log 機制。

結論:你是駕駛員,AI 只是引擎

意圖驅動開發 (IBD) 的本質,其實是回歸到工程師的價值核心——思考與設計。AI 可以幫我們省下打字的時間,但它不能幫我們省下思考架構的時間。如果你懶得思考,AI 就會用最懶的方式幫你寫 Code,最後留下一堆 2026 年也難以修復的 Bug。

別讓你的專案變成 AI 的實驗場。掌握 Prompt 的主導權,用精準的意圖去驅動開發,這才是資深工程師在 AI 時代的生存之道。

延伸閱讀

想更深入了解如何駕馭 2026 年的 AI 開發工具與架構嗎?推薦你閱讀以下幾篇深度文章:

你的專案也被 AI 生成的劣質程式碼塞滿了嗎?

浪花科技擁有最前沿的 AI 協作開發經驗,我們懂得如何利用工具加速,同時堅守企業級的程式碼品質。別讓技術債拖垮你的業務,現在就聯繫我們,進行一場深度的技術健檢。

立即聯繫浪花科技,拯救你的程式碼
// FAQ

常見問題

什麼是意圖驅動開發(Intent-Based Development, IBD)?
IBD 是 Prompt Engineering 的進化概念,核心是不只告訴 AI「寫這段程式碼」,而是說明「為什麼要寫」、「在什麼情境下寫」以及「有哪些不可跨越的邊界」。因為大型語言模型本質上傾向給出最常見的答案,唯有提供意圖而非單純指令,它才能生成符合你系統架構與業務邏輯的解決方案。
撰寫高品質 AI 開發 Prompt 的黃金三角是什麼?
黃金三角由三部分組成:Context(脈絡)說明這段程式碼在系統中的位置與既有架構模式;Intent(意圖)說明業務邏輯的真正目標;Constraints(約束)列出絕對不能做的事,例如必須使用框架既有的防注入機制。三者齊備,AI 才能產出貼合專案需求的程式碼。
為什麼 AI 生成的程式碼容易累積技術債?
因為當你只給籠統指令、又懶得思考架構時,AI 會選擇最常見也最省事的寫法,往往缺少快取、HTML 跳脫、邊緣情況處理與適當的錯誤記錄,產出可以執行但難以維護的程式碼。這類缺陷會在後續維護時集中爆發,成為技術債的源頭。
在 Cursor 這類 AI IDE 中,如何讓 AI 持續遵守團隊的編碼與資安規範?
可以設定專案層級的 Rules 或系統提示詞(System Instructions),把編碼風格與資安規範(例如所有 API 都要有 Nonce 驗證)寫進去。這等於替 AI 戴上緊箍咒,讓它在該專案中產出的每一行程式碼都符合團隊既定規範,而不必每次重複交代。
在 AI 時代,Code Review 的重點應該放在哪裡?
重點應從檢查語法(如漏分號,AI 已很少犯這類錯)轉向檢查意圖:這段 AI 生成的程式碼是否真正理解了業務邏輯、是否處理了邊緣情況、是否在錯誤發生時有適當的記錄機制。換言之,審查的是 AI 對需求的理解,而非表面語法。
~/roamer-tech/newsletter // FREE
// newsletter

訂閱免費電子報

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

$
// final.exec()

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