Skip to content

Commit de2e8a8

Browse files
committed
add libs per language in README
1 parent b538a77 commit de2e8a8

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

ā€ŽREADME.md

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Advent Of Craft
2+
23
[![Our Discord](https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/E5Z9s9UKTS)
34
[![Linkedin](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/company/advent-of-craft)
45

@@ -13,37 +14,44 @@ Your journey as a developer has probably taken many turns.
1314

1415
You probably had to troubleshoot and refactor a piece of code that you still have nightmares about.
1516

16-
You might have been stuck in a team when you never have time to improve your code base because `"We have to deliver more features"`.
17+
You might have been stuck in a team when you never have time to improve your code base
18+
because `"We have to deliver more features"`.
1719

1820
Heck, you probably still are.
1921

2022
We feel you, and in the spirit of Christmas, you deserve a gift.
2123

22-
We have the privilege this year to bring to you the Advent of Craft.
24+
We have the privilege this year to bring to you the Advent of Craft.
2325
This is a journey into software craftsmanship.
2426

25-
Each day, `you will be taken in a small aspect of software craftsmanship`. Each day, you will have `an exercise with a topic` to look at in a small bite approach and hopefully you will `learn something`.
27+
Each day, `you will be taken in a small aspect of software craftsmanship`. Each day, you will
28+
have `an exercise with a topic` to look at in a small bite approach and hopefully you will `learn something`.
2629

2730
From refactoring to testing to reviewing, all aspects are going to be explored.
2831

29-
> The objective of this journey is to learn new crafts and share with your peers, not to get lost in impossible algorithm exercises or to finish as fast as you can using chatGPT.
32+
> The objective of this journey is to learn new crafts and share with your peers, not to get lost in impossible
33+
> algorithm exercises or to finish as fast as you can using chatGPT.
3034
3135
A repository is available and each day a topic will appear with a proposed solution for the day before.
3236

33-
We hope you enjoy the ride.
37+
We hope you enjoy the ride.
3438
Happy Crafting!
3539

3640
![Advent Of Craft 2023](docs/img/advent-of-craft.png)
3741

3842
## Join us on Discord
39-
To facilitate the communication around challenges you can join us on `Discord` by simply clicking [here](https://discord.gg/E5Z9s9UKTS).
43+
44+
To facilitate the communication around challenges you can join us on `Discord` by simply
45+
clicking [here](https://discord.gg/E5Z9s9UKTS).
4046

4147
![Discord Advent Of Craft](docs/img/discord.png)
4248

4349
## Instructions
50+
4451
[Here are the instructions for the journey](docs/INSTRUCTIONS.md)
4552

4653
## Challenges - 2023
54+
4755
Here are the different challenges :
4856

4957
- [Day 1: Make your production code easier to understand.](docs/exercise/day01/challenge.md) [![Refactoring](https://img.shields.io/badge/Refactoring-blue)](docs/learning-paths/refactoring.md)
@@ -68,12 +76,14 @@ Here are the different challenges :
6876
- [Day 20: No more exceptions in our domain.](docs/exercise/day20/challenge.md) [![Design](https://img.shields.io/badge/Design-yellow)](docs/learning-paths/design.md)
6977
- [Day 21: Refactor the tests and production code to Output-Based tests.](docs/exercise/day21/challenge.md) [![Clean Testing](https://img.shields.io/badge/Clean%20Testing-orange)](docs/learning-paths/clean-testing.md)
7078
- [Day 22: Design a diamond program using T.D.D and Property-Based Testing.](docs/exercise/day22/challenge.md) [![T.D.D](https://img.shields.io/badge/T.D.D-green)](docs/learning-paths/tdd.md)
71-
- [Day 23: Refactor the code after putting it under test.](docs/exercise/day23/challenge.md) [![Refactoring](https://img.shields.io/badge/Refactoring-blue)](docs/learning-paths/refactoring.md) [![T.D.D](https://img.shields.io/badge/T.D.D-green)](docs/learning-paths/tdd.md) [![Clean Testing](https://img.shields.io/badge/Clean%20Testing-orange)](docs/learning-paths/clean-testing.md) [![Functional Programming](https://img.shields.io/badge/Functional%20Programming-purple)](docs/learning-paths/functional-programming.md)
79+
- [Day 23: Refactor the code after putting it under test.](docs/exercise/day23/challenge.md) [![Refactoring](https://img.shields.io/badge/Refactoring-blue)](docs/learning-paths/refactoring.md) [![T.D.D](https://img.shields.io/badge/T.D.D-green)](docs/learning-paths/tdd.md) [![Clean Testing](https://img.shields.io/badge/Clean%20Testing-orange)](docs/learning-paths/clean-testing.md) [![Functional Programming](https://img.shields.io/badge/Functional%20Programming-purple)](docs/learning-paths/functional-programming.md)
7280
- [Day 24: Write the most complicated code you can.](docs/exercise/day24/challenge.md) [![Refactoring](https://img.shields.io/badge/Refactoring-blue)](docs/learning-paths/refactoring.md)
7381
- [Day 25: Share with the world what you have learned.](docs/exercise/day25/challenge.md)
7482

7583
### Solutions
76-
A solution proposal will be published here every day during the `Advent Of Craft` containing `the code` and a `step by step` guide.
84+
85+
A solution proposal will be published here every day during the `Advent Of Craft` containing `the code` and
86+
a `step by step` guide.
7787

7888
- [Day 1: Make your production code easier to understand.](docs/exercise/day01/solution/step-by-step.md)
7989
- [Day 2: One level of indentation.](docs/exercise/day02/solution/step-by-step.md)
@@ -101,19 +111,38 @@ A solution proposal will be published here every day during the `Advent Of Craft
101111
- [Day 24: Write the most complicated code you can.](docs/exercise/day24/solution/step-by-step.md)
102112

103113
## Learning paths šŸš€
104-
We have designed several `learning paths` based on the challenges that you can follow if you want to deep dive into a given concept:
114+
115+
We have designed several `learning paths` based on the challenges that you can follow if you want to deep dive into a
116+
given concept:
117+
105118
- [Refactoring šŸš€](docs/learning-paths/refactoring.md)
106119
- [Clean Testing 🧼](docs/learning-paths/clean-testing.md)
107120
- [Test-Driven Development šŸ”“šŸ”µšŸŸ¢](docs/learning-paths/tdd.md)
108121
- [Design šŸ›](docs/learning-paths/design.md)
109122
- [Functional Programming šŸŒ‹](docs/learning-paths/functional-programming.md)
110123

111124
## Available languages
125+
112126
For now, the supported languages are:
127+
113128
- `java` (v 21)
114129
- `kotlin` (1.9.21)
115130
- `C#` (.NET 8)
116131

132+
Here are the libraries we use in the different days per language:
133+
134+
| Topic | Java | C# | Kotlin |
135+
|------------------------|------------------------------------------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
136+
| Test framework | [junit](https://junit.org/junit5/) | [xUnit](https://xunit.net/) | [Kotest](https://kotest.io/) |
137+
| Fluent assertions | [assertJ](https://joel-costigliola.github.io/assertj/) | [FluentAssertions](https://fluentassertions.com/) | Native `kotest` asertions |
138+
| Mocking | [mockito](https://site.mockito.org/) | [NSubstitute](https://nsubstitute.github.io/) | [mockk](https://mockk.io/) |
139+
| Approval testing | [approvalTests](https://github.com/approvals/approvaltests.java) | [Verify.xUnit](https://github.com/VerifyTests/Verify) | [approvalTests](https://github.com/approvals/approvaltests.java) |
140+
| Property-Based testing | [vavr-test](https://github.com/vavr-io/vavr-test) | [FSCheck](https://fscheck.github.io/FsCheck/) | [kotest-property](https://kotest.io/docs/proptest/property-based-testing.html) |
141+
| Fake data generator | [instancio](https://www.instancio.org/) | [Bogus](https://github.com/bchavez/Bogus) | Not used |
142+
| Architecture tests | [archunit](https://www.archunit.org/) | [TngTech.ArchUnitNET.xUnit](https://archunitnet.readthedocs.io/en/latest/) | [archunit](https://www.archunit.org/) |
143+
| Functional library | [vavr](https://www.vavr.io/) | [LanguageExt.Core](https://github.com/louthy/language-ext) | [arrow-kt](https://arrow-kt.io/) |
144+
| Functional assertions | [assertj-vavr](https://github.com/assertj/assertj-vavr) | [FluentAssertions.LanguageExt](https://www.nuget.org/packages/FluentAssertions.LanguageExt) | [kotest-extensions-arrow](https://github.com/kotest/kotest-extensions-arrow#kotest-extensions-arrow) |
145+
117146
## Contributors
118147

119148
<table>

0 commit comments

Comments
Ā (0)