De laatste tijd val ik steeds over het punt dat mijn code te snel onleesbaar en onderhoudbaar wordt. De laatste tijd programmeer ik meer in C# dan in PHP en merk dat het een wereld van verschil in. In PHP pas ik Zend Framework en Doctrine toe, zodoende heb ik bepaalde lagen al voor grote delen klaar liggen en kan daarop door bouwen. Daarnaast is het bij PHP nog eenvoudig, omdat je een verzoek hebt voor data en deze toont of aangeleverde data verwerkt. Echter in C# merk ik dan instanties veel langer kan bestaan en hier een goede architectuur voor vinden is lastig.
Als voorbeeld ben ik nu bezig met een applicatie welke mijn muziekcollectie doorneemt en dat opslaat in een database. Dit is realiseerbaar, maar ik merk dat ik geen herbruikbare onderdelen krijg en als ik iets soortgelijk wil of er op door wil bouwen, dat er aardig wat refactor werk bij komt kijken. Vooral het opzetten van classes is iets wat moeite kost. Data inlezen vanaf de hardschijf zou via een speciale class kunnen, maar via 10regels code in de Form class kan ik ook de data krijgen welke ik nodig heb. Echter als ik dit blijf doen dan heb ik na een tijdje een Form class van honderden regels code en is het helemaal niet meer leesbaar. Aan de andere kant als ik deze logica in een class stop dan is het weer lastig om met de presentatielaag te communiceren. Het definiëren van classes, wat hun functie is en hoe je ze in een applicatie toepast kost mij erg veel moeite.
Zijn hier ook best practices in of bepaalde architecturen welke toepasbaar zijn, zodat je meer gedwongen wordt om bepaalde werkzaamheden in lagen van je applicatie te verwerken? Tevens het opzetten van classes, hoe kun je deze opzetten, zonder dat ze grote afhankelijkheden binnen te applicatie veroorzaken?
Als voorbeeld ben ik nu bezig met een applicatie welke mijn muziekcollectie doorneemt en dat opslaat in een database. Dit is realiseerbaar, maar ik merk dat ik geen herbruikbare onderdelen krijg en als ik iets soortgelijk wil of er op door wil bouwen, dat er aardig wat refactor werk bij komt kijken. Vooral het opzetten van classes is iets wat moeite kost. Data inlezen vanaf de hardschijf zou via een speciale class kunnen, maar via 10regels code in de Form class kan ik ook de data krijgen welke ik nodig heb. Echter als ik dit blijf doen dan heb ik na een tijdje een Form class van honderden regels code en is het helemaal niet meer leesbaar. Aan de andere kant als ik deze logica in een class stop dan is het weer lastig om met de presentatielaag te communiceren. Het definiëren van classes, wat hun functie is en hoe je ze in een applicatie toepast kost mij erg veel moeite.
Zijn hier ook best practices in of bepaalde architecturen welke toepasbaar zijn, zodat je meer gedwongen wordt om bepaalde werkzaamheden in lagen van je applicatie te verwerken? Tevens het opzetten van classes, hoe kun je deze opzetten, zonder dat ze grote afhankelijkheden binnen te applicatie veroorzaken?