Beginnen met Object Oriented Programming
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?
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)
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 :(.
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
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
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)
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?
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.
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.
Van wie heb je deze opdracht gekregen, van school of een cursus? Hebben ze ook wat meer informatie gegeven?
(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
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.
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?
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
"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.
Precies, daarom code igniter. Leer je ook nog wat van OO + heb je het zeker weten op tijd af
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.
"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