Het starten van een groot project.
Beste,
ik vraag me telkens af, hoe start ik een groot project. Stap 1 is natuurlijk bij iedereen bekend. "Zet je ideeën op papier" correct toch? Wel dit kan natuurlijk iedereen. Maar dan komt het moeilijke, "hoe realiseer ik mijn project". Er zijn verschillende opties van programmeren:
Nu ben ik stilaan wel overtuigd dat ik verder moet gaan met de laatste manier omdat dit tijd bespaart, etc... Maar hoe ga je dan verder? In de klassieke manier begon ik met het met maken van de mappen die ik nodig had en daarna maakt ik het config bestand, namelijk het verbinden met de database. In de OO manier is dit helemaal anders lijkt mij. Je bent verplicht een database classe aan te maken of bijvoorbeeld PDO te gebruiken. Stel nu ik kies ervoor om pdo te gebruiken voor mijn project, dan begin ik in mijn config bestand met de gegevens maar waar zet ik mijn pdo class en hoe krijg ik de gegevens van mijn config bestand op de juiste plaats. Dit moest (kort gezegd) met new pdo(gegevens uit mijn config bestand); Moet ik dit doen in elke bestand waar ik een database wil gebruiken nee toch?
Als we dit nu even terzijde laten, ik zou ook kunnen gaan werken met een framework ik denk maar aan het zendframework, (kan iemand mij nog een framework zeggen?). Maar wat is dan het MVC en wat doe ik met de template parsers(?) als smartie bijvoorbeeld?
Iemand die mij op de juiste weg zet? Een tutorial kan mij misschien wel de theorie leren maar kan mij niet het inzicht geven van hoe ik zoiets best aanpak. Dat kan alleen door middel van ervaring en die hoop ik bij jullie te vinden. Dus spreek, wat raden jullie aan!
Alvast bedankt.
ik vraag me telkens af, hoe start ik een groot project. Stap 1 is natuurlijk bij iedereen bekend. "Zet je ideeën op papier" correct toch? Wel dit kan natuurlijk iedereen. Maar dan komt het moeilijke, "hoe realiseer ik mijn project". Er zijn verschillende opties van programmeren:
- Klassieke manier
- OO manier
- zend framework?
- Smartie?
- MVC?
Nu ben ik stilaan wel overtuigd dat ik verder moet gaan met de laatste manier omdat dit tijd bespaart, etc... Maar hoe ga je dan verder? In de klassieke manier begon ik met het met maken van de mappen die ik nodig had en daarna maakt ik het config bestand, namelijk het verbinden met de database. In de OO manier is dit helemaal anders lijkt mij. Je bent verplicht een database classe aan te maken of bijvoorbeeld PDO te gebruiken. Stel nu ik kies ervoor om pdo te gebruiken voor mijn project, dan begin ik in mijn config bestand met de gegevens maar waar zet ik mijn pdo class en hoe krijg ik de gegevens van mijn config bestand op de juiste plaats. Dit moest (kort gezegd) met new pdo(gegevens uit mijn config bestand); Moet ik dit doen in elke bestand waar ik een database wil gebruiken nee toch?
Als we dit nu even terzijde laten, ik zou ook kunnen gaan werken met een framework ik denk maar aan het zendframework, (kan iemand mij nog een framework zeggen?). Maar wat is dan het MVC en wat doe ik met de template parsers(?) als smartie bijvoorbeeld?
Iemand die mij op de juiste weg zet? Een tutorial kan mij misschien wel de theorie leren maar kan mij niet het inzicht geven van hoe ik zoiets best aanpak. Dat kan alleen door middel van ervaring en die hoop ik bij jullie te vinden. Dus spreek, wat raden jullie aan!
Alvast bedankt.
Gewijzigd op 26/08/2011 22:09:32 door PHP Jasper
Gesponsorde koppelingen:
Ik ben bezig een eigen framework/cms te maken... op basis van het MVC model. Nadeel: het is een heleboel werk. Voordeel: ik weet als het klaar is precies hoe het in elkaar zit en hoe het werkt... en ik kan binnen 10 minuten de complete basis van een website hebben staan.
Hoe ik zelf in grote lijnen een groot project aan pak: actieplan schrijven en discussiëren met collega's / opdrachtgevers en eventueel bijschaven, lijntekeningen maken, layout maken op basis van lijntekeningen... de uiteindelijke site maken. Besef je wel dat een site maken vaak niet een kwestie van een paar weken is. Het maken van een goede website, vanaf 0 tot compleet eindproduct, kan best heel wat maanden in beslag nemen. Grote webshops kun je zomaar een jaar mee bezig zijn voordat je een basis hebt staan.
Hoop dat je hier iets aan hebt.
Hoe ik zelf in grote lijnen een groot project aan pak: actieplan schrijven en discussiëren met collega's / opdrachtgevers en eventueel bijschaven, lijntekeningen maken, layout maken op basis van lijntekeningen... de uiteindelijke site maken. Besef je wel dat een site maken vaak niet een kwestie van een paar weken is. Het maken van een goede website, vanaf 0 tot compleet eindproduct, kan best heel wat maanden in beslag nemen. Grote webshops kun je zomaar een jaar mee bezig zijn voordat je een basis hebt staan.
Hoop dat je hier iets aan hebt.
Gewijzigd op 26/08/2011 23:23:52 door Ozzie PHP
Jazeker ozzie alvast bedankt voor je bijdrage. Maar ik zou dieper willen ingaan op het programmeren zelf. Een eigen framework maken zit er bij mij voorlopig nog niet in maar met wat start ik het beste en hoe start ik dan binnen die optie? Bijvoorbeeld het maken van een member systeem, ik kan op de klassieke manier een mooie basis maken in een paar uur. Hoe maak ik dat op een OO manier zodat ik later makkelijk zaken kan toevoegen / wijzigen? Wat gebruik ik of doe ik het gewoon OO zonder een framework etc..
Gewijzigd op 26/08/2011 23:27:59 door PHP Jasper
Hmmmm, als je niks hebt is een framework wellicht handig... maar vergis je niet dat er ook veel tijd gaat zitten in het leren kennen en gebruiken van een framework. Als ik zelf naar Zend Framework kijk vind ik het allemaal vrij ingewikkeld, maar echt opgeleide programmeurs vinden het waarschijnlijk weer erg handig. Mijzelf, als niet opgeleide IT'er, kost het teveel tijd om uit te zoeken hoe alles werkt.
Klopt ik was ook met zend begonnen, heb dat eventjes moeten stoppen wegens weinig tijd maar het was allemaal erg ingewikkeld. Ik heb ook geen IT opleiding gehad dus. Maar stel nu dat ik kies voor het "normale" OO programmeren hoe start ik dan aan zo'n project? zoals ik in mijn eerste post schreef? Met een config bestand?
Tja, dan zou ik me toch verdiepen in het MVC model. Daar vast een mappenstructuur voor maken. En dan kun je met classes gaan werken. Ik weet niet zo goed wat je bedoeld met het starten met een config bestand.
"het mvc model" wat is dat? Waar kan ik dat vinden? er zijn er verschillende niet? Met het config bestand bedoel ik: als ik nu een project start open ik een bestand en zet ik er de benodigde gegevens in voor te connecten met de database dat is mijn eerste stap. De eerste stap in de OO manier is anders volgens mij.
Hmm, je begint eigenlijk met het opvangen van de route / de url die is ingetypt... maar dat is niet specifiek MVC. MVC staat voor models views controllers.
Ik gebruik het zelf op de CMV manier.
http://nl.wikipedia.org/wiki/Model-view-controller-model
Let wel, het MVC is niet 100% strikt, maar het is een soort richtlijn. Er gelden geen strikte wetten.
Ik gebruik het zelf op de CMV manier.
http://nl.wikipedia.org/wiki/Model-view-controller-model
Let wel, het MVC is niet 100% strikt, maar het is een soort richtlijn. Er gelden geen strikte wetten.
Hoi Jasper,
Allereerst leuk dat je dit topic heb gestart. Hopen dat het een topic wordt waaraan veel beginnende applicatie ontwikkelaars wat aan hebben.
Laten we eerst beginnen met zoals jij zei het uittekenen van de applicatie. Wanneer dat is gebeurd kan je 'gemakkelijk' beginnen met het bedenken van de classen structuur.
De vraag is natuurlijk hoe we dat het beste kunnen doen. Allereerst het uittekenen van de applicatie. Jij zegt in je beginpost dat het uitteken van een project iedereen kan. Daar heb je ook wel gelijk in, maar ik vraag me af of iedereen het ook goed kan. Zelf heb ik er altijd grote moeite mee en dan ook altijd blij als ik hulp van andere mensen krijg. Ik zal proberen te vertellen wat ik weet om je te helpen, maar er zal allicht een betere methode zijn.
Afijn, ik heb het wel eens meer gezegd hier, maar begin eens met het uitzetten van je computer. Pak een pen en papier en begin. Het uitschrijven van je applicatie is best lastig. Wat ga je nu precies opschrijven? Hoeveel? Waar? Wanneer? Wat heb ik eraan? Wat ga ik ermee doen? Etc,.. Pasgeleden heb ik dit artikel gezien en ben sinds dien beter gaan schrijven. klik Het artikel legt de noodzaak van het uitschrijven van de applicatie uit en geeft een aantal mooie voorbeelden. Een aanrader!
Software engineering is ook een mooi begrip. Google er eens op. Hier heb ik nog twee interessante links voor je:
Software development
Software development process
Kijk ook vooral naar de tips aan de rechterkant en de 'See Also' opties.
Waarom ik nu zoveel tijd / tekst besteed aan het uitdenken van de applicatie? Ik weet uit ervaring (jammer genoeg) dat de nummer één om af te haken bij grote projecten het niet goed voorbereid zijn en halverwege of eerder, door de bomen het bos niet meer zien.
Pas geleden heb ik je de blogs van Mark Kazemier aangeraden. Ook daarin wordt uitgelegd hoe je precies een applicatie ontwikkeld, daar begint hij ook met het uitschrijven van de applicatie. Nogmaals de link van de blog reeks: klik
Zoals je misschien in de bovenstaande tutorials heb gelezen is het gebruik van UML ook belangrijk. Google eens op de termen als:
- Use-Casses
- ORM's
- Sequence Diagrams
- State Diagrams
- Class Diagrams
Er zijn er nog wel een aantal, maar dit zijn diegene die ik uit mijn hoofd weet en diegene die ik het meeste gebruik.
Goed genoeg over software engineering. Tijd om te kijken naar de keuze van je framework.
Zelf raad ik je Zend Framework aan. Ik had je al wel eens een tutorial aangeboden geloof ik. Zo te zien niet helemaal afgemaakt, maar goed dat terzijde.
Zend Framework dwingt je tot het gebruik van het MVC (Model-View-Controller) design pattern. De voordelen van het Zend Framework zijn onder andere:
- Het makkelijk googlen van je problemen
- Veel standaard functionaliteit
Het nadeel van Zend Framework is dat het heel zwaar is.
Wanneer je nee zegt tegen Zend Framework zou je eens kunnen kijken naar één van de frameworks uit het onderstaande lijstje:
- CakePHP
- Codeigniter
- Fusebox
- Symphony
- Yii
- Kohana
- Akelos
- eZ Components
Google eens op PHP frameworks en je zult genoeg resultaten / beoordelingen tegen komen. Oriënteer je eens in dit gebied.
Goed, er zijn nog zat onderwerpen om aan te snijden, maar het is belangrijk dat je eerst je applicatie uitschrijft en je keuzes maakt voor de rest van het project.
Wanneer je dat gedaan hebt kunnen we gaan kijken naar veel voorkomende problemen met de daarbij behorende oplossingen.
Veel succes!
Allereerst leuk dat je dit topic heb gestart. Hopen dat het een topic wordt waaraan veel beginnende applicatie ontwikkelaars wat aan hebben.
Laten we eerst beginnen met zoals jij zei het uittekenen van de applicatie. Wanneer dat is gebeurd kan je 'gemakkelijk' beginnen met het bedenken van de classen structuur.
De vraag is natuurlijk hoe we dat het beste kunnen doen. Allereerst het uittekenen van de applicatie. Jij zegt in je beginpost dat het uitteken van een project iedereen kan. Daar heb je ook wel gelijk in, maar ik vraag me af of iedereen het ook goed kan. Zelf heb ik er altijd grote moeite mee en dan ook altijd blij als ik hulp van andere mensen krijg. Ik zal proberen te vertellen wat ik weet om je te helpen, maar er zal allicht een betere methode zijn.
Afijn, ik heb het wel eens meer gezegd hier, maar begin eens met het uitzetten van je computer. Pak een pen en papier en begin. Het uitschrijven van je applicatie is best lastig. Wat ga je nu precies opschrijven? Hoeveel? Waar? Wanneer? Wat heb ik eraan? Wat ga ik ermee doen? Etc,.. Pasgeleden heb ik dit artikel gezien en ben sinds dien beter gaan schrijven. klik Het artikel legt de noodzaak van het uitschrijven van de applicatie uit en geeft een aantal mooie voorbeelden. Een aanrader!
Software engineering is ook een mooi begrip. Google er eens op. Hier heb ik nog twee interessante links voor je:
Software development
Software development process
Kijk ook vooral naar de tips aan de rechterkant en de 'See Also' opties.
Waarom ik nu zoveel tijd / tekst besteed aan het uitdenken van de applicatie? Ik weet uit ervaring (jammer genoeg) dat de nummer één om af te haken bij grote projecten het niet goed voorbereid zijn en halverwege of eerder, door de bomen het bos niet meer zien.
Pas geleden heb ik je de blogs van Mark Kazemier aangeraden. Ook daarin wordt uitgelegd hoe je precies een applicatie ontwikkeld, daar begint hij ook met het uitschrijven van de applicatie. Nogmaals de link van de blog reeks: klik
Zoals je misschien in de bovenstaande tutorials heb gelezen is het gebruik van UML ook belangrijk. Google eens op de termen als:
- Use-Casses
- ORM's
- Sequence Diagrams
- State Diagrams
- Class Diagrams
Er zijn er nog wel een aantal, maar dit zijn diegene die ik uit mijn hoofd weet en diegene die ik het meeste gebruik.
Goed genoeg over software engineering. Tijd om te kijken naar de keuze van je framework.
Zelf raad ik je Zend Framework aan. Ik had je al wel eens een tutorial aangeboden geloof ik. Zo te zien niet helemaal afgemaakt, maar goed dat terzijde.
Zend Framework dwingt je tot het gebruik van het MVC (Model-View-Controller) design pattern. De voordelen van het Zend Framework zijn onder andere:
- Het makkelijk googlen van je problemen
- Veel standaard functionaliteit
Het nadeel van Zend Framework is dat het heel zwaar is.
Wanneer je nee zegt tegen Zend Framework zou je eens kunnen kijken naar één van de frameworks uit het onderstaande lijstje:
- CakePHP
- Codeigniter
- Fusebox
- Symphony
- Yii
- Kohana
- Akelos
- eZ Components
Google eens op PHP frameworks en je zult genoeg resultaten / beoordelingen tegen komen. Oriënteer je eens in dit gebied.
Goed, er zijn nog zat onderwerpen om aan te snijden, maar het is belangrijk dat je eerst je applicatie uitschrijft en je keuzes maakt voor de rest van het project.
Wanneer je dat gedaan hebt kunnen we gaan kijken naar veel voorkomende problemen met de daarbij behorende oplossingen.
Veel succes!
zozo dat is een hele brok.. :) Ik ga voor mezelf een project(je) bedenken en alvast starten met het uitschrijven, daarvoor zal ik de eerste link even doornemen. Nadat dat gebeurt is zal ik beginnen kijken naar de frameworks die jij daar vermeld.
Mooi! Ik ben benieuwd naar je tekeningen en keuzes! Houd ons op de hoogte als je wilt.
Ben enige tijd geleden begonnen met CodeIgniter. Geen zwaar framework, duidelijke documentatie, actieve community voor problemen en het beste van alles: http://net.tutsplus.com/sessions/codeigniter-from-scratch/
Heb hier erg veel aan gehad! Paar kleinere projecten mee gemaakt, binnenkort een op "klassieke manier" gemaakte webshop opnieuw schrijven met CodeIgniter.
Zag nooit het voordeel van een framework, na de video tutorials van Nettuts; fantastisch!
Wat het uitschrijven betreft, ben/was ik erg slecht in, na 10x "op je bek gaan" (bijv. dingen verkeerd inschatten waarna je of je deadline niet haal of bepaalde delen 3x opnieuw schrijft) krijg je hier steeds meer inzicht in.
Heb hier erg veel aan gehad! Paar kleinere projecten mee gemaakt, binnenkort een op "klassieke manier" gemaakte webshop opnieuw schrijven met CodeIgniter.
Zag nooit het voordeel van een framework, na de video tutorials van Nettuts; fantastisch!
Wat het uitschrijven betreft, ben/was ik erg slecht in, na 10x "op je bek gaan" (bijv. dingen verkeerd inschatten waarna je of je deadline niet haal of bepaalde delen 3x opnieuw schrijft) krijg je hier steeds meer inzicht in.
Gewijzigd op 28/08/2011 18:22:36 door Roy D
Top! Ik denk dat dat wel uitstekend is om te starten.
Denk er wel om dat deze tutorial al een beetje oud is. Deze code bijv:
Moet tegenwoordig zijn:
Houd dus altijd de documentatie (user guide) bij de hand.
Je leert in deze tutorial ook de basis van MVC (model view controller).
Moet tegenwoordig zijn:
Houd dus altijd de documentatie (user guide) bij de hand.
Je leert in deze tutorial ook de basis van MVC (model view controller).
Ik had het al opgemerkt. Dus ik kan de tutorial volgen maar ik moet voor de functies altijd even checken in de user guide?
Ik zou de tutorial gewoon volgen, het is een uitstekende tutorial. Maar na elke video zou ik wel even de user guide bekijken of alles nog hetzelfde is.
Prima, dit werkt alleszins al beter als zend. ;p
@niels
ben nog niet erg bezig met OOP maar voor dan. Dit topic gaat in de favorieten , Blijf het volgen.
ben nog niet erg bezig met OOP maar voor dan. Dit topic gaat in de favorieten , Blijf het volgen.
@Niels: Uitstekende tips. Kijk ook eens naar de techniek die tegenwoordig veel gebruikt wordt, Agile: http://nl.wikipedia.org/wiki/Agile-software-ontwikkeling Veel ontwikkelaars doen wel pogingen om te ontwerpen en zonder het kloppen van code te starten maar je ziet het hier al, er is hierboven al code te vinden terwijl dat juist beter niet moet. Deze laatste methode, het kloppen van code en continue proberen heet: "cowboy coding" en ik maak me daar ook wel eens schuldig aan hoor...
Gewijzigd op 28/08/2011 21:01:39 door Aad B
Codeigniter lukt al aardig maar waar plaats ik mijn css bestanden? Waar zet ik mijn mapje css?
Ik ken Code Igniter niet, maar misschien kun je hier weer een stukje mee vooruit:
http://afruj.wordpress.com/2008/05/04/adding-css-into-codeigniter-view/
http://afruj.wordpress.com/2008/05/04/adding-css-into-codeigniter-view/



