[oop] typehinten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Traineeship Full Stack .NET Developer

Dit ga je doen Start op 7 augustus 2023 bij de Experis Academy en ontwikkel jezelf tot een gewilde Full Stack .NET Developer. Maar hoe ziet het traineeship eruit en wat kun je verwachten? Periode 1 De eerste 3 maanden volg je fulltime, vanuit huis, een op maat gemaakte training in teamverband. Je leert belangrijke theorie en krijgt kennis van de benodigde vaardigheden en competenties die nodig zijn om de IT-arbeidsmarkt te betreden. Zowel zelfstandig als in teamverband voer je praktijkopdrachten op het gebied van front- en backend development uit. Wat er per week op het programma staat kun je

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

Bekijk vacature »

.NET developer

Functie Als junior .NET ontwikkelaar ga jij aan de slag in één van de 5 IT teams van dit bedrijf. Jullie werken op basis van interne klantprojecten aan voornamelijk webapplicaties. Dit betekent dat jij continu uitgedaagd wordt en veelal met verschillende soorten projecten bezig bent. Het gave is dan ook dat jullie als team samen bekijken welke technieken het beste passen bij het project waar jullie verantwoordelijk voor zijn. Zo kan het zijn dat jij als .NET developer gaat werken aan een project, maar dat jullie als team liever gebruik maken van Haskell of F# om de klus te klaren.

Bekijk vacature »

Network Engineer (f/m/d) in Heidelberg

Network Engineer (f/m/d) The IT Services team operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. As part of IT Services, the Network team is responsible for managing and developing the network infrastructure in our data centres, on campus, and to our external network providers. As a leading scientific institution with highly data-intensive research, extensive data flows at and between the laboratory’s six sites and to the Internet, EMBL is connected to national and international scientific networks using state-of-the-art technologies from vendors including Cisco, Extreme Networks and

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

Bekijk vacature »

Back end developer PHP

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 »

Integratie expert - Java Developer

Dit ga je doen Nieuw koppelingen ontwerpen, ontwikkelen en implementeren; Je schakelt met de klanten om hen zo goed mogelijk van dienst te zijn. Strategisch kijken naar nieuwe mogelijkheden op bestaande of nieuwe koppelingen zo effectief mogelijk te realiseren; Je bestaande toolset afwegen tegen nieuwe mogelijkheden om integratiedoelen steeds effectiever en/of effcienter te bewerkstelligen; Bestaande software koppelingen beheren, dit zijn koppelingen met zowel interne als externe systemen; Overleg met zowel directe collega's als met stakeholders om nieuwe integratieplannen concreet te maken; Je kunt de junioren meenemen op sleeptouw. Hier ga je werken Onze klant is op zoek naar een ervaren

Bekijk vacature »

Java Developer

Dit ga je doen Als Java Developer ben je verantwoordelijk voor: Het ontwikkelen van nieuwe en bestaande webservices; Het uitbreiden van functionaliteiten binnen de producten- en dienstenportefeuille; Het werken aan gegevensuitwisseling met bijvoorbeeld SOAP; Testen van frameworks met gebruik van UNIT en Selenium. Hier ga je werken De organisatie waar je komt te werken is een semi-overheidsinstelling, gesitueerd in Utrecht en zorgt voor een goede samenwerking tussen verschillende overheidsinstanties. Het is een familiaire club die gaat voor kwaliteit en langdurige relaties. Zo zorgen zij ervoor dat er op grote schaal vertrouwelijke informatie tussen verschillende overheidsinstellingen wordt uitgewisseld. Hun werk zorgt

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

C# .NET Developer

Functieomschrijving Voor dit leuke softwarre bedrijf in de omgeving Vught zijn we per direct op zoek naar een C#/.NET Developer. Is development jouw passie en doe je dit graag met C#/.NET? Lees dan snel verder! Jou werkzaamheden zullen zijn: Zorgen voor de optimalisatie van de huidige software en het automatiseren van bedrijfsprocessen. Naar aanleiding van de wensen van de klant ga je, met je collega's op zoel naar passende oplossingen en je werkt dit uit tot een mooi eindproduct. Je gaat webshops, websites en webapplicaties ontwikkelen door middel van ASP.NET, C# en MVC Framework. Bedrijfsprofiel Deze opdrachtgever houdt zich bezig

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »
Ozzie PHP

Ozzie PHP

10/03/2014 15:44:53
Quote Anchor link
Hey guys,

Ik begin het gebruik van interfaces steeds beter te begrijpen.

Nu heb ik hieronder een codevoorbeeldje. Ik wil een object met configuratiegegevens doorgeven aan een ander object Foo. Nu ben ik benieuwd hoe ik het typehinten moet aanpakken. Eerst maar eens het voorbeeldje:

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
<?php

class DataCollection implements DataCollectionInterface {

}


class Config extends DataCollection {

}


class Foo {

  public function setConfig(DataCollectionInterface $config) {

  }

}


$config = new Config($settings);
$foo    = new Foo();
$foo->setConfig($config);

?>

In de setConfig method van de Foo class typehint ik nu naar een DataCollectionInterface.

Nu is mijn vraag of dit juist is. Ik typehint naar een DataCollectionInterface en daardoor weet ik dat het object wat ik binnenkrijg in de setConfig method over bepaalde functies beschikt. Prima, helemaal goed! Echter, wat ik niet weet is het object wat ik binnenkrijg ook daadwerkelijk een CONFIG object is. Het zou ook een ander object kunnen zijn, bijvoorbeeld een object waar paths of routes inzitten.

Nu is mijn vraag hoe specifiek ik moet gaan typehinten. Behalve het bovengenoemde codevoorbeeld heb ik nog 2 andere opties om te typehinten. Ik kan typehinten naar de class zelf:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

class Foo {

  public function setConfig(Config $config) {

  }

}


?>

Of ik zou eventueel een extra ConfigInterface kunnen maken (die dan in feite overeenkomt met de DataCollectionInterface).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

class Foo {

  public function setConfig(ConfigInterface $config) {

  }

}


?>

Wat is nu wijsheid? Hoe specifiek moet je te werk gaan?
 
PHP hulp

PHP hulp

23/11/2024 22:09:54
 
Wouter J

Wouter J

10/03/2014 15:48:02
Quote Anchor link
Altijd programmeren naar interfaces, zodat je de weg naar verandering niet blokkeert.

En wat maakt het jouw uit of het een Config object is of een object dat paden of routes vasthoudt? Het enige wat de klasse moet weten is dat het object de methods heeft die de klasse gebruikt, de rest is kopzorgen voor een andere klasse.
 
Ozzie PHP

Ozzie PHP

10/03/2014 15:58:24
Quote Anchor link
>> Altijd programmeren naar interfaces, zodat je de weg naar verandering niet blokkeert.

Oké.

>> En wat maakt het jouw uit of het een Config object is of een object dat paden of routes vasthoudt?

Dat is dus mijn vraag. Stel een Router heeft een object nodig dat Routes vasthoudt. In de Router typehint je nu naar een DataCollectionInterface. Echter, nu kan ik in plaats van een object dat routes vasthoudt, ook een heel ander object doorgeven aan de Router, waar de Router helemaal niks mee kan. Stel dat ik een object meegeef waar paden inzitten in plaats van routes dan gaat het fout. Ja, natuurlijk... heel stom, je moet ook geen paden meegeven als er om routes wordt gevraagd. Maar het kan in dit geval dus wel.

Stel dat ik niet zou typehinten op interface, maar op class, dan zou het wel goed gaan. Echter, daar zijn zoals je zelf al zei nadelen aan verbonden. Ik zou ook een aparte RouteCollectionInterface kunnen maken, dan weet ik dat het a) om een DataCollection gaat en b) dat in het object de juiste inhoud zit (namelijk routes). Maar ik weet niet of dat dat bedoeling is. Geef je met een interface enkel aan welke methodes een object moet bezitten, of is het ook bedoeld om een bepaalde inhoud (paden, routes, config) af te dwingen?
 
Reshad F

Reshad F

10/03/2014 20:47:25
Quote Anchor link
Het zou niet mis moeten gaan je zou het verkeerde object moeten hebben doorgegeven maar het zou ook daarmee moeten lukken als ze dezelfde interface implementeren..
 
Ozzie PHP

Ozzie PHP

10/03/2014 20:51:41
Quote Anchor link
Reshad, dat is maar hoe je het bekijkt.

Stel ik heb een class die paden nodig heeft, maar ik geef een verkeerd object mee. Namelijk een object met routes in plaats van paden. In plaats van dat er nu een pad wordt gebruikt, wordt er een route gebruikt en de complete applicatie loopt de soep in.

Anders gezegd, 2 classes kunnen dezelfde methodes ondersteunen (ze kunnen allebei via een get() method iets teruggeven) maar wat ze terug geven kan verschillen van inhoud en tot ongewenste problemen leiden.
 
Reshad F

Reshad F

10/03/2014 20:57:03
Quote Anchor link
Maar als je een klasse hebt die een bepaalde interface implementeert.. laten we zeggen

VehicleInterface dan verwacht ik dat alle klasses die dit implementeren een voertuig zijn.

Stel ik heb een StorageInterface

dan ga ik ervanuit dat elke klasse die dit overerft dus iets gaat opslaan. Waarom jij dan een interface maakt voor alleen de get() methode is mij een raadsel.. maar misschien begrijp ik je niet goed en moet je even wat code laten zien. :p
 
Ozzie PHP

Ozzie PHP

10/03/2014 20:59:57
Quote Anchor link
Bekijk even dit topic... http://www.phphulp.nl/php/forum/topic/oop-lege-class/94149/last/ dan wordt het waarschijnlijk duidelijker :)
 



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.