Beginnen met Object Oriented Programming

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Albert de Wit

Albert de Wit

05/01/2013 13:21:51
Quote Anchor link
Hallo,

Ik wil beginnen met het leren van OOP:PHP. Ik heb voor de vakantie een opdracht gekregen die ik rond februari af moet hebben. Ik heb al een beetje klaar van de opdracht. De opdracht is om een CMS te maken die roosters bijhoud van leerlingen van een school. Er zijn 3 soorten gebruikers van dit programma.

De Admin kan units toevoegen/wijzigen/verwijderen.
De Admin kan opleidingen toevoegen/wijzigen/verwijderen aan/van een unit.
De Admin kan leerlingen toevoegen/wijzigen/verwijderen aan/van een opleiding.

De UnitAdmin kan opleidingen toevoegen/wijzigen/verwijderen aan/van een unit.
De UnitAdmin kan leerlingen toevoegen/wijzigen/verwijderen aan/van een opleiding.

De Coach kan leerlingen toevoegen/wijzigen/verwijderen aan/van een opleiding.

Vanaf hier wil ik nog niet verder gaan. Eerst zou ik dit in orde willen maken. Nu heb ik dit al. Ik heb het idee dat ik er veel te veel werk in steek. Daarom lijkt me dit een mooie gelegenheid om te beginnen met OOP. Het probleem is. Ik weet nu nog niet waar ik moet beginnen. Wie kan mij vertellen wat en hoe?
 
PHP hulp

PHP hulp

23/09/2021 10:18:47
 
Wouter J

Wouter J

05/01/2013 13:24:16
Quote Anchor link
Als je nu OO gaat leren heb je het nooit voor februari af. Dus dat is de eerste overweging die je moet maken. Als 2e kost het maken van een OO cms enorm veel tijd.

Begin eens met het lezen van echte OO tutorials en dan niet die alleen maar over de syntax praten, zoals de gene die ik heb geschreven: http://wouterj.nl/serie/orienteer-je-in-objecten/ (ik weet het, ik moet hem nodig eens afmaken)
 
Albert de Wit

Albert de Wit

05/01/2013 13:50:03
Quote Anchor link
Ik hoopte eigenlijk aan de hand van dit project OO te leren. Zo kan ik binnen 1 project de beginselen van OO in de vingers krijgen en kan ik daarna verder ermee leren. Dit is een opdracht van school. Ik heb hier nog 25 hele dagen te tijd voor, dagen die ik altijd volledig benut met leren. Als je me kan helpen te vertellen hoe ik wat aan moet pakken om dit project in OO te schrijven dacht ik zo dat het wel mogelijk zou moeten zijn om dit project af te kunnen krijgen. Dit project is tevens na februari ook mijn stageopdracht waarna ik er nog een 3 maanden voor krijg. Ik zou het heel erg waarderen. Ik heb uw tutorial reeks gevolgd (tot nu toe begrijpelijk voor mij) alleen is die serie nog niet af :(.
 
Moose -

Moose -

05/01/2013 13:54:41
Quote Anchor link
Ik zou beginnen met code igniter, er staan genoeg tutorials op het web, en het is een goede stap naar het begrijpen van OO en MVC. Plus je kunt lekker snel dingen in mekaar flansen
 
Erwin H

Erwin H

05/01/2013 14:05:18
Quote Anchor link
Aan jou de keuze om het wel of niet te doen uiteraard, maar ik ben het wel eens met Wouter dan OO(P) niet iets is dat je 'even' leert.

Wil je het wel doen, zorg dan dat je stap 1 echt goed doet. Het is het moeilijkste van alles, maar ook het belangrijkste:
stap 1) Ontwerp je applicatie volledig zonder een letter code te schrijven. Zorg dat je goed weet wat je applicatie moet kunnen, welke functionaliteit moet het bieden, welke gegevens heb je nodig, waar komen die vandaan, hoe sla je het op, hoe haal je het op, hoe laat je het zien, welke pagina's heb je nodig etc etc.
Hoe modeleer je dat in termen van objecten, welke objecten heb je nodig, hoe is de relatie tussen die objecten onderling etc etc.
Hoe vertaal je die objecten naar classes in php, welk doel dient elke class, waar maak je gebruik van een abstracte parent class etc etc.
(en nog verder)

Als je dit ontwerp niet goed maakt, ga je het nooit in 25 dagen voor elkaar krijgen, als je het uberhaupt al aan de praat krijgt. Niet ontwerpen, maar gewoon beginnen is de grootste fout die je kan maken en die hier elke dag weer te zien is bij mensen die beginnen. Geen probleem als je gewoon aan het 'spelen' bent (je leert uit wel van), wel een probleem als je aan het einde een werkende applicatie wil opleveren.
Gewijzigd op 05/01/2013 14:05:36 door Erwin H
 
Albert de Wit

Albert de Wit

05/01/2013 15:16:29
Quote Anchor link
Erwin H op 05/01/2013 14:05:18:
stap 1) Ontwerp je applicatie volledig zonder een letter code te schrijven. Zorg dat je goed weet wat je applicatie moet kunnen, welke functionaliteit moet het bieden, welke gegevens heb je nodig, waar komen die vandaan, hoe sla je het op, hoe haal je het op, hoe laat je het zien, welke pagina's heb je nodig etc etc.
Hoe modeleer je dat in termen van objecten, welke objecten heb je nodig, hoe is de relatie tussen die objecten onderling etc etc.
Hoe vertaal je die objecten naar classes in php, welk doel dient elke class, waar maak je gebruik van een abstracte parent class etc etc.
(en nog verder)


Zo'n ontwerp, moet dat er ongeveer zo uitzien?
http://wouterj.nl/wp-content/uploads/2012/06/oo2-uml-is-a.png
 
Tim S

Tim S

05/01/2013 16:11:31
Quote Anchor link
Ik ben zelf ook bezig met een cms, waar je ook rekening mee moet houden is dat je nu 3 modules heb:
units
opleidingen
leerlingen

Al deze modules hebben ook een pagina nodig die alles voor deze modules regelt en eventueel de templates aanroept. Hiervoor moet je mappen structuur ook goed zijn en heb je een routing nodig.
 
Erwin H

Erwin H

05/01/2013 16:37:25
Quote Anchor link
Albert de Wit op 05/01/2013 15:16:29:
Zo'n ontwerp, moet dat er ongeveer zo uitzien?

Nog veeeeeel verder. Dit is een klein deel waarbij je het in zeker zin over de objecten hebt, nog niet over de classes.
Als je eerst het functioneel ontwerp maakt, kom je vanzelf dieper en zal je zien dat dit maar een heel klein onderdeel is. Een simpele OOP omgeving heeft toch al snel 40-50 classes, heb je iets meer opties erin al snel veel en veel meer.
 
Tim S

Tim S

05/01/2013 16:42:30
Quote Anchor link
Albert,

Van wie heb je deze opdracht gekregen, van school of een cursus? Hebben ze ook wat meer informatie gegeven?
 
Albert de Wit

Albert de Wit

05/01/2013 17:02:01
Quote Anchor link
Ik heb hem van school gekregen. Het is een opdracht waar ik rekening moet houden met werkprocessen als:

(voorbeeld)
Analyseren:
a. Zijn alle behoeften van de opdrachtgever geïnventariseerd?
b. Zijn de wensen van de opdrachtgever geïnventariseerd?
etc
etc

Ik volg een opleiding op het MBO (applicatieontwikkelaar)
Gewijzigd op 05/01/2013 17:02:30 door Albert de Wit
 
Wouter J

Wouter J

05/01/2013 17:22:30
Quote Anchor link
Allereerst inderdaad uittekenen, ik zou beginnen met het uitteken van wat er precies allemaal moet gebeuren. Dan kun je dat langzamerhand uitbouwen naar een klassen diagram (zoals je hierboven gaf) met alle klassen en dan kun je die weer stukje bij beetje opbouwen.

Het eerste deel gaat erg veel tijd kosten als je net begint. Het schrijven van de code gaat voor een grote applicatie nog meer tijd kosten.

Wat Not Moose zegt, beginnen met een framework, kan helpen, maar je kan ook het gevoel hebben dat je beperkt wordt in je doen en dat je nog langer bezig bent, omdat je eerst het framework onder de knie moet krijgen.

De tutorial die ik in het begin gaf, die van mijn zelf, heeft het alleen over het dichtklappen van je laptop en het leren uitdenken van je applicatie. Denk hierbij echt nog null komma null na over je code, alleen maar over de applicatie die je gaat maken.
 
Albert de Wit

Albert de Wit

05/01/2013 17:43:56
Quote Anchor link
Oke, bedankt Wouter. Ik zal eerst bezig gaan met de applicatie uitdenken, flink inventariseren en uittekenen. Nog wel snel een vraag. Gebruikte je een speciaal programmaatje voor dat tekenen? Zoja, welke?
 
Wouter J

Wouter J

05/01/2013 17:45:41
Quote Anchor link
Dat soort dingen noem je UML diagrammen. Ik gebruik Visual Paradigm (de gratis edition), maar het kan zijn dat je wat simpelers wilt (er zitten veel en veel te veel opties in).

Merk op dat ik dat programma alleen gebruikte om een mooi diagram voor mijn tutorials te krijgen, ik ben nog iemand die veel liever een gum, potlood en ruitjes papier heeft dan moeilijk met een computer te zitten prutten.
Gewijzigd op 05/01/2013 17:46:39 door Wouter J
 
Ozzie PHP

Ozzie PHP

05/01/2013 17:51:27
Quote Anchor link
Mensen... niet al te moeilijk denken. Ik lees in het allereerste bericht van Albert deze zin:

"Ik heb voor de vakantie een opdracht gekregen die ik rond februari af moet hebben."

Hij heeft die opdracht dus nog maar net gekregen en er wordt verwacht dat de opdracht binnen 4 weken klaar is. Dan snapt die leraar zelf ook wel dat het niet een compleet en hoogstaand CMS kan zijn. Ik denk dan ook dat het meer de bedoeling is dat je doorkrijgt hoe OOP werkt (lees bijv. de tutorial van Wouter) en dat je een paar simpele classen maakt met wat OOP technieken erin. Ik denk echt niet dat jouw leraar een compleet CMS / framework verwacht. Focus je dus vooral op wat OOP is (waarom gebruik je OOP, wat zijn de voor- en nadelen van OOP), en ga vervolgens een aantal classen maken met wat OOP technieken erin. Laat jezelf vooral niet gekmaken, want daar schiet je helemaal niks mee op.
 
Moose -

Moose -

05/01/2013 17:55:13
Quote Anchor link
Precies, daarom code igniter. Leer je ook nog wat van OO + heb je het zeker weten op tijd af
 
Albert de Wit

Albert de Wit

05/01/2013 18:09:39
Quote Anchor link
Ozzie PHP op 05/01/2013 17:51:27:
Mensen... niet al te moeilijk denken. Ik lees in het allereerste bericht van Albert deze zin:

"Ik heb voor de vakantie een opdracht gekregen die ik rond februari af moet hebben."

Hij heeft die opdracht dus nog maar net gekregen en er wordt verwacht dat de opdracht binnen 4 weken klaar is. Dan snapt die leraar zelf ook wel dat het niet een compleet en hoogstaand CMS kan zijn. Ik denk dan ook dat het meer de bedoeling is dat je doorkrijgt hoe OOP werkt (lees bijv. de tutorial van Wouter) en dat je een paar simpele classen maakt met wat OOP technieken erin. Ik denk echt niet dat jouw leraar een compleet CMS / framework verwacht. Focus je dus vooral op wat OOP is (waarom gebruik je OOP, wat zijn de voor- en nadelen van OOP), en ga vervolgens een aantal classen maken met wat OOP technieken erin. Laat jezelf vooral niet gekmaken, want daar schiet je helemaal niks mee op.


Mijn tweede bericht:
Quote:
Dit project is tevens na februari ook mijn stageopdracht waarna ik er nog een 3 maanden voor krijg.


Ik ben een 2de jaar leerling. Natuurlijk word er geen hoogstaand eindresultaat verwacht. Ik ben nog lerende. Ik krijg nu toevallig een opdracht en dacht 'Ik wil dit in OO maken omdat ik dan tenminste ergens begin. Goed of fout, ik leer ervan'
Gewijzigd op 05/01/2013 18:10:16 door Albert de Wit
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.