Tips
-
Not to model code on the real world exactly if it's not the best way
-
Try not to create objects that cannot be used properly immediately after initialization (Train is in an invalid state upon initialization)
-
next time: make track pieces and trains 'dumb' objects, have another class handle the relationship between them
to practice refactoring
- Gilded Rose Kata by Emily Bash (she has others)
- string refactoring kata
to practice TDD
- roman numberals kata
- fizzbuzz
- tennis kata
Book on how to use tdd during everyday life -> https://www.amazon.es/Growing-Object-Oriented-Software-Addison-Wesley-Signature-ebook/dp/B002TIOYVW/ref=sr_1_fkmrnull_1?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=growing+objectoriented+software+guided+by+tests&qid=1554379420&s=gateway&sr=8-1-fkmrnull