TDD is the elengant way of designing software. People scares from it so much, because software design is hard and it requires discipline. In this talk, I tried to describe what TDD is from software design perspective.
TDD is the elengant way of designing software. People scares from it so much, because software design is hard and it requires discipline. In this talk, I tried to describe what TDD is from software design perspective.
LEMi ORHAN ERGiN agile software
craftsman @ acm /lemiorhan lemiorhanergin.com @lemiorhan managing partner at acm developing since 2001 worked at Sony and eBay/GittiGidiyor consultant, architect, trainer, developer founder of Software Craftsmanship Turkey ex product owner of Agile Turkey Summit meetup.scturkey.org summit.agileturkey.org
Jack W. Reeves The C++
JournalVol. 2, No. 2. 1992 http://user.it.uu.se/~carle/softcraft/notes/Reeve_SourceCodeIsTheDesign.pdf What is So!ware Design?
Source code is the real
so!ware design Designing so!ware is an exercise in managing complexity Jack W. Reeves What is Software Design? The C++ JournalVol. 2, No. 2. 1992 http://user.it.uu.se/~carle/softcraft/notes/Reeve_SourceCodeIsTheDesign.pdf
The so!ware design is not
complete until it has been coded and tested Testing is part of the process of refining the design Jack W. Reeves What is Software Design? The C++ JournalVol. 2, No. 2. 1992 http://user.it.uu.se/~carle/softcraft/notes/Reeve_SourceCodeIsTheDesign.pdf
The very first value of
so!ware is… Robert C. Martin Author of Clean Code and Clean Coder Owner of cleancoders.com training site
The very first value of
so!ware is to tolerate and facilitate on-going changes Robert C. Martin Author of Clean Code and Clean Coder Owner of cleancoders.com training site
Each city has to be
renewed in order to meet the needs of its populace. So!ware-intensive systems are like that. Grady Booch Developed UML Wrote foreword to “Design Patterns” and “Technical Debt” books Istanbul, TurkeyCredit: European Space Imaging
Everything is part of the
design process Jack W. Reeves What is Software Design? The C++ JournalVol. 2, No. 2. 1992 http://user.it.uu.se/~carle/softcraft/notes/Reeve_SourceCodeIsTheDesign.pdf
hard to add new features
too much debugging too many workarounds too complex to know every flow red giant
blue-white super giant single change
affects many areas, no reuse - duplication hell, fragile system - unstable prod scary refactoring, silos occur
red super giant huge classes,
tons of workarounds, no new features, maintenance mode rules, basic implementations take weeks, no one knows how overall system works, rollbacks a!er deployments, architect saves the company
Two elements are loosely coupled
if they are not shown in the same diff Kent Beck The creator of extreme programming One of the signatories of the Agile Manifesto Pioneered software design patterns and TDD
COHESION Do you search a
lot where to change? It shows how easy to find the places we need to change
How many files at any
one time is still open for edit shows the level of cohesion Nat Pryce Co-Author of Growing Object-Oriented Software Guided by Tests Early adopter of XP
Sie haben diese Folie bereits ins Clipboard „“ geclippt.
Clipboard erstellen
Sie haben Ihre erste Folie geclippt!
Durch Clippen können Sie wichtige Folien sammeln, die Sie später noch einmal ansehen möchten. Passen Sie den Namen des Clipboards an, um Ihre Clips zu speichern.
Clipboard erstellen
SlideShare teilen
Sonderangebot für SlideShare-Leser
Nur für Sie: KOSTENLOSE 60-tägige Testversion für die weltgrößte digitale Bibliothek.
Die SlideShare-Familie hat sich gerade vergrößert. Genießen Sie nun Zugriff auf Millionen eBooks, Bücher, Hörbücher, Zeitschriften und mehr von Scribd.