Software Crafters
Meet-up7
REC
SOLID Principles
Let's Introduce ourselves
Has this ever happened to you?
Wasted hours on a code to understand what it do?
Adding a small feature took way more hours than expected?
Implementing a simple feature led to messed up code design
The code you wrote was not easy to test
“Software Crafting”
SIMPLE DESIGN
REFACTORING
TDD
PAIR PROGRAMMING
DESIGN CALISTHENICS
CONTINUOUS INTEGRATION
“Value code that is easy to maintain
over code that is easy to write”
Timeline
2.00 - 2.45 pm: Kick-off & discussion
2.45 - 4.45 pm: Kata
4.45 - 6.00 pm: Retrospective
<SOLID/>
Uncle bob
SOLID: Single Responsibility
SOLID: Open/Closed Principle
before
after
SOLID: Liskov Substitution Principle
Ref: https://stackoverflow.com/a/584732
SOLID: Interface Segregation
Clients should not be forced to depend upon interfaces that they do not use.
SOLID: Dependency Injection
Any higher classes should always depend upon the abstraction of the class rather than the detail.
BAD EXAMPLE
GOOD EXAMPLE
Some Guidelines
Pair Programming
“Two minds are better than one”
“For an idea to go from your head into the computer it MUST go through someone else’s hands”
Keep tests green
Kata Overview
git clone https://github.com/karachi-katas/Racing-Car-Leaderboard-Kata.git
Please share your GitHub ID in chat
create your branch e.g. ‘master-amir-saad-sauban’
BreakoutRooms
BreakoutRooms
BreakoutRooms
RETRO
Everyone discusses their solution
Discussion on what Kata is about
5:15 PM
3:00 PM