OOP construct

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

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 »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

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 »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving Startende Software Ontwikkelaar gezocht met kennis van C# .NET! Ben jij net klaar met je opleiding en ben je op zoek naar je eerste echte werkervaring? Of heb jij al enige werkervaring maar ben toe aan iets nieuws? Dan is dit de perfecte kans voor jou! Wij zoeken namelijk een Junior Software Ontwikkelaar die klaar is voor een nieuwe uitdaging bij een leuke werkgeven in de regio Zeist. In deze functie werk jij vaak aan verschillende projecten en ga je bij klanten op bezoek. Ben jij op zoek naar een functie met uitdaging, diversiteit en verantwoordelijkheid? Dan is

Bekijk vacature »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

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 »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

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 »
Ozzie PHP

Ozzie PHP

08/03/2013 23:10:10
Quote Anchor link
Ola,

Ik heb een OOP vraagje... ik heb een class waarin je parameters kunt opslaan. Nu kun je via de constructor al een array met parameters meegeven en je kunt via een boolean de parameters freezen. Grofweg ziet de constructor er zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public function __construct($parameters = array(), $freeze = false) {
  if (!empty $parameters) $this->setParameters($parameters);
  if ($freeze === true) $this->freeze();
}

?>

Nu vraag ik me eigenlijk af... ik heb eens gelezen dat de constructor bedoeld is om NOODZAKELIJKE handelingen te verrichten. In de bovengenoemde constructor worden eigenlijk geen NOODZAKELIJK handelingen verricht. Het is vooral heel erg HANDIG.

Waarom is het handig? In plaats van dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$some_collection
= new ParameterBag();
$some_collection->setParameters($parameters);
$some_collection->freeze();
?>


... kan ik nu dit doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$some_collection
= new ParameterBag($parameters, true);
?>

Maar nu vraag ik me af... is het eigenlijk wel correct OOP om de constructor voor dit soort "handigheidjes" te gebruiken?

Graag jullie reactie.
 
PHP hulp

PHP hulp

27/11/2024 19:21:41
 
Wouter J

Wouter J

08/03/2013 23:17:29
Quote Anchor link
Natuurlijk mag je ook wat slimme handige dingetjes doen. Waarom denk je anders dat mensen zo houden van het retourneren van $this om method chaining toe te passen? Volstrekt fout volgens OO 'regels', maar extreem handig voor het programmeren.

Wat ik alleen niet erin zou doen is het freezen van de bag, dat lijkt me niet iets wat in een constructor thuis hoort. In principe is de Bag dan nooit ontdooid geweest en dat klinkt voor mij niet goed.
 
Ozzie PHP

Ozzie PHP

08/03/2013 23:28:41
Quote Anchor link
Wouter, oké. Dus handigheid aanbrengen in de constructor is op zich geen probleem? Maar is dat wel volgens de regels van OOP eigenlijk? Hoe hoort het volgens officieel OOP?

Zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$some_collection
= new ParameterBag();
$some_collection->setParameters($parameters);
$some_collection->freeze();
?>

of zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$some_collection
= new ParameterBag($parameters, true);
?>


Jouw laatste opmerking begrijp ik niet helemaal. Ik heb de class property "freezed" op false staan, dus dat is de default instelling. Via de constructor kun je de parameterbag dan direct freezen nadat je de parameters hebt geset.
 
Wouter J

Wouter J

09/03/2013 00:07:30
Quote Anchor link
Er is geen officieel OOP (ik hOOP dat je dat ondertussen wel door hebt), dus niemand kan een antwoord daarop geven.

Ik kan alleen zeggen dat ik het zo zou doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$parameters
= new ParameterBag($parameters);
$parameters->freeze();
?>
 
Ozzie PHP

Ozzie PHP

09/03/2013 00:35:20
Quote Anchor link
Ah oké, thanks... ik dacht dat wellicht de constructor een soort "vaste" bedoeling had. "De constructor is bedoeld om..." zoiets zeg maar.

Maar dat is dus niet zo.

Oké, laatste vraag nog... waarom zou jij die "freeze" niet in de constructor doen? Ik zie het verschil niet helemaal. Waarom wel $parameters in de constructor, maar waarom $freeze niet? Het zijn allebei class properties. $parameters wordt geinitialiseerd (of hoe noem je dat ook alweer) op een lege array en $freeze op false. Dit bedoel ik dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
private $freeze = false;
private $parameters = array();
?>

Waarom zou je dan de een wel via de constructor kunnen beinvloeden en de ander niet? Of is dat meer een soort van "gevoel" wat je daarbij hebt? En zo ja, kun je dat dan omschrijven?
Gewijzigd op 09/03/2013 00:36:28 door Ozzie PHP
 
Wouter J

Wouter J

09/03/2013 00:40:46
Quote Anchor link
Ja, het is een gevoel.

Het freezen is gemaakt zodat je een bag kunt veranderen, toevoegen, verwijderen, ect. en dan zegt: 'Oké, nu is alles gedaan wat gedaan moest worden, nu is het READ ONLY.' Dan zeg je $bag->freeze(). Het voelt voor mij vreemd om in een constructor, ook wel initialize method, al meteen de bag op slot te zetten. Het is dan alsof je een nieuw Word documentje opent en die direct op READ ONLY set, daar heb je niks aan :). (nu klopt dat natuurlijk niet, omdat je ook al parameters hebt toegevoegd, maar het was een schets van mijn gevoel)
 
Ozzie PHP

Ozzie PHP

09/03/2013 03:47:23
Quote Anchor link
Aha, oké... dankjewel voor de toelichting. Dat is dan een verschil in interpretatie. Ik set de data en freeze vervolgens, maar ik kan de get functies natuurlijk nog gewoon gebruiken. Verschilletje van interpretatie, maar niet heel spannend dus in dit geval.

Offtopic:

Net James Bond (Skyfall) gekeken... vette film :-)
 



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.