[oop] abstract vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Team Lead/ Lead developer gezocht (Hands-on, PHP,

Functie Als Team Lead ben je de leider van één van de ontwikkelteams binnen de organisatie. Je leidt als lead developer een goed draaiend team dat werkt aan complexe en duurzame applicaties en API’s. Vanuit je kennis en ervaring ben je in staat het grote plaatje te blijven overzien, en kritisch mee te denken over bijvoorbeeld de architectuur, maar ook de algehele aanpak binnen het project. Je laat je team niet alleen technisch goed functioneren maar ben ook betrokken bij het menselijke aspect. Zo weet jij je collega’s te motiveren en begeleiden in hun dagelijkse werk. Buiten het team ben

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Roosendaal, ontwikkel je als PHP Developer niet alleen webapplicaties, maar ben je verder ook gefocust op het continu inspelen op nieuwe trends en ontwikkelingen m.b.t software development. Naast het bouwen van webapplicaties, ontwikkelen zij ook webshops en websites voor gave opdrachtgevers! Wat ga je doen? Het schrijven van schone en efficiënte codes volgens het Symfony framework; Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het Symfony framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

Software Ontwikkelaar

Functieomschrijving In deze uitdagende functie als Software Developer ga je de volgende taken uitvoeren: Maatwerk back-end software programmeren; API koppelingen bouwen; Software optimaliseren voor klanten; Bouwen maatwerk applicaties; Werken met Microsoft stack zoals C#, .NET (Core) en Entity framework; Bedrijfsprofiel Je gaat werken bij een klein softwareontwikkelingsbureau, die maatwerk software bouwt voor klanten door heel Nederland. Dit doen zij al meer dan 20 jaar. Het is van oorsprong een familiebedrijf, opgezet door de eigenaar, die er nog steeds werkt. Het team bestaat vooral uit back-end developers en één systeembeheerder. Je krijgt veel kans om jezelf te ontwikkelen en krijgt tevens

Bekijk vacature »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

No-Code Betty Blocks ontwikkelaar

Bedrijfsomschrijving Wil jij de bedrijfsprocessen van klanten revolutionair digitaliseren en optimaliseren zonder beperkt te worden door programmeertalen? Kom werken bij een snelgroeiende en professionele organisatie met een gezonde dosis humor en veel vrijheid om jezelf te ontwikkelen. Als No-Code Betty Blocks ontwikkelaar werk je vanuit ons kantoor in het hart van Nederland, je thuiswerkplek of op locatie bij de klant. We faciliteren de juiste trainingen en ondersteuning zodat je een echte Betty Blocks expert wordt. Naast het werk zijn er bij ons bijzondere events, zoals een jaarlijkse zeildag, een zomerse barbecue en een knus kerstdiner om de grillige maanden door

Bekijk vacature »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

Bekijk vacature »

Full stack developer Node.js, React Remote

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

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 »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Gorinchem zijn wij op zoek naar versterking. Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back end werken! Bedrijfsprofiel Onze

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

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

28/04/2024 21:44:17
 
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.