iT邦幫忙

tdd相關文章
共有 162 則文章
鐵人賽 影片教學 DAY 10

技術 Day 10 重構出輪帶表與盤面物件

再消基本型別偏執 基本型別是必要的存在,因為它儲存了系統的狀態。為什麼「基本型別偏執」會是一個壞味道?因為如果我們大量地直接操作基本型別,那麼閱讀者(也就是三...

鐵人賽 Software Development DAY 29

技術 來用 TDD 開發 Airflow DAG 吧 - Day29

TDD(測試驅動開發 Test Driven Develop)是一種軟體開發方法,它要求在編寫任何程式碼之前,先撰寫測試案例。這樣可以確保程式碼的品質和可靠性,...

鐵人賽 影片教學 DAY 28

技術 Day 28 善用依賴注入,動態決定 trigger free game 的規則

視情況注入判斷規則 截至目前為止,我們判斷要不要從 Base Game 進入 Free Game 的規則都是固定的,我們進入 Free Game 之後要送幾場...

鐵人賽 Software Development DAY 2

技術 Day 2 - 工欲善其事:搭建 Golang 開發與測試環境

昨日回顧與今日目標 在 Day 1,我們了解 TDD「紅燈-綠燈-重構」的核心思想,並建立起「TDD 是為了更快地交付高品質軟體」的正確心態。理論的種子已經播下...

鐵人賽 自我挑戰組 DAY 2

技術 Day02 Introduce TDD

Hi all, 來到第二天 想先來介紹介紹自己的開發方式,以便往後的code在順序上是看得懂的。 首先 TDD 全名是 測試驅動開發 (Test Driven...

鐵人賽 影片教學 DAY 29

技術 Day 29 用簡單工廠來簡化建立 Calculator 的方式

簡單工廠 現在我們的 Calculator 已經有 Slot 算分器基本要有的功能了。真要說的話,一個非功能需求我們還沒達成,也就是「容易創建」。 現在的...

鐵人賽 Software Development DAY 21

技術 Day 21 - 使用 AI 窮舉邊界:讓你的測試無懈可擊

昨日回顧與今日目標 在 Day 20,我們完成了一次 AI TDD 實戰,從零開發了一個 Gin API 端點。我們證明了,即使在涉及框架和 HTTP 的場景下...

鐵人賽 影片教學 DAY 20

技術 Day 20 重構前準備:完整邏輯與 Checked Exception

Checked Exception 與 Unchecked Exception 「例外處理不就是 try-catch 嗎?有什麼難的?」 會說這種話的人,肯定...

鐵人賽 影片教學 DAY 30

技術 Day 30 Last Dance

類別整理 我們花了二十幾天,從一行程式都沒有,甚至連規則都不太清楚的情況下,開始我們的 TDD ft. Slot 之旅。我們一開始什麼都不會,只會寫死 ret...

鐵人賽 自我挑戰組 DAY 5

技術 Day05 Generate New Block

Hi all, 來到第五天,今天目標是是解說下 區塊的產生並將其實做出來。 首先我們的區塊組成如昨天所述: { "Id": 0, &...

鐵人賽 影片教學 DAY 27

技術 Day 27 Recovery 2/2 用 Memento 實現 Recovery

TDD ft. Recovery 在實踐 Recovery 時,按 TDD 的流程,我們要先給一個壞掉的測試。這裡既然我們已經決定要用 Memento 設計模...

鐵人賽 影片教學 DAY 6

技術 Day 6 Extract Method

抽方法 抽方法是很常見的重構技巧,其好處有二: 把一個很長很雜亂的函式整理乾淨 抽出去的方法可以命名得更能暴露意圖 有些人會質疑,因為抽方法並不是重構的萬...

鐵人賽 Software Development DAY 19

技術 Day 19 - AI 輔助重構與測試覆蓋:讓 AI 成為你的 Code Reviewer

昨日回顧與今日目標 在 Day 18 的完整實戰中,我們成功地指揮 AI,遵循 G-P-T-R 模式完成了一個微型 Kata。我們體驗了如何透過精準的 Prom...

鐵人賽 自我挑戰組 DAY 4

技術 Day04 Get the First Block

Hi all, 到了第四天終於可以來搞專案了,今天的目標很簡單,我想要寫出取得 Block 的 API。 首先來簡單介紹下 Block 的結構: { In...

鐵人賽 影片教學 DAY 22

技術 Day 22 抽象化的 Free Game 與 Base Game

存異求同 Base Game 與 Free Game 一開始時差很多,經過我們一番整理後,看起來長得很像,而事實上它們不只長得很像,它們其實本質上根本就在做同...

鐵人賽 影片教學 DAY 19

技術 Day 19 Free Game 完整版

邊做邊重構 一直以來我們都是使用「邊做邊重構」的方式來進行開發,本集也不例外。這一集與其他集不同的是,我們要一口氣把 Free Game 的邏輯做完。 雖說是...

鐵人賽 Software Development DAY 18

技術 Day 18 - AI 詠唱術:從需求到產品的完整 TDD 演練

昨日回顧與今日目標 在 Day 17 中,我們成功整合了 AI 好同事——GitHub Copilot,但我們也需要能夠意識到,一個只會瘋狂寫 producti...

鐵人賽 Software Development DAY 3

技術 Day 3 - Golang 語法速成:打造「可測試」的函式、結構與介面

昨日回顧與今日目標 在昨天,我們已經成功 setup Golang 開發與測試環境,並透過一個簡單的 Hello, Test! 驗證了所有工具都已就緒,我們的...

鐵人賽 影片教學 DAY 15

技術 Day 15 不改變狀態的 Query 接口

CQS 在軟體設計中有一種思路叫「命令與查詢分離」(Command Query Separation),意思是指我們把所有操作都分成兩種:會改變狀態的命令,與...

鐵人賽 自我挑戰組 DAY 3

技術 Day03 Introduce 三層式架構

Hi all, 來到第三天,今天來稍微介紹下這次 side project 的專案架構好了。 這次主要會是以 tdd 的角度搭建所謂的 三層式架構,分別是 Co...

鐵人賽 Software Development DAY 5

技術 Day 5 - 寫出優雅的 Assertion: 使用 testing 套件與 stretchr/testify

昨日回顧與今日目標 在 Day 4,我們掌握了 Go 內建的測試工具,學會了 _test.go 的檔案結構和 go test 指令的實用flag,我們現在已經可...

鐵人賽 Software Development DAY 7

技術 Day 7 - 處理依賴:測試中的 Mock 與 Stub 基礎

昨日回顧與今日目標 在 Day 6,我們透過「表格驅動測試」掌握了組織和擴充測試案例的強大模式。到目前為止,我們測試的 Add 函式是一個美好的「純函式」——沒...

鐵人賽 Software Development DAY 6

技術 Day 6 表格驅動測試 (Table Driven Tests) : Go 語言的測試慣用法

昨日回顧與今日目標 在 Day 5,我們學會了使用 testify 套件來撰寫優雅且富有表達力的斷言,並掌握了 assert 和 require 的使用時機,讓...

鐵人賽 影片教學 DAY 17

技術 Day 17 大步重構出 單一 Reel 物件

TDD 的「標準姿勢」 重構的過程中,我一定要用付費的 IDE 來做事嗎?我一定要把步驟切這麼小嗎?當我腦中就真的有一個非常清楚的樣貌,這時我可不可以不要 b...

鐵人賽 影片教學 DAY 23

技術 Day 23 Free Game 最終日:抽象化與設計模式

抽象化 抽象化是所有重構技巧的根基。何謂抽象化?抽象化指的是一段程式碼不被當下的特殊狀態綁住,單純只看業務邏輯,抽象化也是一個把『不同』與『相同』分離出來的技...

鐵人賽 Software Development DAY 29

技術 Day 29 - 案例研究:一位 會用 AI 開發的 TDD 開發者的一天

昨日回顧與今日目標 在 Day 28 的探討中,我們審視了在專業環境中使用 AI 的倫理、版權與隱私議題,並認識到作為一個負責任的開發者,我們需要擁抱 AI 的...

鐵人賽 Software Development DAY 17

技術 Day 17 - 迎接 AI 隊友:設定 GitHub Copilot 的協作環境

昨日回顧與今日目標 在 Day 16 的理性探討中,我們面對了 TDD 的適用邊界,我們認識到,TDD 雖是利器,卻非萬能的銀彈。 在過去的兩週裡,我們投入了大...

鐵人賽 Software Development DAY 22

技術 Day 22 - AI 輔助併發測試:處理 Go 語言的核心挑戰

昨日回顧與今日目標 在 Day 21,我們成功地將 AI 轉變為我們的專業QA,利用它的窮舉能力,為我們的程式碼增加了大量邊界條件測試,極大地提升了程式碼的可用...

鐵人賽 Software Development DAY 9

技術 Day 9 - Kata 演練:FizzBuzz (一) - 寫下第一個失敗的測試 (紅燈)

昨日回顧與今日目標 在 Day 8,我們成功搭建了 TDD Kata 練習的專案,一個結構清晰的 go-tdd-kata 專案。我們將開始 TDD 的黃金循環:...

鐵人賽 Software Development DAY 24

技術 Day 24 - 迎接 ATDD:當測試成為「對話」的起點

昨日回顧與今日目標 在 Day 23,我們體驗了 TDD 實踐中最棘手的敵人——遺留程式碼,我們學會了利用 AI 生成「特性測試」,為前人留下的舊程式碼建立起保...