[oop] typehinten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

3D BIM Add-on Developer

Als 3D BIM add- on ontwikkelaar bij KUBUS ontwikkel je add-ons (BCF Managers genaamd) voor de toonaangevende building information modeling (BIM) programma's Revit, Navisworks, Archicad, AutoCAD en Tekla Structures. BCF Managers maken gegevensoverdracht mogelijk tussen BIM-software en BIMcollab. Je werkt zowel aan de front- als aan de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en

Bekijk vacature »

Frontend Developer - Leeuwarden

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

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

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 »

Front-end Developer Magento 2/Wordpress

Voor het aantrekkelijk houden en steeds vernieuwen van de huidige websites en webshops en het meedenken in de marketing zijn wij per direct op zoek naar een ervaren Front-end developer met gedegen kennis van Magento 2 (webshops) en Wordpress (websites). Wat bieden wij jou Mooi salaris! Meteen op contract bij de opdrachtgever! Gezellig, Kempisch bedrijf! 35 uur per week! Auto van de zaak! Wie ben jij Van een front-end developer verwachten wij: Een afgeronde Bachelor ICT opleiding met profiel ICT & Media Design. Dat je in het bezit bent van een Magento 2 professional front-end developer certificaat; Je hebt ruime

Bekijk vacature »

SAP ABAP Developer

Dit ga je doen Software ontwikkeling met behulp van o.a. ABAP, Sapscript en Smartforms Maatwerk development op SAP ECC 6.0, in de toekomst S/4 HANA Samenwerken met Business Analisten die functioneel en technisch ontwerpen aanleveren Testen van opgeleverde software Bugfixing Ondersteuning van eindgebruikers Hier ga je werken Onze klant, een internationaal gevestigd productiebedrijf dat mensen blij maakt, is ter versterking op zoek naar een ABAP Developer voor hun SAP team. Het team van 4 mensen verzorgt de ontwikkeling van maatwerk voor de SAP omgeving waar wordt gewerkt met modules SD, FI/CO, PM en MM. Momenteel draait het bedrijf op SAP

Bekijk vacature »

C#.NET/Unity Developer

Functieomschrijving Voor een gewaardeerde werkgever in de omgeving van Breda zijn wij op zoek naar een software ontwikkelaar. Dit bedrijf houdt zich bezig met de ontwikkeling van WMS Software (C#/Unity & SQL). Past dit bij jou? Lees snel verder! Jouw werkzaamheden zullen er als volgt uitzien: Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Samen met 6 applicatieontwikkelaars hebben jullie de verantwoordelijkheid voor de uitbreiding en ontwikkeling van de webapplicaties; Het uitvoeren van updates/aanpassingen aan de huidig draaiende applicaties; Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software. Bedrijfsprofiel Wie

Bekijk vacature »

PHP developer

Functie omschrijving Voor een klein bedrijf in de buurt van Nieuwegein zijn wij per direct op zoek naar een talentvolle PHP developer. Er wordt veel ruimte geboden voor eigen initiateven, waardoor je een mooie stempel kan drukken op jouw eigen werkzaamheden (zowel operationeel als strategisch). Het bedrijf heeft middels externe programmeurs een multimedia platform ontwikkeld, maar willen geleidelijk de ontwikkeling naar binnen halen. Om die reden zoeken zij een communicatieve interne PHP developer die graag meebouwt aan het succesvolle product. Je gaat de volgende werkzaamheden verrichten: Platform beheren en programmeren (PHP, MySQL, JQuery, Javascript, XML & HTML); Communicatie en aansturing

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Junior .NET developer

Functie Jij hebt natuurlijk net jouw Bachelor op zak en gaat nu voor het eerst aan de slag bij een werkgever als junior .NET ontwikkelaar. Waarschijnlijk lijkt het jou spannend om ineens aan de slag te gaan bij klanten in de consultancy. Maak je niet druk, jij komt hier terecht in een warm bad en wordt totaal niet in het diepe gegooid. Zodra jij hier begint wordt jij gekoppeld aan een persoonlijke manager met een persoonlijk ontwikkelplan. Jij krijgt een scala aan trainingen, denk aan trainingen ten behoeve van het opdoen van zelf kennis en gedragscompetenties, maar ook trainingen voor

Bekijk vacature »

Front-end Developer - React - Data Driven

Bedrijfsomschrijving Onze klant is een snelgroeiende organisatie die een data-driven inspectieapp op de markt hebben gebracht die nu al een aantal jaar door verschillende organisaties wereldwijd gebruikt wordt. Er zijn zo'n 6 mensen werkzaam bij dit bedrijf en ze zijn nu vooral op zoek naar een sterke front-end developer die wil gaan werken aan nieuwbouw applicaties en de uitbouw van de huidige applicaties. De reden dat ze zoeken is omdat er veel werk op komst is en ze hier de juiste capaciteit voor willen hebben. Er heerst hier een hele prettige sfeer waarin respect en eerlijke communicatie belangrijk is. Ook

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

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

27/11/2024 22:46:58
 
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.