Refactoring en Unit Testing. Geschiedenis Hoe maken we complexe code duidelijker? Hoger abstractieniveau –Assembly –“Hogere” programmeertalen –Object-orientatie.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

OOS Object geOrienteerd Software-ontwerp - 3
Introductie Verschillende refactoringstappen Refactoring.
Nieuwe wegen in ontwerpen met CAD
GESPRG Les 14 Gestructureerd programmeren in C. 174 Details! The devil is in the details.
Greenfoot Workshop Bobby - Snake.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 5.
1 Thesis en stage Thesis -zelfstandig uitdiepen complex onderwerp -onder begeleiding promotor Stage -Thesis via een bedrijf Kiezen via ESP voor eind juni.
De koektrommel of de grabbelton
Stijn Van Wonterghem1 ALICE Een animatie opbouwen.
Thinking Bigger About BI
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Databases I (H. 1) Wiebren de Jonge Vrije Universiteit, Amsterdam Voorlopige versie 2003.
Herhaling: For, While en Do
Visual Basic .NET voor studenten
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Kwaliteitsbeoordeling ‘M2M’ Groep 3. Agenda Wensen van de klant (Thorstin)‏ Kwaliteitsmodel(Bas)‏ Meetresultaten(Daniël)‏ Conclusie(Daniël)‏
Webapplicaties: de clientkant in het universitaire onderwijs Sylvia Stuurman – Herman Koppelman Faculteit Informatica.
Introductie Groepsleden: - Peter Davids - René Zuidhof - Fokko Bronsema - Nick ter Horst.
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
Looking at Code Size and Performance Kevin Muys.  Hoe efficiënt is C++ vergeleken met C  Hoe beïnvloed C++ het benodigde geheugen  Oplossingen voor.
Visual Basic 2010 – What’s new André Obelink
Instrumenten Intenties Interactie Resultaat! LeanLeiderschap Ik doe te veel zelf Ze nemen me te weinig uit handen Ik kan ook niks aan ze overlaten Ik moet.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Overerving Inheritance Overerving l Inleiding l Type-extensie l Compatibiliteit van een basistype met zijn extensie l Statisch en dynamisch type l Run.
Joe de Developer Leergierig
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
.NET-productiviteit verhogen met een gepast gebruikt van lambda's en F# TETRA project proposal 2015.
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
OO: de echte wereld modelleren. De intro Over de workshop Introductie tot OOP – in PHP. Uitgebreide uitleg basisprincipes van OO. 2,5 uur is te lang.
Compliance Professional Dag 7 oktober 2010
Test Tender module Stap 1 Klik op het gewenste object.
Informatiesystemen in de Bouw 7M711 Joran Jessurun en Jos van Leeuwen Week 1.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Beyond Object-Orientation?
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
Groep 7 De volgende stap. Tankertanker Design Example text Go ahead and replace it with your own text. This is an example text. Your own footerYour Logo.
Herhaling: He who does not learn from history, is doomed to repeat it.
SQL Performance Analyzer Inschatten performance impact van wijzigingen Bram van der Vos
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
Delen van informatie. Inhoud I.T. Works TerraIndex Digitaal samenwerken en de centrale/landelijke service.
Informatie beoordelen If else Switch En Wiskunde.
The Research Process: the first steps to start your reseach project. Graduation Preparation
Javascript. Vandaag Samenvatting vorige les PSD's Random Array's Herhalingen – For-loop – While-loop.
Robby de Robot. Javascript Tot nu toe gebruikt: – document.write(" Hello World "); – alert("tekst") – Toon een waarschuwingsvenster – prompt("tekst",
Windows applicatieontwikkeling
Programmeren.
– Software development fundamentals
BEGINNER EV3 PROGRAMMEER Les
Vergeet perfectie! Gewoon goed is goed genoeg
Key Process Indicator Sonja de Bruin
Objectgeoriënteerd Programmeren
Gameprogrammeren: Lists en interfaces
Frontend Oss
Object georiënteerd programmeren
architectuur & stedebouw
Test Driven Development
Buy Lexapro Online Safely
Gameprogrammeren: Abstracte klassen
Unified Modeling Language
‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’
ACTmodel van psychopathologie
Hebben we wel meer testautomatiseerders nodig?
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Refactoring en Unit Testing

Geschiedenis Hoe maken we complexe code duidelijker? Hoger abstractieniveau –Assembly –“Hogere” programmeertalen –Object-orientatie Design patterns Refactoring

Wat is Refactoring? “Refactoring: a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.”

Voordelen Refactoring verbetert het ontwerp Refactoring maakt software begrijpelijker Refactoring helpt bugs te vinden Refactoring helpt sneller te programmeren

Code Smells Dubbele code Lange blokken Te grote Class Te veel parameters

Code Smells (2) Divergente veranderingen –Eén class die veel veranderd moet worden “Shotgun Surgery” –Eén verandering die veel klasses beinvloedt Feature Envy –Een Class is meer geinteresserd in een andere dan in zichzelf Data clumps

Code Smells (3) “Primitive Obsession” Switch statements Parallel Inheritance Lazy Class Speculative Generality

Meest gebruikte refactorings Extract Method Encapsulate Field Replace Type Code Extract Superclass

Meest gebruikte refactorings MoveMethod/Field Rename Method / Field Self Encapsulate Field Replace Nested Conditional with Guard clauses Replace Magic Number with Symbolic Constant

Voorbeeld Collection TableModel