1 / 53

OO: de echte wereld modelleren

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.

arav
Download Presentation

OO: de echte wereld modelleren

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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.

More Related