AGAINST1
the journey of a developer with SOLID principles
against the urge to use many standard or not think about them
ONE
@helmedeiros
Slide 2
Slide 2 text
once upon a time…
Slide 3
Slide 3 text
framework
MV*
princípios
design patterns
Slide 4
Slide 4 text
a-gi-li-ty
|əˈjilitē|
Is about building software in tiny
increments
Slide 5
Slide 5 text
how to design a…
Software with a good structure?
Software that is flexible?
Software that is maintainable?
Software that is reusable?
who knows
who knows
who knows
who knows
Slide 6
Slide 6 text
If you build your project in tiny increments,
aren’t you going to miss the whole picture?
Slide 7
Slide 7 text
agile design
design smells
principles
Slide 8
Slide 8 text
software project
is an abstract concept
Slide 9
Slide 9 text
software project
|ˈsôftˌwe(ə)r ˈpräjˌekt, -ikt|
It has to do with the overall
program design, as well as the
detailed structure of each module,
class, and method.
Slide 10
Slide 10 text
“If you are lucky, you start a
project with a clear picture of what
you want the system to be. If you
are luckier still, the clarity of that
design makes it to the first release.”
- Robert C. Martin
Slide 11
Slide 11 text
agile design
design smells
principles
Slide 12
Slide 12 text
then something goes wrong
software starts to rot
Slide 13
Slide 13 text
how to detect it…
before the last responsible moment?
without too much precaution?
allowing it to change?
Slide 14
Slide 14 text
RIGIDITY: The design is difficult
to change.
1
Slide 15
Slide 15 text
FRAGILITY: The design is easy
to break.
2
Slide 16
Slide 16 text
IMMOBILITY: The design is
difficult to reuse.
3
Slide 17
Slide 17 text
VISCOSITY: It is difficult to do
the right thing.
4
Slide 18
Slide 18 text
NEEDLESS COMPLEXITY:
Overdesign.
5
Slide 19
Slide 19 text
NEEDLESS REPETITION: Mouse
abuse.
6
Slide 20
Slide 20 text
OPACITY: Disorganized
expression.
7
Slide 21
Slide 21 text
why software rots…
change in ways that the initial design did not anticipate
changes need to be made quickly
developers who aren’t familiar with original philosophy
Slide 22
Slide 22 text
requirements changes
our designs and practices have been failing
Slide 23
Slide 23 text
agile design
design smells
principles
Slide 24
Slide 24 text
continuos application
to improve the structure and readability of the software