iT邦幫忙

技術文章

RSS
鐵人賽 AI Engineering DAY 14

Day 14 讓 AI 長出雙手:Dify 工作流 (Workflow) 與外部 API 工具串接

昨天我們成功讓 AI 熟讀了專案的 README,打造出能回答環境設定問題的 Chatbot。然而,在企業的真實開發場景中,新人遇到的阻礙往往不僅是「不知道怎麼...

鐵人賽 Software Development DAY 19

Day 19:失敗要退避重試,但退避策略怎麼選

前言:重試前要不要等待,等多久? Day 12 講過失敗要局部重試,但沒細講「重試前該等多久」。立刻重試聽起來反應最快,但如果失敗原因是對方暫時過載,立刻重試只...

鐵人賽 Claude AI DAY 19

Day 19:第二部回顧——路線走偏不是能力問題,是意圖沒對齊

前言:跟第一部同樣的結論,換了一個層面 第一部收斂成「喊停的成本要看可不可逆」;第二部走過九天,也可以收斂成一句類似結構的話:路線走偏,幾乎都不是執行能力不夠,...

鐵人賽 AI Engineering DAY 28

Day 28:這套雜記寫作方式本身——用真實對話當素材,也要去識別化

前言:這系列的素材,到底可不可信? 「你這系列講的都是跟 AI 協作時真的發生過的事,那應該直接把對話紀錄貼出來最有說服力吧?」 這個問題我在動筆前也問過自己。...

鐵人賽 Vibe Coding DAY 27

Day 027:讓人與 Agent 共用操作入口——Jupiter 回到 BearPunch

讓人與 Agent 共用操作入口:Jupiter 回到 BearPunch Day 026 處理的是 Agent 開工前拿到什麼:依 workspace 配發工...

鐵人賽 Software Development DAY 19

Day 19:讓 AI 寫 Test Double 時要注意的邊界——Dummy/Stub/Fake/Spy/Mock

前言:反正都是「假的依賴」,選哪一種有差嗎? 「Test Double 不就是拿一個假的物件頂替真的依賴嗎?隨便用一種 mocking 框架生一個出來,測試能跑...

鐵人賽 Claude AI DAY 28

Day 28:重構進度怎麼追蹤——一個尚未完成的長期遷移計畫管理法

前言:進度清單本身,就是一份記憶 「這項長期遷移計畫的進度,我們有記在清單裡,要用的時候查一下就好了吧?」 Day 20 講過記憶會過期,今天要把這個原則套用到...

鐵人賽 Vibe Coding DAY 28

Day 28:AI 對 OSS 維護生態的影響:好處與隱憂

前言:從一個專案的視角,跳出來看整個生態 「你這 27 天講的都是 PHPUnit & Pest Test Explorer 這一個專案的故事,AI 輔...

鐵人賽 自我挑戰組 DAY 0

Day 13:案例——一個技術主張查出來是對的,但呈現方式需要跟人討論

前言 「查核結果說『✅ 正確』,那不就代表這段內容沒問題,可以直接放著不用管了嗎?」 「正確」跟「呈現得好」是兩件事。一個技術主張可以在事實層面完全站得住腳,查...

鐵人賽 Claude AI DAY 13

Day 13 - 用 Claude Code 產生使用者故事與驗收標準

Day 13 - 用 Claude Code 產生使用者故事與驗收標準 成功標準 你走進蛋糕店買草莓蛋糕,菜單寫著「鋪滿 5 顆大草莓與香草奶油」。蛋糕一拿出...

鐵人賽 IT Operation DAY 23

Day 23:把 `--no-coverage` 拿掉,會發生什麼事

前言:把覆蓋率的開關打開,要花多少功夫? 「覆蓋率工具要裝、要設定門檻、CI 要改,聽起來是一個大工程吧?」 前幾天看到 phpunit.xml 裡明明有完整的...

鐵人賽 Software Development DAY 14

Day 14:兩個版本通過同一組測試,但只有一個「設計對」——為什麼

前言:「測試都綠燈了,還要吵什麼設計問題?」 這句話幾乎是每個團隊在 code review 時都會遇到的攔阻論點:PR 附上了測試報告,10 個測試全部通過,...

鐵人賽 AI Engineering DAY 28

Day 28:AI 時代的架構師角色——從畫圖的人變成訂邊界規則的人

前言:架構圖畫得再漂亮,AI 也不會照著做 「我們架構師花了一整週產出一份完整的分層架構圖,貼在 wiki 上,結果 AI 一動手還是把邏輯全塞在 Contro...

鐵人賽 IT Operation DAY 26

Day 26:Docker 基礎 (二) — 撰寫 Dockerfile 打包第一個自訂 Image

上一篇文章成功在 Ubuntu 虛擬機中安裝了 Docker,並拉取了官方的 Nginx Image 啟動第一個容器。然而在實際的 DevOps 開發與維運情境...

鐵人賽 AI Security DAY 22

Day 22|Agent 能不能只為「這個任務」取得權限?

Core Question 如何讓 authority 綁定 task goal、計畫或 workflow instance,避免被挪用到另一個任務? 今天的問...

鐵人賽 Kubernetes DAY 14
不囉唆圖解 Kubernetes 系列 第 14 篇

Day 14:K8s 重要角色登場,泡泡 Pod 會破,柱子 Service 不會

Day 14:K8s 重要角色登場,泡泡 Pod 會破,柱子 Service 不會 三顆泡泡(Pod)各有各的 IP,而且滾動更新一次全部換掉。前面的人到底要打...

鐵人賽 Vibe Coding DAY 13

測試全綠的算錢程式,一對帳少算四成多

8 月 27 日晚上,usage(我做的小工具)的檢查指令 --doctor 印出這一行: claude cost: official $2.49, usage...

鐵人賽 Vibe Coding DAY 13

# Day 13:響應式 Layout 開發:指示 AI 生成 App 核心頁面外框與 Navigation

今日目標 昨天我們完成了 Tailwind CSS 與 shadcn/ui 的 Design System(設計系統)配置。今天,我們要正式把應用程式的「骨架」...

鐵人賽 自我挑戰組 DAY 13

一個蘿蔔一個坑 - 關注點分離 (Separation of Concerns)

想像一間生意興隆的餐廳:主廚專心料理、外場專心點餐送餐、收銀專心結帳、採購專心進貨。每個人各守各的崗位,一個蘿蔔一個坑,整間餐廳才能順暢運轉。反過來說,如果有一...

鐵人賽 Vibe Coding DAY 24

Day 24|現在都交給 AI 全自動了,誰還在那邊確認?

前面有個小結拋了個問題,留到現在:「人自己開發也常常沒做這些啊?現在都交給 AI 了,我只要叫它幫我做好不就好了?我就是想要快、不想一直人工處理才找 AI,為什...

Day 13|||、??、三元運算子都像在給預設值,到底怎麼選?

前幾天我們一路講到: null undefined "" 0 false 這些值在 JavaScript 裡看起來都很容易被歸類成: 「...

鐵人賽 Software Development DAY 29

Day 29 - 截圖驗證的盲區:三個版本錯誤,但報告都說一致

Part 4 開始。換一個案子、換一個角度。 前面二十八天都在講「怎麼讓產出是對的」。接下來七天要處理一個更前面的問題: 你怎麼知道你「驗證過了」? 那個案子的...

鐵人賽 Vibe Coding DAY 13

Day 13|設計訂單狀態機

團購訂單有五種狀態。狀態本身不難,難的是每個狀態允許哪些操作——這件事若沒有明確定義,會散落成各處的 if 判斷。 狀態 意義 可下單/改單 可取消 可扣...

鐵人賽 Claude AI DAY 13

Day 16|讓 Skill 漸進式揭露:SKILL.md 保持短,把細節放到 references 與 scripts

昨日回顧 Day 15 把 Skill 的觸發範圍寫進 description,並用 positive、negative、near miss 案例檢查 Clau...

鐵人賽 Claude AI DAY 14

Day 14:【週記】Day 8-13 回顧:worktree 平行開發真的有比較快嗎?數據公開與反思

系列:奇幻塔防開發實錄:用 Claude 打造一款有靈魂的塔防遊戲今日工具:git worktree + Claude Code(數據回顧)今日進度:三筆平...

鐵人賽 Build on Google AI DAY 27

Day 28|Prompt Injection、權限與資料外洩測試

今天要完成什麼 Agent 會讀郵件與文件,攻擊者不必直接和它聊天,只要把指令藏進資料。今天建立 threat model,並用惡意 fixture 驗證 p...

鐵人賽 AI Engineering DAY 13

Day 13|Deadline 越近,就一定要越優先嗎?

前言 Day 12 我們已經讓 Gemini 第一次幫我們把多個 Todo 排出順序。 看完結果後,我發現一個很有意思的問題:Deadline 越近,真的就代表...

鐵人賽 ChatGPT & Codex DAY 20

# Day 20|讓 Codex 當第二雙眼睛:第一次 AI Code Review

昨天請 Codex 完成了一次小範圍重構,並建立 reconstruct commit。 測試、lint 和 build 都通過了,但這些檢查不一定能發現所有問...

鐵人賽 自我挑戰組 DAY 17

[Day 19] 揭開電商回購的殘酷真相:繪製留存熱力圖揪出 Olist 的「回購斷崖」

留存率——檢驗商業體質的終極照妖鏡 在 Day 17 與 Day 18 中,我們完成了 RFM 客戶價值金字塔,當時資料輪廓透露出一個令人不安的訊號:全平台有高...

鐵人賽 自我挑戰組 DAY 13

Day 13| CSS 初步認識

前 12 篇一路都在認識 HTML。從最基本的標籤,到網頁的結構、清單、表格和表單,慢慢把它搞懂,但畢竟網頁不能這麼樸素。所以今天終於進入下一個學習階段啦! C...