69 lines
2 KiB
Markdown
69 lines
2 KiB
Markdown
# TODO
|
|
- [x] Refine Abstractions
|
|
- [x] long parameter list
|
|
- [x] data clump
|
|
- [x] primitive obsession
|
|
- [x] middle man
|
|
|
|
# Mikado
|
|
- [x] remove move() from heading
|
|
- [x] use position.moveBy in RoverState.move
|
|
- [x] add moveBy to Position class
|
|
|
|
# RPP
|
|
- [ ] Design Patterns
|
|
- [ ] SOLID++
|
|
|
|
# DONE
|
|
- [x] Make ktlint pass checks
|
|
- [x] Readability
|
|
- [x] comments
|
|
- [x] dead code
|
|
- [x] magic strings/numbers
|
|
- [x] bad naming
|
|
- [x] antipattern
|
|
- [x] scopes
|
|
- [x] Complexity
|
|
- [x] long method
|
|
- [x] duplicated code
|
|
- [x] Reorder Responsibilities
|
|
- [x] long class
|
|
- [x] feature envy
|
|
- [x] inappropriate intimacy
|
|
- [x] data class
|
|
- [x] message chain
|
|
|
|
# Mikado
|
|
- [x] Clean up constants and private fields
|
|
- [x] Move move() into Heading.move(Position)
|
|
- [x] Move turnLeft() into Heading.turnLeft()
|
|
- [x] Move turnRight() into Heading.turnRight()
|
|
- [x] Remove HEADING_* constants
|
|
- [x] in move() compare to heading enum
|
|
- [x] in turnRight() compare to heading enum
|
|
- [x] in turnLeft() compare to heading enum
|
|
- [x] state.heading in Rover.constructor to enum
|
|
- [x] Change heading Char in RoverState to Heading enum
|
|
- [x] Create Heading enum
|
|
- [x] Change var to val (immutable)
|
|
- [x] Rover.turnLeft use copy() on state
|
|
- [x] Rover.turnRight use copy() on state
|
|
- [x] Rover.move use copy() on state
|
|
- [x] Rover.constructor use copy() on state
|
|
- [x] Change RoverState to Data Class
|
|
- [x] Remove deltaX, deltaY in Heading
|
|
- [x] NORTH, etc -> Vector(0, 1)
|
|
- [x] move -> return Pair but using vector
|
|
- [x] Add Vector to enum class Heading
|
|
- [x] Create Vector data class
|
|
- [x] Remove posX, posY from RoverState
|
|
- [x] use position in Rover.position
|
|
- [x] Create toString in Position
|
|
- [x] use position in Rover constructor()
|
|
- [x] use position in move()
|
|
- [x] Add position to RoverState
|
|
- [x] Create Position data class
|
|
- [x] Replace x, y with Position in Heading.move()
|
|
- [x] RoverState.move use position
|
|
- [x] Return position in move() instead of Pair
|
|
|