[oop] typehinten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

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 »

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 »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Medior Java developer

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 »

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 »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

Software Developer C# / ASP .Net

Functie omschrijving Ben jij een software ontwikkelaar die bekend is met termen ASP .NET, C# en SQL? Lees dan snel verder! Voor een bedrijf binnen de agrarische sector zijn wij namelijk op zoek naar een zelfstandige, enthousiaste en proactieve Software Developer die open staat voor een afwisselende functie met veel uitdaging. Binnen deze organisatie ben jij als Software Developer samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Hierbij draag jij bij aan de vertaling van klantwensen naar effectieve softwareoplossingen. Daarnaast ben je verantwoordelijk voor: Schatten

Bekijk vacature »

PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing vanilla PHP code. Working with

Bekijk vacature »

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Full Stack PHP Developer

Functieomschrijving Ervaren PHP Developer gezocht! Wij zijn op zoek naar een ervaren PHP Developer die het IT team van een organisatie in de regio Ermelo gaat versterken. Voor deze functie zijn we op zoek naar een enthousiaste en breed georiënteerde IT-er die deze innovatieve organisatie nog een stap verder gaat brengen. Wij zijn op zoek naar iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je bent verantwoordelijk voor het samenwerken met een externe partij het is hierbij jouw taak om deze partij uit te dagen op het geleverde werk. Het schrijven van concepten aan de AI

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

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

28/12/2024 21:40:21
 
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.