OOP vraagjes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

PHP ontwikkelaar

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Senior Front-end Developer

Dit ga je doen Met behulp van diverse programmeertalen ontwikkelen van Front-end software; Het begeleiden van het front-end team; Het oplossen van incidenten; Het bijhouden van een backlog; Je hebt een actieve bijdrage in de wekelijkse overleggen met de omliggende teams; Je houdt trends bij en adviseert het management hierover waar nodig; Helder communiceren met de stakeholders om hen zo mee te nemen in projecten en laten inzien wat de duur en toegevoegde waarde van bepaalde projecten is. Hier ga je werken Deze organisatie heeft circa 40 miljoen bezoekers per maand en heeft innovatie hoog in het vaandel staan. Het

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

Junior Back end developer PHP, Symfony

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

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 »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Front-end developer

Functie Als front-end developer kom je te werken in een team van 30 gedetacheerde, en het team is momenteel flink aan het groeien. Je hebt ervaring met het bouwen van complexe bedrijfsapplicaties waar je gebruik maakt van de nieuwste technologieën waarmee jij elke klant omver blaast. Het gaat om uitdagende projecten met een gemiddelde doorlooptijd van 2 jaar. Hierdoor heb jij echt de volledige focus op een project en kun je flinke impact maken. Het team zit boordevol met ervaren developers die samen dezelfde ambitie delen. Aan de hand van opleidingen en trainingen kun je certificaten halen in jouw expertise

Bekijk vacature »

Pagina: « vorige 1 2

Ozzie PHP

Ozzie PHP

10/10/2013 01:21:41
Quote Anchor link
Ah, haha... zo. Nu snap ik wat je bedoelt. Tis al laat :)

Nog een keer dan.

Een service is een class die OF een andere class nodig heeft OF een class die door een andere class gebruikt kan worden en waarvan de constructor argumenten of altijd hetzelfde zijn of niet aanwezig zijn.

Klopt ie nu? :)
 
PHP hulp

PHP hulp

06/01/2025 06:04:12
 
Wouter J

Wouter J

10/10/2013 01:26:20
Quote Anchor link
Ja, wellicht met enkele uitzonderingen, maar die kan ik nu nog niet bedenken. Het komt ook een beetje aan op intuïtie.

En je hebt natuurlijk ook andere situaties. In symfony kun je services bijv. taggen zodat je die services allemaal kunt opvragen. Hierdoor kun je heel snel loggers, commands, blocks, admin extensies, routers, etc. registreren.
 
Ozzie PHP

Ozzie PHP

10/10/2013 01:30:22
Quote Anchor link
Wouter J op 10/10/2013 01:26:20:
Ja, wellicht met enkele uitzonderingen, maar die kan ik nu nog niet bedenken. Het komt ook een beetje aan op intuïtie.

Oh oké. Het kwartje moet bij mij ook nog even goed vallen. Ik hoop dat dat lukt. Maar uitgaande van wat jij nu zegt... Bijvoorbeeld een User, die heeft als argument een wisselend id. Een User is dus geen service. Correct? En hetzelfde geldt dan bijvoorbeeld voor een Product of een NewsArticle. Toch?

Wouter J op 10/10/2013 01:26:20:
En je hebt natuurlijk ook andere situaties. In symfony kun je services bijv. taggen zodat je die services allemaal kunt opvragen. Hierdoor kun je heel snel loggers, commands, blocks, admin extensies, routers, etc. registreren.

Hoe bedoel je dat je die services kunt opvragen? Als een soort tooltje ofzo om te zien welke services je tot je beschikking hebt?
 
Ward van der Put
Moderator

Ward van der Put

10/10/2013 06:36:12
Quote Anchor link
Wouter J op 10/10/2013 01:09:44:
Klopt perfect. PDF creator is een service omdat hij aan voorwaarde 2 voldoet: classes kunnen hem nodig hebben en hij heeft veen veranderende argumenten in de constructor.

Er is een categorie services waarvoor dit allemaal geldt: de databaseservices. Je weet niet zeker of en wanneer een klasse databaseservices nodig heeft. En je hebt geen argumenten in de constructor nodig. Toch zou ik dat implementeren met $dbh = new Database(); in plaats van een servicecontainer.

Sterker nog, bij dataservices heb je zelf een extra reden om een servicecontainer te gebruiken: connection pooling. Maar dan nog is het voordeel daarvan in de praktijk te gering om een service container te gebruiken.
 
Wouter J

Wouter J

10/10/2013 08:00:30
Quote Anchor link
>> En hetzelfde geldt dan bijvoorbeeld voor een Product of een NewsArticle. Toch?

Exact!
 
Ozzie PHP

Ozzie PHP

10/10/2013 08:25:05
Quote Anchor link
Ward van der Put op 10/10/2013 06:36:12:
Er is een categorie services waarvoor dit allemaal geldt: de databaseservices. Je weet niet zeker of en wanneer een klasse databaseservices nodig heeft. En je hebt geen argumenten in de constructor nodig. Toch zou ik dat implementeren met $dbh = new Database(); in plaats van een servicecontainer.

Waarom zou je van een database geen service maken Ward? Een databaseservice heeft een connectie nodig. Dan is het toch juist handig dat wanneer jij de database nodig hebt, je alleen maar dit hoeft te doen:

$db = $this->services->get('database');

Verder hoef je dan helemaal niks in te stellen in je code. Verander je een keer je wachtwoord, dan hoef je dat alleen in je service-configuratiebestand aan te passen en overal in je code werkt het weer. (Wouter, mee eens?)

Wouter J op 10/10/2013 08:00:30:
>> En hetzelfde geldt dan bijvoorbeeld voor een Product of een NewsArticle. Toch?

Exact!

Mooi, dan begin ik het eindelijk te begrijpen :)

Het enige wat me dan wel opvalt is dat je een niet-service-class (zoals een Product of een NewsArticle) niet makkelijk kunt vervangen door een andere class. Dan zul je dus overal de class-naam moeten aanpassen, of de code in de class zelf. Of is er nog een andere manier?

Eerder zei jij trouwens dit:

Wouter J op 09/10/2013 17:00:59:
Een ander mooi voordeel van een service container is dat alle objecten standaard niet opnieuw worden geinitialiseerd. Dat gebeurd 1 keer en daarna niet meer, behalve als je expliciet zegt dat hij elke keer een nieuwe instance moet terug geven. Maar in dat geval is de class 'stateful', en dat is iets wat je moet zien te vermijden.

Kun je uitleggen wat je bedoelt met dat een class stateful is, en waarom je dit moet zien te vermijden? (zijn er ook gevallen waarin een service juist wel stateful moet zijn?)
Gewijzigd op 10/10/2013 08:46:57 door Ozzie PHP
 
Ward van der Put
Moderator

Ward van der Put

10/10/2013 08:58:31
Quote Anchor link
Ozzie PHP op 10/10/2013 08:25:05:
Waarom zou je van een database geen service maken Ward? Een databaseservice heeft een connectie nodig. Dan is het toch juist handig dat wanneer jij de database nodig hebt, je alleen maar dit hoeft te doen:

$db = $this->services->get('database');

Verder hoef je dan helemaal niks in te stellen in je code. Verander je een keer je wachtwoord, dan hoef je dat alleen in je service-configuratiebestand aan te passen en overal in je code werkt het weer. (Wouter, mee eens?)

Het is ook een service, dat staat vast. Maar dat wil nog niet zeggen dat je dus een servicecontainer nodig. Laten we de termen service en servicecontainer niet op één hoop vegen.

Zoals ook blijkt uit je eerdere vragen, heb je twee problemen: (a) wat zijn mijn services en (b) hoe stop ik services in de servicecontainer en haal ik ze er uit?

Ik wil een new Foo() kunnen gebruiken als een black box: ik hoef niet te weten dat Foo de service/klasse Bar nodig heeft. Wat ik al helemaal niet wil, is vóóraf voor een keuze staan: in situatie x heeft Foo de service Bar nodig, in situatie y niet. En wat ik tot slot absoluut niet wil, is dat de service Bar wordt geladen en geconfigureerd wanneer Foo die niet nodig heeft; "wel eens nodig zou kunnen hebben" is geen goed ontwerpbeginsel.

Een servicecontainer heeft in bepaalde situaties absoluut voordelen. Alleen zijn die betrekkelijk gering als je ze naast andere mogelijkheden legt: namespaces, autoloaders, dependency injection, wrappers, aliassen...
 
Ozzie PHP

Ozzie PHP

10/10/2013 09:09:58
Quote Anchor link
@Ward:

Quote:
Zoals ook blijkt uit je eerdere vragen, heb je twee problemen: (a) wat zijn mijn services en (b) hoe stop ik services in de servicecontainer en haal ik ze er uit?

Wat betreft punt a) heb (had) je volledig gelijk. Wat punt b) betreft niet, want ik weet hoe ik de services erin stop en eruit haal.

In jouw voorbeeld heb je het over een new Foo(); Dit betekent dat telkens wanneer jij Foo gebruikt er een nieuwe instantie van die class wordt aangemaakt. Bij een service is dit niet het geval. Je gebruikt door de applicatie heen telkens dezelfde instantie.

Quote:
En wat ik tot slot absoluut niet wil, is dat de service Bar wordt geladen en geconfigureerd wanneer Foo die niet nodig heeft; "wel eens nodig zou kunnen hebben" is geen goed ontwerpbeginsel.

Dit is met services ook juist niet aan de orde. Lees de definitie hieronder...

@Wouter:
Nog even terugkomend op mijn vorige reactie... Als we tegenwoordig programmeren gebruiken we eigenlijk altijd een framework. Procdurele code doen we niet meer aan. Dit betekent dat (correct me if i'm wrong!) eigenlijk alle classes binnen een andere class staan. Want je laadt de core class, en feitelijk gezien speelt alles zich daarbinnen af. Mee een? Zo ja, dan is iedere class dus in feite een class die je binnen een andere class kunt gebruiken, en dus kunnen we de definitie van een service inkorten tot:

"Een service is een class die geen constructor-argumenten heeft, of een class die constructor-argumenten heeft die altijd hetzelfde zijn."

Wat vind je daarvan?
 
Ward van der Put
Moderator

Ward van der Put

10/10/2013 10:00:22
Quote Anchor link
Ozzie PHP op 10/10/2013 09:09:58:
In jouw voorbeeld heb je het over een new Foo(); Dit betekent dat telkens wanneer jij Foo gebruikt er een nieuwe instantie van die class wordt aangemaakt. Bij een service is dit niet het geval. Je gebruikt door de applicatie heen telkens dezelfde instantie.

Dat klopt gedeeltelijk en ik noemde een belangrijk voorbeeld: connection pooling. Als een connection pool nodig hebt, zou ik absoluut een servicecontainer gebruiken. Alleen is en blijft dat een keuze en een ontwerpbeslissing, geen verplichting. Er kleven namelijk ook nadelen aan.

Meer technisch is het niet zo'n issue: bij het verlaten van een methode treedt automatisch de garbage collector in werking. Zou je voor 15 objecten in 15 klassen 15 keer een new Database() nodig hebben, dan zijn er nooit 15 instanties actief. Je aanname is hier deels onjuist: het zijn er in totaal 15, maar nooit 15 tegelijk.

Met andere woorden: stel jezelf ook de vraag of de servicecontainer die je zelf bouwt beter en sneller is dan wat PHP en je databaseserver allemaal al in huis hebben voor het beheer van processen en geheugengebruik.
 
Ozzie PHP

Ozzie PHP

18/10/2013 12:51:44
Quote Anchor link
Toch nog even een vraagje over services.

Eerder zei ik dit:

Quote:
Bijvoorbeeld een User, die heeft als argument een wisselend id. Een User is dus geen service.

Toch vraag ik me af of dit klopt. Ik kan me voorstellen dat ik een User in meerdere classes nodig heb (bijv. om de naam op te vragen e.d.). Daarom lijkt het me handig als het wel een service is. Ik zou er een service van kunnen maken door het ID niet mee te geven aan de constructor, maar in plaats daarvan een setID method te gebruiken. Maar is dit de juiste manier vraag ik me nu dus af, of is een User simpelweg geen service? (En indien het geen service is, hoe krijg ik de User dan in alle classes beschikbaar? Telkens als argument doorgeven?)
 
Wouter J

Wouter J

18/10/2013 12:53:59
Quote Anchor link
De User is geen service. Wel bijv. een SecurityContext class die o.a. de huidige User class vasthoudt
 
Ozzie PHP

Ozzie PHP

18/10/2013 12:58:49
Quote Anchor link
Dankjewel Wouter. Maar stel nu dat ik ergens de gegevens van de User nodig heb, bijvoorbeeld in de header (u bent ingelogd als...) en ergens op de pagina zelf (Welkom...), moet ik dan het user_id opslaan in de sessie en vervolgens 2x een new User object aanmaken? Is dat de bedoeling?
 
Wouter J

Wouter J

18/10/2013 13:41:53
Quote Anchor link
Nee, zoals ik zeg een SecurityContext met het huidige user object erin:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

$securityContext
= $container->get('security.context'); // dit wordt natuurlijk geinjecteert

echo 'U bent ingelogt als '.$securityContext->getUser()->getName();
?>
 
Ozzie PHP

Ozzie PHP

18/10/2013 14:06:42
Quote Anchor link
Ah zo!

Waarmee injecteer je die security context? Want het User object kun je niet injecteren omdat het geen service is toch?
 
Wouter J

Wouter J

18/10/2013 14:26:53
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php

/**
 * @Service
 */

class SecurityContext
{
    private $user;

    public function setUser(UserInterface $this->user);

    public function getUser()
    {

        return $this->user;
    }
}


/**
 * @Service
 */

class Authentication
{
    private $context;

    /**
     * @Inject(service="security.context")
     */

    public function __construct(SecurityContext $this->context);

    public function authenticate(Request $request)
    {

        $user = // ... get the user object

        $this->context->setUser($user);
    }
}

?>
 
Ozzie PHP

Ozzie PHP

18/10/2013 14:33:37
Quote Anchor link
Thanks voor het voorbeeld Wouter!
 

Pagina: « vorige 1 2



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.