De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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.

Verwante presentaties


Presentatie over: "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."— Transcript van de presentatie:

1 OO: de echte wereld modelleren

2 De intro

3 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!

4 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.

5 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.

6 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)‏

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

8 Een snufje syntax: een class

9 dan attributes

10 Een methode

11 Opbouwen en afbreken

12 Een beetje access-control

13 Inheritance

14 Interfaces

15 Abstract classes

16 Final klassen en methoden Overerving niet langer mogelijk.

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

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

19 UML is er ook bij.

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

21 Workshop aspect Roept u maar?

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

23 Kenmerken OO: encapsulatie Information hiding. Implementation hiding.

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

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

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

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

28 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?

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

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

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

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

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

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

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

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

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

38 Nog een principe dan. Favor composition over inheritance.

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

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

41 Design patterns Abstracte oplossingen voor veel- voorkomende problemen.

42 Design pattern: Decorator

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

44 Design pattern: Strategy

45 Design Pattern: Composite

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

47 Design Pattern: Lazy Load

48 Design Pattern?: Domain Model

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

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

51 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

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

53 Sites? http://phpfreakz.nl/wiki http://ootips.org http://martinfowler.com http://phpgg.nl (bijeenkomsten)‏ http://java.sun.com/blueprints/patterns/


Download ppt "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."

Verwante presentaties


Ads door Google