-
Notifications
You must be signed in to change notification settings - Fork 69
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
154 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
## Clean Testing 🧼 | ||
![Clean Testing Learning path](../img/clean-testing.png) | ||
|
||
- [Day 4: Identify the behavior under test and rewrite the tests.](../exercise/day04/docs/challenge.md) | ||
- Focus tests on behaviors (not data) | ||
- Tests List | ||
- Avoid duplication (Clean Code applied on tests) | ||
- [Day 6: Parameterize your tests.](../exercise/day06/docs/challenge.md) | ||
- Parameterized tests | ||
- [Day 13: Find a way to eliminate the irrelevant, and amplify the essentials of those tests.](../exercise/day13/docs/challenge.md) | ||
- Test Data Builder | ||
- `DSL` for our tests | ||
- [Day 15: Put a code under tests.](../exercise/day15/docs/challenge.md) | ||
- Approval testing | ||
- Combination testing | ||
- Work effectively with legacy code | ||
- [Day 17: Design one test that has the impact of thousands.](../exercise/day17/docs/challenge.md) | ||
- Property-Based Testing | ||
- From `Parameterized tests` to `Property-Based tests` | ||
- [Day 21: Refactor the tests and production code to Output-Based tests.](../exercise/day21/docs/challenge.md) | ||
- Styles of Tests | ||
- State-Based | ||
- Output-Based | ||
- Communication-Based | ||
- Refactor to Output-Based tests | ||
- Functional Core, Imperative Shell | ||
- [Day 23: Refactor the code after putting it under test.](../exercise/day23/docs/challenge.md) | ||
- Code coverage | ||
- Mutation Testing |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
## Design 🏛️ | ||
![Design Learning path](../img/design.png) | ||
|
||
- [Day 9: Fix the code.](../exercise/day09/docs/challenge.md) | ||
- Command Query Separation | ||
- Pure Function | ||
- [Day 11: Gather a dependency freshness metric.](../exercise/day11/docs/challenge.md) | ||
- Dependency Freshness | ||
- LibYear | ||
- Team Rules | ||
- [Day 12: Make your code open for extension.](../exercise/day12/docs/challenge.md) | ||
- S.O.L.I.D Principles | ||
- C.U.P.I.D | ||
- Open-Closed Principle | ||
- [Day 18: Automatically detect Linguistic Anti-Patterns (LAP).](../exercise/day18/docs/challenge.md) | ||
- Linguistic Anti-Patterns | ||
- Architecture Unit Tests | ||
- Team Rules | ||
- [Day 20: No more exceptions in our domain.](../exercise/day20/docs/challenge.md) | ||
- Hollywood principle / continuation | ||
- Constrain inputs | ||
- Referential transparency |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
## Functional Programming 🌋 | ||
![FP Learning path](../img/functional-programming.png) | ||
|
||
- [Day 5: No "for" loop authorized.](../exercise/day05/docs/challenge.md) | ||
- Use Collection Functions | ||
- [Day 10: Dot not use "if" statement.](../exercise/day10/docs/challenge.md) | ||
- Pure Function | ||
- Functional Map (function registration) | ||
- Object Calisthenics | ||
- [Day 14: Do not use exceptions anymore.](../exercise/day14/docs/challenge.md) | ||
- Parse Don't Validate | ||
- Use Monads instead of Exceptions | ||
- Extend Output | ||
- Referential Transparency | ||
- [Day 16: Make this code immutable.](../exercise/day16/docs/challenge.md) | ||
- Immutability | ||
- Use `T.D.D` to refactor existing code | ||
- Strangler Pattern | ||
- [Day 19: Loosing up dead weight.](../exercise/day19/docs/challenge.md) | ||
- Exceptions vs Errors | ||
- Use error instead of exceptions | ||
- [Day 23: Refactor the code after putting it under test.](../exercise/day23/docs/challenge.md) | ||
- Use Monads | ||
- Referential Transparency |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
## Refactoring 🚀 | ||
![Refactoring Learning path](../img/refactoring.png) | ||
|
||
- [Day 1: Make your production code easier to understand.](../exercise/day01/docs/challenge.md) | ||
- Encapsulate Conditionals | ||
- Extract Method | ||
- Automated Refactoring | ||
- [Day 2: One level of indentation.](../exercise/day02/docs/challenge.md) | ||
- Object Calisthenics | ||
- Invert If | ||
- Extract Method | ||
- Guard | ||
- Automated Refactoring | ||
- [Day 3: One dot per line.](../exercise/day03/docs/challenge.md) | ||
- Object Calisthenics | ||
- Extract Method | ||
- Law of Demeter | ||
- [Day 7: Simplify the run method by extracting the right behavior.](../exercise/day07/docs/challenge.md) | ||
- Reduce cognitive load by extracting methods | ||
- More about cognitive load [here](https://speakerdeck.com/thirion/clean-code-du-point-de-vue-de-la-cognition) | ||
- [Day 23: Refactor the code after putting it under test.](../exercise/day23/docs/challenge.md) | ||
- Refactor Legacy Code | ||
- Seams | ||
- [Day 24: Write the most complicated code you can.](../exercise/day24/docs/challenge.md) | ||
- Crappy-Driven Development | ||
- Clean Code |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## Test-Driven Development 🔴🔵🟢 | ||
![TDD Learning path](../img/tdd.png) | ||
|
||
- [Day 8: Using TDD rules, write a password validation program.](../exercise/day08/docs/challenge.md) | ||
- Example Mapping | ||
- Tests list | ||
- Triangulation | ||
- Baby steps | ||
- Parameterized Tests | ||
- Regex | ||
- `ChatGPT` 🤪 | ||
- [Day 22: Design a diamond program using T.D.D and Property-Based Testing.](../exercise/day22/docs/challenge.md) | ||
- Property-Based Testing | ||
- Triangulate with PBT | ||
- Monads | ||
- Parse Don't Validate | ||
- Approval Testing | ||
- **T**est && **C**ommit || **R**evert (`TCR`) | ||
- [Day 23: Refactor the code after putting it under test.](../exercise/day23/docs/challenge.md) | ||
- Sprout Technique |