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.

Slides:



Advertisements
Verwante presentaties
Objectgeoriënteerd Programmeren in C++
Advertisements

Programmeren in Java met BlueJ
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Introductie Verschillende refactoringstappen Refactoring.
Greenfoot Workshop Bobby - Snake.
Ontwerpen van Informatiesystemen met
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Java patterns Introductie tot GoF patterns in Java.
Het verbeteren van een modulaire verificatie techniek voor aspect georiënteerd programmeren Alfons Laarman.
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Inleidend probleem Data structuur (hiërarchie van classes)
Databases I (H. 1) Wiebren de Jonge Vrije Universiteit, Amsterdam Voorlopige versie 2003.
Designing Knowledge Systems b Hoofdstuk 11 van Knowledge Engineering and Management. The CommonKADS Methodology. b A.Th. Schreiber, J.M. Akkermans, A.A.Anjewierder,
Java en BlueJ Een goed idee?.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Informatiesystemen in de Bouw
P. 1 Vakgroep Informatietechnologie Structuur Deel II C++ Classes Namespaces Type casting Reference types Constructors en Destructors Memory Management.
OO Analyse in de praktijk OO Analyse in de praktijk V Enkele Design Patterns.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
OO Analyse in de praktijk
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
Joe de Developer Leergierig
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
MVC in de praktijk Jeroen Swart.NET architect, Quintor
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
TypeScript Orde in de chaos!. Over mij Patrick Schmidt (Microsoft Certified Trainer) Trainer bij 4DotNet Mede-oprichter en architect BesteProduct.nl.
Introductie tot GoF patterns in Java
Ruby on Rails Web development that doesn’t hurt. Welkom Wie zijn wij Stefan Borsje Iain Hecker Arie Meeldijk Waarom deze workshop Ruby On Rails is ‘nieuw’
Refactoring en Unit Testing. Geschiedenis Hoe maken we complexe code duidelijker? Hoger abstractieniveau –Assembly –“Hogere” programmeertalen –Object-orientatie.
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
PLANNING EN DESIGN MET VSTS2010 Lunchsessie ALM René van Osnabrugge
Tussentijdse Thesis Presentatie Bart Bottu. Proceduraal Modelleren Proceduraal genereren van 3D modellen Meest gebruikt voor Planten Landschappen Steden.
Encapsulatie: Every man is an island upon himself.
Polymorphisme en Interfaces: inleiding
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Beyond Object-Orientation?
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Analyse 3 INFANL01-3 week 2 CMI Informatica.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Over de fabels en feiten van applicatiebouw en de invoering van het Spring Framework 16 december 2014 Ferdy du Chatenier / Gilbert van den.
OOP en.NET. Objecten Is geen ‘nieuw’ mysterieus woord Overal om ons heen zien we objecten: – TV – Computer – Auto – Wasmachine – ….
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
TOGAF Albert Gjaltema / Tech. Consultant II 11 maart 2008 getronicspinkroccade.nl.
Van BiSL naar BiSL Next Lucille van der Hagen
Windows applicatieontwikkeling
Programmeren.
– Software development fundamentals
Frontend Oss
Object georiënteerd programmeren
Test Driven Development
OOS Object geOrienteerd Software-ontwerp - 5
Gameprogrammeren: Interfaces
‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’
ASP.NET MVC Web Development
Software Development fundamentals
ASP.NET MVC Web Development
ASP.NET MVC Web Development
Software Development fundamentals
Software Development fundamentals
– Software development fundamentals
Windows applicatieontwikkeling
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Unified Modeling Language
Transcript van de presentatie:

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 om je vraag te onthouden, vragen kan tussendoor. Veel theorie, pennen zijn o.a. voor notities!

OOP vs. PP/FP: a mexican standoff Nadelen van OO t.o.v. PP/FP: Beiden middelen om een doel te bereiken. OOP betekent meer regels (LoC). OOP's abstracties maken de applicatie complexer. OOP is trager. OOP heeft een langer ontwikkelproces.

OOP vs. PP/FP: a mexican standoff Voordelen van OO t.o.v. PP/FP: Eenvoudiger uitbreiden. Duidelijkere code. Sommige objecten zijn herbruikbaar. Eenvoudiger te wijzigen.

OOP vs. PP/FP: a mexican standoff Dus wint OOP? Grote opmars objecten in de PHP wereld. Frameworks zijn veelal “OOP”. “Use the right tool for the job!” (a.k.a. don't use a sledgehammer to kill a fly)‏

Introductie van objecten Wat zijn classes (klassen)? Wat zijn objecten?

Een snufje syntax: een class

dan attributes

Een methode

Opbouwen en afbreken

Een beetje access-control

Inheritance

Interfaces

Abstract classes

Final klassen en methoden Overerving niet langer mogelijk.

Exceptions Exceptions kunnen worden gegooid op het moment dat een voorwaarde niet voldoet aan de “normale voorwaarden”. Exceptions zijn er voor foutafhandeling.

It's a kind of magic.. (overloading?)‏ Magische methoden binnen PHP zijn o.a.: __autoload __construct __destruct __get __set __call __clone

UML is er ook bij.

Resumé, anyone? Voordelen OO. Wat objecten zijn. OO syntax in PHP. Basisbeginselen: inheritance, “overloading”, interfaces, final en exceptions. (heel klein beetje) UML Van belang?

Workshop aspect Roept u maar?

OOAD > syntax Syntax en implementatie zijn werkelijk niet zo van belang.

Kenmerken OO: encapsulatie Information hiding. Implementation hiding.

Kenmerken OO: Inheritance Inheritance kan worden gebruikt om het gedrag van het onderliggende object (parent) aan te passen of uit te breiden.

Kenmerken OO: Polymorphism Door overerving hoeft een object niet te weten met welke specifieke implementatie er wordt gewerkt.

Kenmerken OO: Interfaces/abstract Interfaces zijn goed gedefiniëerde methoden om met een object te praten. Interfaces bestaan ook buiten de wereld van programmeren.

Nog een poging? Probeer het nog eens, met de zojuist verkregen informatie.

Principes: SRP Single Responsibility Principle Bold, underline én cursief, is dat niet wat overdone? Change together, live together. Seperation of Concerns. Cross-cutting concerns. Hoe te testen?

Principes: OCP Open-closed principle. Open to extension, closed for modification. Tenzij je een foutje hebt gemaakt. Polymorhic OCP?

Principes: LSP Liskov Substitution Principle. Een publieke interface mag niet worden veranderd door een subclass.

Principes: DRY Don't repeat yourself Meerdere plekken dezelfde code, meerdere plaatsen waar je bugs kan introduceren. Vaak ook een overtreding van SRP.

Principes: PTAINAI Program to an interface, not an implementation. “need-to-know-basis”

Principes: encapsulate what varies. Zet variaties in aparte objecten. De “if” van OO.

Principes: JUTW Just use the wheel. “imitation is the sincerest form of not being stupid”

Relaties en afhankelijkheden: Composition Een object dat uit meerdere objecten bestaat. Ownership (HAS-A)‏

Relaties en afhankelijkheden: Aggregration Een object dat uit meerdere objecten bestaat. USES.

Relaties en afhankelijkheden: Delegation Meerdere responsibilities, maar stiekem doorgeven.

Nog een principe dan. Favor composition over inheritance.

Inversion of Control Ook wel Dependency Injection Geen Design Pattern, zou een principe moeten zijn.

Nog een poging? Probeer het nog eens, met de zojuist verkregen informatie.

Design patterns Abstracte oplossingen voor veel- voorkomende problemen.

Design pattern: Decorator

Design Pattern: Façade Een interface voor meerdere objecten.

Design pattern: Strategy

Design Pattern: Composite

Design Pattern: oh jee, de MVC. Model View Controller

Design Pattern: Lazy Load

Design Pattern?: Domain Model

Refactoring Refactoring is een manier om je applicatie te wijzigen, zonder deze stuk te maken. In databases kan het ook, zei Vincent.

“Eww... Smelly” Smells zijn aanleidingen om te wijzigen.

Een paar refactorings Extract method (maak een methode met een logische naam)‏ Hide Delegate Move Method Replace Errorcode with Exceptions Replace Exception with Test Replace temp with query. Encapsulate field

Boeken? Refactoring (Martin Fowler)‏ Patterns of Enterprise Application Architecture Head First Object Oriented Analysis and Design Head First Design Patterns

Sites? (bijeenkomsten)‏