{oc.tech.notes} 技術誌
技術誌記錄學習或專案執行當下遇到的問題及解決方案,方便日後翻查,益人益己!
2026/03/09
用 GitHub Copilot 程式開發小試身手心得
### 前言
透過 Coding Agent 完全不動手寫 Code 來開發,最初都會卡在起手式,不知道從何下手。
剛好前陣子手邊有一個小專案可以拿來試試,就用它來分享我的漸進開發心得!
### 開發環境
- Windows 10
- VS Code + GitHub Copilot Chat
- .NET 10
目標是建立一個 .NET 的 Console App,讀取 Excel 資料,依資料擷取資訊,再輸出成 Excel 結果。
### 第一階段: 正常開發模式
整個 App 是照著我原本的開發流程來走,還沒完全讓 Coding Agent 介入的開發模式。
因為完整的功能需求及流程是手刻完成,每行程式都是有 review 過的,在專案中會使用到的套件也都很明確。
我把這個手刻的版本當成我要跟 AI 協作過程的成果依據來開始作試驗。
### 第二階段: Vibe Coding
有了一個完整的成果,也有明確的規則,直接用 Agent 模式,打一大串提示詞,包含技術規格及輸入輸出格式,就讓它自由發揮。
第一版出來的結果大致上有想要的結果,但是因為初次嚐試,沒讓它幫我寫測試,所以當發現有某些欄位沒有預期的值時,會需要這裡修那裡修,反覆下提示詞做修改。
我覺得如果是很小的專案,像是一頁式網頁或小遊戲,是可以讓 Agent 一次做足想要的功能。
### 第三階段: SDD 開發模式
大家也知道 Vibe Coding 想要讓專案一次到位是有困難的,然後也不免會改A壞B的狀況發生。
所以 SDD(Specification-Driven Development,規格驅動開發)的出現,把開發流程變得可控一點。
說實在,要全放手讓 AI 完全介入到開發這件事,我本身沒有一開始就追,所以呢,讓子彈飛一下也是有好處的,就在這一兩月的時間裡,不管是開發模式或是 AI 模型,都大幅地進步,也造就許多前人先踩過很多雷再帶出新方法。
至於 SDD,我就試著用 GitHub Spec Kit 以及 OpenSpec 做相同的 app 開發,試試哪一種更適合我的習慣及可接受的開發流程。
先試著用 Spec-Kit 開發,把 Vibe Coding 用的提示詞,再經過修正後,讓它建立規格,校正我要的規格後,再做執行開發。效果的確也有達到成果,只是我本身會卡在若要加功能,起手式好像有點無所適從。
接下來再試 OpenSpec 做相同的事,先提案產生規格,執行改變,到確認歸檔。有新功能,再重覆做 propose, apply, 最後 archive。我好像找到了目前適合我與 AI 協作的開發模式。
### 小結心得
透過不同的方法,即便提示詞大同小異,使用不同的模型也會幫你建出不同的程式碼,初次嚐試 Coding Agent 也實在是驚豔。
AI 掘起的現今,不得不與 AI 同行,要怎麼協作是很大的功課。開發流程的改變,不得不說真的也有影響,隨著各大廠推陳出新的模型,要怎麼運用愈來愈聰明的模型來幫助自己,需要自己動手動腦下去找答案。
我的嚐試方式就是以上的三個階段,先從自己熟悉的開始,然後再用不同的方法,來試著達到相同的成果。未來也許做法又會有所改變,也只能跟著改變,那就靜觀其變吧!
2026/03/01
[Copilot] 近期驚呼有感之 AI 時代一起協作程式開發
markdown
2026 年也才剛過兩個月,近期與 AI 的協作開發有很大的改變。
去年此時,還只是跟 AI 聊聊天,生成一些需要的程式片斷,或者在 IDE 讓 AI 做程式補全。
去年底開始到今年初,各家 AI 推陳出新,快到讓人有種追著跑的感覺。
各式各樣的 AI 工具接連推出,現在程式開發者或多或少都有用過 Claude Code、OpenAI Codex 和 GitHub Copilot 其中之一的 AI 工具吧?!
我個人本身都是用 GitHub Copilot 來協作開發,去年主要都以程式補全為主,而今年開始接觸試著 Vibe Coding 到 SDD 開發,有感 AI 發展的神速。
也許去年沒有緊追 AI 也不算壞事,大家都在找方法,找與 AI 更好的協作方式。
而今年開始,似乎摸索出與 AI 有著更好的協作雛形,不論是不懂程式的小白或是懂程式的工程師。
上個月用 GitHub Copilt 協作做了兩個小工具,有興趣的可以看看,小工具完全開源,坐落在輕工具小鎮:Winnie @ Tiny Tool Town 還有一個我很喜歡玩的小遊戲 Sudoku,瀏覽器打開就可以玩。 以前要是開發這個程式,至少也要耗上好幾個小時甚至幾天研究並開發。誰能想像現在只要給文字描述就能請 AI 在幾分鐘內幫忙完成至少九成以上功能。 玩完一盤的時間,還比開發它的時間還長,你說誇不誇張? Play Game: Sudoku 先聊到這裡,之後再來分享一些協作開發心得!
上個月用 GitHub Copilt 協作做了兩個小工具,有興趣的可以看看,小工具完全開源,坐落在輕工具小鎮:Winnie @ Tiny Tool Town 還有一個我很喜歡玩的小遊戲 Sudoku,瀏覽器打開就可以玩。 以前要是開發這個程式,至少也要耗上好幾個小時甚至幾天研究並開發。誰能想像現在只要給文字描述就能請 AI 在幾分鐘內幫忙完成至少九成以上功能。 玩完一盤的時間,還比開發它的時間還長,你說誇不誇張? Play Game: Sudoku 先聊到這裡,之後再來分享一些協作開發心得!
2025/07/09
[Windows] 系統更新後,無法正常使用倉頡輸入法
markdown
今日 Windows 11 系統更新 (KB5062553)
發生無法正常使用倉頡輸入法
解法:
1. 移掉更新版本 KB5062553
2. 變更輸入法相容性,開啟 使用舊版的微軟倉頡
因為是在更新系統後才發生的,重開機後立刻遇到無法打字,直覺就是更新造成的問題。
結果我不孤單,上網查了一下,還是有蠻多人跟我遇到同樣症狀,我採用解法 2,改相容性後就正常了
### 設定路徑
設定路徑太複雜,無法一步到位,以下是詳細的設定路徑:
1. 設定 / 時間與語言 / 語言與地區 (或是在工具列右下角的 "倉" 點開選單,選擇 "更多鍵盤設定")
2. 選擇 "繁體中文(台灣)" (點右方 ... 開啟其他選項,選擇 "語言選項")
3. 選擇 "微軟倉頡" (點右方 ... 開啟其他選項,選擇 "鍵盤選項")
4. 移到最下方 "相容性" / 使用舊版的微軟倉頡 點選 "開啟" 即可
2025/04/06
[EF Core] 解決 Decimal 類型出現 No store type was specified for the decimal property 警告訊息
markdown
### 版本
- .NET 8
- EF Core 9
### 問題
在 EF Core 使用 decimal 類型的屬性時,一直跳出
No store type was specified for the decimal property 的警告訊息
### 解決方法
在屬性上方加上 [Precision(18, 2)]
```cs
[Precision(18, 2)]
public decimal Price { get; set; }
```
> 需要 .NET EF Core 6 以上的版本才支援
### 參考
- MS Learn - PrecisionAttribute Class
- Decimal precision and scale in EF Code First
2025/02/21
[ASP.NET Core] 解決如何從 Docker Container 連至本機的 SQL Server
markdown
### 問題
在 Visual Studio 開發 ASP.NET Core 網站以 IIS Express 啟動時可正確連線 SQL Server 的資料庫。
近期改以 Docker 來啟動網站時,出現以下錯誤訊息:
SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)
2025/01/30
[AI] 如何在本地機器使用 DeepSeek-R1 模型
markdown
### 前言
AI 話題這幾年一直話題不斷,而前一陣子 DeepSeek 的聲量突然上升了不少,好像不研究一下不行。
今天就花了些時間,研究如何在本地執行 DeepSeek-R1 模型。
### 安裝步驟
1. 安裝 Ollama
2. 使用 DeepSeek-R1 模型
3. 執行 Open-WebUI
2025/01/26
[ASP.NET Core] 如何在 ASP.NET Core 專案中的 Dockerfile 設定預設時區
markdown
### 問題
在開發 ASP.NET Core 專案時,Docker Image 預設的時區是 UTC,可以把時區預設定在 Asia/Taipei 嗎?
### 環境
- Windows 11
- Visual Studio 2022 (v17.12.4)
- ASP.NET Core (.NET 8)
### 解決方法
在 Dockerfile 的 base 上加一段 `ENV TZ=Asia/Taipei`
(有試過加在 final 上,但是在 Visual Studio 開發時並不會正確載入,發佈到 Azure Web App for Containers 確認是有正確載入時區的)
而且 Image 要選 `dotnet/aspnet:8.0` 不要選 `dotnet/aspnet:8.0-jammy-chiseled` (不能因為佔空間才選它,它是不包含 tzdata 套件的)
```
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
ENV TZ=Asia/Taipei # 加 TZ 這一個變數
EXPOSE 8080
EXPOSE 8081
...
```
若是不想要變更 Dockerfile 的設定,在 Visual Studio 開發,可以修改 `launchSettings.json` 檔案
在 Dockerfile 的 environmentVariables 加上 `TZ` 的參數
執行 docker run 的命令會帶入 TZ 的環境變數值
訂閱:
文章 (Atom)


