[oop] abstract vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Software Developer

Dit ga je doen Ontwerpen, ontwikkelen en onderhouden van (mobiele) internettoepassingen; Ontwikkelen en onderhouden van Microservices; Ontwerpen en optimaliseren van databases; Identificeren van nieuwe trends/ontwikkelingen binnen de branche. Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt zich op het leveren van kwalitatief hoogwaardige producten aan alle hun klanten. De organisatie telt circa 4.000 medewerkers in meer dan 10 verschillende landen. Momenteel is de organisatie op zoek naar een Software Developer wilt meewerken aan het

Bekijk vacature »

Medior Mobile Developer iOS Amsterdam

Functie What will you be doing as Mobile Developer? As an iOS app developer you will work in a multidisciplinary team of app developers, web developers and designers. You will work on world-class apps that will be used by thousands of people. There is a lot of room for self-development on a technical and personal level. Together with the rest of the team you develop in the newest techniques and you go for the best quality. We work with Kotlin Multiplatform Mobile to develop hybrid apps and we guarantee quality with peer reviews, unit testing and we use a CI/CD.

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Wij zijn voor een leuke opdrachtgever in omgeving Naaldwijk op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Wij zoeken iemand die breed inzetbaar is en die aan veel verschillende applicaties wilt werken. Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind

Bekijk vacature »

PHP Laravel developer

Functie omschrijving Weet jij alles van Laravel en krijg je energie van het ontwikkelen van software hiermee? Laat snel wat van je horen want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch. Jouw taken zullen bestaan uit: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Documentatie schrijven over applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein softwarebedrijf. Er werken ongeveer 15 medewerkers, verdeeld in meerdere teams, zoals back-end en front-end development, projectmanagement

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Boskoop dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat technische klussen uitvoeren op locatie bij klanten.Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat software en webapplicaties ontwikkelen met behulp van de talen

Bekijk vacature »

Back-end developer (Magento2)

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

Bekijk vacature »

Software ontwikkelaar

Ben jij graag bezig met verschillende projecten? Vind jij beleving van klanten én medewerkers ook belangrijk? Wij zijn vanwege de doorontwikkeling van het applicatielandschap van onze opdrachtgever op zoek naar een fulltime software ontwikkelaar. Omschrijving Jij en jouw collega’s zijn verantwoordelijk voor de continuïteit en waarborging van het applicatielandschap. Om de processen vloeiend te laten verlopen is software ontwikkeling daarom van essentieel belang. Onze opdrachtgever doet dit voornamelijk zelf, met door hun eigen ontwikkelde applicaties. Dit betekent dat jij: functionele eisen vertaalt naar gebruiksvriendelijke software; tijdens SCRUM sessies advies geeft over het te bouwen ontwerp; nieuwe software ontwikkelt en het

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software Developer

Dit ga je doen Ontwikkelen aan de software dat beschikbaar is op de substations; Ontwikkelen in C++, C, Python en JavaScript. Daarnaast op een Embedded Linux omgeving, opgebouwd met containers en DevOps; Meewerken aan cyber security (OWASP); Uitvoeren/bouwen van geautomatiseerde testen in samenwerking met de Quality Specialist; Vertalen van wensen van de klanten/business naar werkbare/duurzame oplossingen. Hier ga je werken Als Software Ontwikkelaar kom je te werken bij een organisatie gericht op de (internationale) energiemarkt, waar wordt gewerkt voor het verwerven en verwerken van realtime, high quality data. Er wordt gewerkt vanuit het hart van de substations en direct voor

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij recent jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een erkende werkgever in regio Waalwijk zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

23/02/2014 00:07:24
Quote Anchor link
Hallo,

Ik zat me ineens iets af te vragen. Als je gebruikers/users hebt, dan kun je "simpele" users hebben, en "uitgebreide" users.

Wat ik bedoel is dit. Stel iemand meldt zich via je website aan voor een nieuwsbrief. Het enige dat die persoon invult is zijn naam en e-mailadres. We kunnen dus zeggen dat het om een "simpele" user gaat, waarvan we alleen de naam en het e-mailadres weten. We kunnen ook "uitgebreide" users hebben. Stel je voor, iemand koopt een product via een webshop, dan weten we niet alleen zijn/haar naam en e-mailadres, maar ook woonplaats en adres. En in weer andere situaties weet je misschien ook wel de geboortedatum.

Nu vraag ik me af. Stel dat je een abstracte user class zou maken, waarop alle andere users zijn gebaseerd. Moet je die class dan zo "simpel" mogelijk houden (dus alleen een naam en e-mailadres), of moet je die juist zo "uitgebreid" mogelijk maken, en null returnen indien bepaalde gegevens niet bekend zijn?
 
PHP hulp

PHP hulp

19/12/2024 06:09:15
 
Bart V B

Bart V B

23/02/2014 10:18:46
Quote Anchor link
Lijkt me een gevalletje DRY. (Don't repeat yourself)

Denk dat ikzelf er voor zou kiezen om op database niveau de (het?) user tabel zo uitgebreid mogelijk te maken.
En op het moment dat ik maar enkele velden nodig heb die over laat aan de php kant.
 
Ozzie PHP

Ozzie PHP

23/02/2014 16:03:50
Quote Anchor link
Dus als ik je goed begrijp maak je in de database 1 heel uigebreide user tabel?

Stel nu dat je een "simpele" user hebt die zich heeft aangemeld voor de nieuwsbrief. Hoe werkt dat dan?

Ik zie 2 scenario's. De default user class is heel beperkt en bevat alleen een getName() en getMail() method. De nieuwsbrief user valt onder deze categorie.

Scenario 2. De default user class is super uitgebreid en je accepteert in het geval van een nieuwsbrief user dat bepaalde methods, bijv. getAddress(), getDayOfBirth e.d. geen resultaat opleveren.

Wat is gebruikelijk?
 
Dennis Stolmeijer

Dennis Stolmeijer

23/02/2014 17:07:20
Quote Anchor link
Ik zou altijd voor scenario 2 gaan, implementatie is stukken makkelijker en ik zie geen nadelen aan 2 tegenover 1, andersom wel.
 
Ward van der Put
Moderator

Ward van der Put

23/02/2014 17:08:07
Quote Anchor link
Eén gebruiker heeft vaak meerdere e-mailadressen. Eén website heeft soms meerdere nieuwsbrieven. Enzovoort.

Zodra je niet normaliseert conform de werkelijkheid, neem je een ontwerpbeslissing die consequenties heeft voor de toekomst.

Verder heeft de inrichting van je User-tabel in de database niet direct te maken met de User-klassen in uiteenlopende webapplicaties. Eén klasse die alles kan, is meestal geen goed idee.
 
Ozzie PHP

Ozzie PHP

23/02/2014 17:15:35
Quote Anchor link
@Ward:

Hoe zou jij zoiets dan doen? Zou jij dan een hele simpele abstracte user class maken met alleen een getName en getMail method?

In algemene zin zou je de vraag ook anders kunnen stellen... moet een abstracte class alleen die functionaliteit bieden die in alle classes aanwezig wordt geacht te zijn? Of moet een class juist zoveel mogelijk functionaliteit bieden, ook al is die functionaliteit voor sommige classes overbodig?

Denis kiest als ik het goed begrijp voor het eerste, terwijl Ward voor het laatste kiest. Kunnen jullie je keuzes nog verder onderbouwen?
 
Dennis Stolmeijer

Dennis Stolmeijer

23/02/2014 17:19:58
Quote Anchor link
Mijn antwoord is gebasseerd op het principe van ORM, 1 tabel staat voor 1 klasse. Wat je wel kan doen, maar dit is puur persoonlijk:

User
naam
email

User_Setting
phone
birth
etc
etc

I.P.V alles in 1 tabel te zetten.

Dit ligt er ook maar net aan hoeveel users jij krijgt met alleen maar naam/email.
Gewijzigd op 23/02/2014 17:20:26 door Dennis Stolmeijer
 
Ozzie PHP

Ozzie PHP

23/02/2014 17:24:23
Quote Anchor link
Ah oké. Ik moet er nog eens even goed over nadenken dan.

Weet je toevallig nog een goede tutorial over ORM?
 
Dennis Stolmeijer

Dennis Stolmeijer

23/02/2014 17:36:32
Quote Anchor link
Er zijn een aantal ORM bibliotheken te vinden voor PHP, vrijwel de bekendste is Doctrine, veel bestaande frameworks als Symfony en Laravel maken gebruik van deze bibliotheek.

Je hebt trouwens ook PHPActiverecord.. maar daar is wel veel minder support voor http://www.phpactiverecord.org/
Gewijzigd op 23/02/2014 17:37:16 door Dennis Stolmeijer
 
Ward van der Put
Moderator

Ward van der Put

23/02/2014 17:38:55
Quote Anchor link
Er is hier geen goed of fout. Als je een site hebt die primair is gericht op het verzamelen van voornaam en e-mailadres van bezoekers, dan kun je het daarbij laten. Ga dan vooral niet ingewikkeld een compleet mens modelleren.

Maar wil je wél een uitgebreid user-model, doe het dan goed. Mensen hebben meerdere e-mailadressen, meerdere adressen, enzovoort. In dat geval zou ik ook kiezen voor een sterk genormaliseerde database. Aansluitend kunnen dan verschillende applicaties dezelfde data gebruiken met verschillende klassen. En dan dus niet:
één tabel is gelijk aan één klasse.
 
Dennis Stolmeijer

Dennis Stolmeijer

23/02/2014 17:48:58
Quote Anchor link
Ward van der Put op 23/02/2014 17:38:55:
Er is hier geen goed of fout. Als je een site hebt die primair is gericht op het verzamelen van voornaam en e-mailadres van bezoekers, dan kun je het daarbij laten. Ga dan vooral niet ingewikkeld een compleet mens modelleren.

Maar wil je wél een uitgebreid user-model, doe het dan goed. Mensen hebben meerdere e-mailadressen, meerdere adressen, enzovoort. In dat geval zou ik ook kiezen voor een sterk genormaliseerde database. Aansluitend kunnen dan verschillende applicaties dezelfde data gebruiken met verschillende klassen. En dan dus niet:
één tabel is gelijk aan één klasse.


Zou je kunnen uitleggen waarom één tabel is gelijk aan één klasse, geen goede implementatie zou zijn? De hele ORM principe draait hier eigenlijk om.

p.s. met Klasse doel ik op een klasse die fungeert als een Model in het geval van een MVC of MVVM, ie implementatie
 
Ward van der Put
Moderator

Ward van der Put

23/02/2014 18:00:30
Quote Anchor link
>> Zou je kunnen uitleggen waarom één tabel is gelijk aan één klasse, geen goede implementatie zou zijn? De hele ORM principe draait hier eigenlijk om.

Als één gebruiker meerdere e-mailadressen heeft, zijn dat in een goed genormaliseerde database twee tabellen. Toch kun je dan één User-class hebben.

Voor veel-op-veel-relaties wordt de complicatie nog groter. Eén gebruiker kan meerdere adressen hebben. Maar één adres kan omgekeerd ook door meerdere gebruikers worden gebruikt. In een database is dat geen punt: je gebruikt gewoon drie tabellen. In een webapplicatie modelleer je dat echter niet vanzelfsprekend met drie classes. Het kunnen er ook meer of minder zijn.
 
Dennis Stolmeijer

Dennis Stolmeijer

23/02/2014 18:20:37
Quote Anchor link
Ward van der Put op 23/02/2014 18:00:30:
>> Zou je kunnen uitleggen waarom één tabel is gelijk aan één klasse, geen goede implementatie zou zijn? De hele ORM principe draait hier eigenlijk om.

Als één gebruiker meerdere e-mailadressen heeft, zijn dat in een goed genormaliseerde database twee tabellen. Toch kun je dan één User-class hebben.

Voor veel-op-veel-relaties wordt de complicatie nog groter. Eén gebruiker kan meerdere adressen hebben. Maar één adres kan omgekeerd ook door meerdere gebruikers worden gebruikt. In een database is dat geen punt: je gebruikt gewoon drie tabellen. In een webapplicatie modelleer je dat echter niet vanzelfsprekend met drie classes. Het kunnen er ook meer of minder zijn.


Eens, ik had het scenario van een veel-op-veel relatie niet meegenomen. Verder delen we wel gewoon dezelfde mening en daar was ik benieuwd naar.
 
Wouter J

Wouter J

23/02/2014 18:27:51
Quote Anchor link
Als 1 User meerdere emailadressen heeft dan heeft de User object een n-n relatie met het Email object.

Dennis, merk op dat je jouw denkwijze van een ORM iets moet aanpassen. Het gaat in een ORM namelijk niet om je tabel, maar om je object. Code-first zeg maar. Dus elk object heeft zijn eigen tabel, maar niet perse elke tabel hoeft een object te hebben.
 
Ward van der Put
Moderator

Ward van der Put

23/02/2014 18:33:23
Quote Anchor link
Wouter J op 23/02/2014 18:27:51:
Dus elk object heeft zijn eigen tabel, maar niet perse elke tabel hoeft een object te hebben.

Elk object een eigen databasetabel? En dus voor elk object databasetoegang?
 
Dennis Stolmeijer

Dennis Stolmeijer

23/02/2014 18:43:08
Quote Anchor link
Wouter J op 23/02/2014 18:27:51:
Als 1 User meerdere emailadressen heeft dan heeft de User object een n-n relatie met het Email object.

Dennis, merk op dat je jouw denkwijze van een ORM iets moet aanpassen. Het gaat in een ORM namelijk niet om je tabel, maar om je object. Code-first zeg maar. Dus elk object heeft zijn eigen tabel, maar niet perse elke tabel hoeft een object te hebben.


Bedoel je niet een 1:n relatie? n:n houd in dat hetzelfde een mailadres aan meerdere gebruiker gekoppeld kan zijn, minder gebruikelijk lijkt mij.

Ik deel jou beeld van een ORM implementatie, je hebt gelijk dat mijn uitleg het Code-first idee niet ondersteunde.

@ward

Deze concludering begrijp ik niet helemaal
Gewijzigd op 23/02/2014 18:44:17 door Dennis Stolmeijer
 
Ward van der Put
Moderator

Ward van der Put

23/02/2014 19:11:58
Quote Anchor link
@Dennis Wat mij betreft, kun je gerust klassen hebben die "naast" tabellen staan. Dat hoeft niet per se een één-op-één-relatie te zijn tussen tabel en klasse.

Neem een concreet voorbeeld. Met een class NederlandsePostcode extends Postcode en een class BelgischePostcode extends Postcode heb ik drie klassen die drie typen postcodes kunnen afhandelen. Heb ik daarvoor dan drie databasetabellen nodig? Nee, niet per se. Moet ik postcodes dan opslaan in een aparte tabel? Nee, ook dat niet.
 
Wouter J

Wouter J

23/02/2014 19:27:27
Quote Anchor link
Ward, nee postcode is dan je klasse die in je tabel komt.
 
Ward van der Put
Moderator

Ward van der Put

23/02/2014 19:32:59
Quote Anchor link
Wouter J op 23/02/2014 19:27:27:
Ward, nee postcode is dan je klasse die in je tabel komt.

In welke tabel? ;-)

En hoe verhoudt die postcode zich tot objecten zoals straatnamen, huisnummers, plaatsnamen en landen?

We zijn, opnieuw, automatiseringsproblemen aan het ombuigen naar één model terwijl er meerdere geschikte modellen voor uiteenlopende problemen zijn.
 
Wouter J

Wouter J

23/02/2014 19:41:50
Quote Anchor link
Persoonlijk zou ik 2 tabellen hebben: User en Address. Die verschillende postcode klassen worden dan Value Objects.
 
Ozzie PHP

Ozzie PHP

23/02/2014 19:57:01
Quote Anchor link
Jongens, de discussie dwaalt een beetje af. Ik ga mijn vraag nog een keer stellen en ben dan benieuwd naar jullie antwoord. We vergeten even het hele database gebeuren.

Stel we hebben een auto en een fiets. Beiden zijn voertuigen, dus het lijkt me dan zinvol om een abstracte class Voertuig te maken. Mee eens?

Nu is mijn vraag wat er in die abstracte class thuis hoort.

We kunnen stellen dat ieder voertuig kan sturen, remmen en gasgeven. Dus in de voertuig class kunnen we de methods stuurLinks, stuurRechts, rem en gas zetten. Maar... hoort daar bijv. ook een method getNummerbord in? Veel voertuigen hebben een nummerbord, maar een fiets bijvoorbeeld niet. Plaatsen we de getNummerbord method in de voertuig class en accepteren we dat het mogelijk is dat iemand van een fietsobject het nummerbord opvraagt? Of plaatsen we getNummerbord alleen in de auto class?
 

Pagina: 1 2 volgende »



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.