RxKoans
Goal of this project is to reduce the steepness of the Rx (RxJava, RxSwift, Project Reactor, etc) learning curve.
Target Audience
RxKoans targets reactive juniors, middles and seniors.
- Reactive Juniors:
- We encourage you to go through all tiers slowly, starting with tier1
- We encourage you to rely on Hints and use easiest and most natural ways of solving the Koans
- Once you feel comfortable, we encourage you to check alternative solutions for same Koans that you've already solved, debug and understand them
- Reactive Middles:
- We encourage you to go through all tiers fast, starting with tier1
- We encourage you to NOT rely on Hints and use easiest and most natural ways of solving the Koans
- Once you feel comfortable, we encourage you to check alternative solutions for same Koans that you've already solved, debug and understand them
- Reactive Seniors:
- We encourage you to go through all tiers FAST, starting with tier1
- We encourage you to NOT rely on Hints and use most ELEGANT ways of solving the Koans
- Once you feel comfortable, we encourage you to submit your solutions if you find them more elegant
How to use
Structure
- Koans are essentially unit tests where you need to provide implementation according to the "Task" so that the test passes.
- Koans are split into "tiers" from
1
ton
, where1
means the easiest, the basics. - Koans can have multiple solutions, it's totally up to on how to implement them. There are however "hints" provided in each Koan.
- Koans have multiple solutions provided in the repo so you could explore them, they're also used for tests on CI.
Steps
- Clone the repo
- Open the project in your favorite IDE/editor
- Navigate to koans/rxjava[other]/src/test/…/tier
- Open particular Koan and read through the Task defined in class
Koan[n]Todo
- Try to implement the Koan according to the task using Hint and references to specific documentation
- Run the test in the Koan class either from IDE/editor or from Terminal like this:
./gradlew test --tests com.artemzin.rxkoans.rxjava.tier1.Koan6Test