-
Purpose
- Fill the Gap, focus on technical side
- Scrum does not cover technical side
- Mandatory skills required in Agile Dev team
- ourself are impediments
-
TDD
- Red-Green-Refactoring
- Arrange-Act-Assert
-
Hamcrest API
- more expressive
-
mathers
- assertThat
- is
- equalTo
- contains
- first argument is actual, second one is the expected
-
Eclipse Shortcuts
- ALT+SHIFT+R
- ALT+SHIFT+M
- ALT+SHIFT+F
- CTRL+SHIFT+F11 to run tests
-
Katas
- Bolwing
-
Gilded Rose
- great refactoring example
- Roman Numerals
-
Simple Design
-
4 simple design rules
- All tests must be passed
- Node code is duplicated
- Code is self-explanatory
- No superfluous parts exists
-
Simplified version
- remove duplication
- fix names
-
names
- pass phone tests
- meaningful
-
use business domain term
- ubiquitous language
-
Principles
-
SOLID
- SRP
- OCP
- LSP
- ISP
- DIP
-
DRY
- Don't Repeat Yourself
-
LoD
- Tell, don't ask
- Write SHY code
- make mocking easier
-
Refactoring
-
code smells
- IF statement
- Null Check
- Comments
- Long methods and classes
- Feature envy
- patterns
-
example: Gilded Rose
- rename
- extract method
- emerge patterns
- business logic emerge
- change code without understanding the business logic
-
legacy code
- code without unit tests
- use mocks to break dependencies
-
Action plans
- Write unit tests using mockito
-
improve code review
- check name
- check duplication
- SOLID/Lod/DRY
-
recommend 2 books
- clean code
- working effectively with legacy code
-
attend onAgile virtual conference
- uncle bob
- Matin Fowler
- TDD/Pair programing/DevOps