iT邦幫忙

tdd相關文章
共有 130 則文章
鐵人賽 DevOps
應該是 Profilling 吧? 系列 第 32

技術 D32 Building Operable Software with TDD (but not the way you think)

Building Operable Software with TDD (but not the way you think) - Martin Thwaite...

鐵人賽 Modern Web DAY 21

技術 Day21 — 穩如泰山 | 測試換個寫法試試看? AI 協助下的新寫法嘗試

前言 上一次我們測試的寫法,是先請 AI 幫我們大致產出來,修正測試項目,最後才做重構。發現這樣前前後後修改起來,也是蠻花時間的,而且需要花心思去額外比對,看測...

鐵人賽 自我挑戰組 DAY 18
JCConf 2024 系列 第 21

技術 從紅燈到綠燈

本屆 #JCConf 邀請到 高見龍 分享「從紅燈到綠燈」 講題簡介:測試驅動開發(TDD)是現代軟體工程領域中廣為人知的開發方法。先撰寫測試個案描述實作功能...

鐵人賽 自我挑戰組 DAY 9

技術 Day09 Insert New Block To SQL

Hi all, 今天第九天 今天就來讓專案可以 Insert Block吧! 那由於主要內容都是與SQL做互動,所以我們的code 主要也會動在 reposit...

鐵人賽 自我挑戰組 DAY 5

技術 Day05 Generate New Block

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

鐵人賽 自我挑戰組 DAY 4

技術 Day04 Get the First Block

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

鐵人賽 自我挑戰組 DAY 3

技術 Day03 Introduce 三層式架構

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

鐵人賽 自我挑戰組 DAY 2

技術 Day02 Introduce TDD

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

鐵人賽 影片教學 DAY 30

技術 Day 30 Last Dance

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

鐵人賽 影片教學 DAY 29

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

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

鐵人賽 影片教學 DAY 28

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

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

鐵人賽 影片教學 DAY 27

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

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

鐵人賽 影片教學 DAY 26

技術 Day 26 Recovery 1/2 簡介與壞掉的 Test

Recovery Recovery 是 Slot 遊戲當中很重要的一個功能。Recovery 在做的事情就是,當玩家遊戲玩到一半,突然斷線或想要暫停的時候,可...

鐵人賽 影片教學 DAY 25

技術 Day 25 RTP、體感,與 Simulator

RTP 在做完前面這麼多功能與測試之後,今天我們要聊的主題叫做 RTP:Return to Player Percentage,它代表的是玩家每投入 $100...

鐵人賽 影片教學 DAY 24

技術 Day 24 由加入一個新遊戲談重構的好處與 Test Scope 的選擇

New Game 今天我們來加一個新遊戲。何謂加一個新遊戲?就我們現在的架構來說,加一個新遊戲,就是設計兩個新的 GameFlow,一個給 Base Game...

鐵人賽 影片教學 DAY 23

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

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

鐵人賽 影片教學 DAY 22

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

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

鐵人賽 影片教學 DAY 21

技術 Day 21 重構第一步:把長得很像的東西寫成一模一樣

過猶不及 重構的過程中,「不知道目標」與「硬重構成不適合的目標」都是常見造成未來更高維護成本的情況。不知道目標比較常出現在只知道完成工作,從沒想過要做得更好的...

鐵人賽 影片教學 DAY 20

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

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

鐵人賽 影片教學 DAY 19

技術 Day 19 Free Game 完整版

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

鐵人賽 Software Development DAY 29

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

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

鐵人賽 影片教學 DAY 18

技術 Day 18 Free Game 簡介與開頭

Free Game Free Game 顧名思義就是免費遊戲,是系統「送」你的。相對於 Free Game,我們到昨天為止玩的普通遊戲,就叫 Base Gam...

鐵人賽 影片教學 DAY 17

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

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

鐵人賽 影片教學 DAY 15

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

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

鐵人賽 影片教學 DAY 16

技術 Day 16 Primitive Obsession 與 CQS

More on CQS 我們試圖把命令與查詢從介面上分開,分開的原因是因為當狀態改變,其實會受到影響的狀態不只一個,會受到影響的查詢指令也不只一個。如果命令與...

鐵人賽 影片教學 DAY 14

技術 Day 14 與前端溝通 Spin 後的盤面

回傳足夠且正確的資料給前端 原來我們前後端訂好的介面,只要回傳贏的分數(win)就好,但因為表現有需要,所以只回傳 win 是不夠的,還得加上新的盤面才行。我...

鐵人賽 影片教學 DAY 13

技術 Day 13 重構出易抽換的 Random Number Generator

依賴反轉 為了達到「在不同場景替換不同 Random」的目的,我們必須讓每次的抽換,所付出的開發成本最小化。要達到這目標,有一個最關鍵檔在前面的阻礙:Java...

鐵人賽 AI & Data DAY 7

技術 [Day 07] - Rust x 單元測試 x MLOps (上)

今日份 Ferris 在這部分最一開始提到很多我們在 Python 中熟悉的概念都能轉換到 Rust 中,前幾天建立的 GitHub Template 便是其中...

鐵人賽 影片教學 DAY 12

技術 Day 12 Random 與 Dependency Inversion

Random 今天的主題,會進入到一個 SLOT 非常非常關鍵的元素:Random。Random 為什麼重要?因為 SLOT 的基本就是要公平,要不可預測,否...

鐵人賽 影片教學 DAY 11

技術 Day 11 Design by Contract

Design by Contract 除了單元測試,還有另一種方式,也可以在程式邏輯有誤時,幫你主動抓出來。這是一種設計風格:依合約設計(Design by...