iT邦幫忙

tdd相關文章
共有 207 則文章
鐵人賽 影片教學 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...

鐵人賽 影片教學 DAY 10

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

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

鐵人賽 影片教學 DAY 9

技術 Day 9 重構長方法與 Primitive Obsession

長方法 長方法的問題顯而易見地就是閱讀困難。一句話超過兩行,我們就會認為文字不夠精煉而不易閱讀,一段 Code 也是,超過一定長度,就會超出大腦負荷,語意的表...

鐵人賽 自我挑戰組 DAY 18

技術 Day18 CH9 設計節省成本的測試(上)

談測試之前,我們必須先知道,撰寫可修改的程式碼實踐依賴於三項不同的技能: 必須瞭解物件導向設計了解如何設計良好的對象和類結構是至關重要的。合理的設計可以最小...

鐵人賽 影片教學 DAY 8

技術 Day 8 引入 Screen 與 Random 的商業概念

Screen 原本的設計是把輪帶表直接 return 出去,這是因為我們在測試中注入給主程式的輪帶表只有 5 x 3 的大小。這顯然與事實不符,因為真實的 S...

鐵人賽 影片教學 DAY 7

技術 Day 7 加入三條線與試寫 Random

試寫 在理想的情況下,TDD 的樣貌就是 Test -> Code -> Refactor 的無限循環。然而,對於天天面對 Production...

鐵人賽 影片教學 DAY 6

技術 Day 6 Extract Method

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

鐵人賽 影片教學 DAY 5

技術 Day 5 Five Lines of Code

重構的時機 有的人會說,因為沒時間,所以無法重構。我認為並不是的。事實是你因為放著小問題不管,任憑系統不斷依現有的亂亂的樣子一直長大,等到你發現加東西很困難了...

鐵人賽 影片教學 DAY 4

技術 Day 4 用測項「逼」出輪帶表

輪帶表 輪帶表,也有人稱滾輪表,乃 Slot 遊戲中決定遊戲複雜度與好玩程度的關鍵元素。在 Slot 遊戲中,畫面上的滾輪,可以視為一個超長超大的滾輪的「截圖...

鐵人賽 影片教學 DAY 3

技術 Day 3 第一個測項:輸

萬事起頭…難? TDD 的過程中,第一個測項是很重要的。測項安排得好,TDD 的流程就會順暢。 俗話說:「萬事起頭難。」但在 TDD 時,第一個測項,卻是越簡...

鐵人賽 影片教學 DAY 2

技術 Day 2 遊戲流程與名詞定義

SLOT 是什麼? 俗話(?)說得好,要把一個功能做好,必須先了解該領域。只能照著功能刻的開發者很難「刻」出好用的功能。在開工之前,我們先花一點時間來了解一下...

鐵人賽 影片教學 DAY 1

技術 Day 1 前言

緣起 這兩三年有幸獲邀到一些社群或私人企業演講或帶 Workshop。有一個議題是經當討論到的,叫做:「我們的領域很特別,沒辦法寫單元測試」。 每當討論到這個...

鐵人賽 Software Development DAY 21
QA 三十天養成日記 系列 第 21 篇

技術 [Day21] 軟體世界裡的 TDD/BDD/ATDD!懶人包幫你一次釐清(一)

BDD/TDD/ATDD 我相信在軟體業中並不陌生,但我一直都處於大致了解而已。今天就一次整理好筆記,區分好他們三者的關係 前幾篇文章中都有提到關於很多【測試】...

鐵人賽 自我挑戰組 DAY 30

技術 IT 邦鐵人賽 Day 30 - 回首測試

經過前面 29 天的介紹與手把手實際操作與解說,我相信大家應該都很能理解測試到底在做些什麼事情,今天我們稍微總結一下。 TDD 其實是一個測試流程的名稱,Tes...