Add daily email for 2025-02-10
Refactoring and Test-Driven Development
This commit is contained in:
parent
69c92f325b
commit
351d0a4f17
30
source/_daily_emails/2025-02-10.md
Normal file
30
source/_daily_emails/2025-02-10.md
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
title: Refactoring and Test-Driven Development
|
||||||
|
date: 2025-02-10
|
||||||
|
permalink: daily/2025/02/10/refactoring
|
||||||
|
tags:
|
||||||
|
- software-development
|
||||||
|
cta: ~
|
||||||
|
snippet: |
|
||||||
|
How does refactoring work whilst doing test-driven development?
|
||||||
|
---
|
||||||
|
|
||||||
|
To do test-driven development, you start by writing a test which, because you're testing code that doesn't exist, will fail.
|
||||||
|
|
||||||
|
The objective is to get the get the test to pass.
|
||||||
|
|
||||||
|
You want to write just enough code to get the test to pass.
|
||||||
|
|
||||||
|
It can be the simplest and naive code possible as long as it gets the tests to pass.
|
||||||
|
|
||||||
|
Once the test passes, you can refactor and change the code in any way you want.
|
||||||
|
|
||||||
|
This may be changing from a `foreach` loop to using a function like `array_map` or `array_reduce`, or splitting logic into separate classes.
|
||||||
|
|
||||||
|
You may refactor your refactor and decide that a name or approach isn't correct and change it.
|
||||||
|
|
||||||
|
You may split your code into service classes and then decide to use commands or actions.
|
||||||
|
|
||||||
|
You can make whatever changes you want as long as the tests continue to pass.
|
||||||
|
|
||||||
|
The implementation can change, but the outcome stays the same.
|
Loading…
Reference in a new issue