[oop] setFoo en/of setFoos?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lead Front-end developer

Functie Hun huidige applicatie worden ontwikkeld in o.a. React, Redux, TypeScript. Ze werken graag met de nieuwste technieken en tooling en zoeken ook developers die hier proactief op zoek naar gaan. Als senior/lead developer ben je een kartrekker in het team. Naast het meedenken over bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Zo kun je bijvoorbeeld 1 dag in de week met 2 collega’s bezig zijn om samen met hen te kijken naar hun ontwikkeling, doelstellingen en uiteraard de gewenste begeleiding hierin. Hiernaast sta je als

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front 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

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

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 »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

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 »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Senior PHP developer met ambities tot Software Arc

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

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 »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

Senior Java Ontwikkelaar

Dit ga je doen Werken aan uiteenlopende interne projecten voor grote (internationale) organisaties; Ontwikkelen van diverse (web)applicaties en platformen met technieken als Java, Azure en ASP.NET; Complexe vraagstukken tackelen met jouw expertise en ervaring; Waar nodig help jij je collega's om samen tot de juiste oplossing te komen. Hier ga je werken Als Java Developer kom je te werken bij een internationale organisatie in regio Amsterdam die zich richt op procesoptimalisatie door middel van zeer complexe IT oplossingen. Dit doen zij op het allerhoogste niveau met vestigingen over heel de wereld en met een groot aantal aansprekende, maatschappelijk betrokken klanten.

Bekijk vacature »

PHP Developer Symfony

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail. Hier ga je werken Als PHP Developer kom je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development teams welke ieder verantwoordelijk zijn voor hun 'eigen' klanten. Jouw team bestaat uit 6 backend

Bekijk vacature »

Pagina: 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

05/07/2013 16:44:12
Quote Anchor link
Hallo,

Ik vraag me iets af. Ik heb functies waarbij je 1 "foo" wilt instellen en functies waarbij je meerdere "foos" wilt instellen. Bijv.

setPath($id, $path) // om 1 path in te stellen
setPaths($paths) // om meerdere paths in te stellen ($paths is een array)

Nu vraag ik me af of dat een goede gewoonte is. Ik gebruik 2 functies met bijna dezelfde functionaliteit, alleen in de ene situatie set je dus 1 foo, en in de andere situatie meerdere foos. Ik doe het op deze manier omdat ik denk dat dat efficiënt is. Je roept immers meteen de juiste functie aan.

Ik zou er ook voor kunnen kiezen om alles in 1 method te stoppen en dan op basis van het meegegeven argument te bepalen of er 1 foo moet worden geset of meerdere foos.

Dit komt bij mij best vaak voor. Zo heb ik nu in mijn mail class bijv. deze methods:

setBcc
setBccs
setCc
setCcs
setTo
setTos

Allemaal dubbele functies dus. Is dat wel of niet wenselijk? Het voordeel vind ik dat een functie altijd het juiste argument ontvangt en er dus geen extra controle hoeft plaats te vinden (betere performance). Het nadeel is dat je dus dubbele functies krijgt.

Graag jullie advies.
 
PHP hulp

PHP hulp

28/04/2024 19:00:55
 
Wouter J

Wouter J

05/07/2013 17:11:41
Quote Anchor link
Normaal gesproken heb ik dan altijd setBcc om een array op te geven die de waarde overschrijft en een addBcc om iemand toe te voegen.
 
Ozzie PHP

Ozzie PHP

05/07/2013 18:09:34
Quote Anchor link
Wouter, oke... maar jouw setBcc functie kan dus of 1 persoon toevoegen, of een heleboel?

Ander voorbeeld... ik wil een path toevoegen en heb een addPath($id, $path) method, maar wat nu als ik ineens 100 paden wil toevoegen. Lijkt me niet handig om dan 100x die addPath method aan te roepen. Dan kunnen we 2 dingen doen lijkt mij. Of we maken een aparte addPaths() method, of we passen addPath aan zodat die een array kan ontvangen. Het gaat mij vooral om het principe... moet je aparte methods maken om 1 "foo" toe te kunnen voegen en een aparte method om meerdere "foos" toe te voegen, of... doe je dit altijd via 1 method?
 
Reshad F

Reshad F

05/07/2013 18:23:27
Quote Anchor link
De vraag is .. wil je 1 array hebben of wil je 100x een path object hebben.. toch?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/07/2013 18:45:01
Quote Anchor link
Ik zou het zo doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class emailer {
    private bccs = array();
    public function bcc($address, $name = '') {
        $this->bccs[$address] = $name;
    }
}

?>
 
Ozzie PHP

Ozzie PHP

05/07/2013 19:35:13
Quote Anchor link
@Reshad: het gaat niet om objecten.

@Ger: dit geeft niet echt antwoord op mijn vraag toch?

De vraag is, stel we willen binnen e-mail class bcc adressen kunnen toevoegen. Dat kan zijn 1 adres of meerdere adressen. Maken we dan 2 functies: 1 om 1 adres toe te voegen en 1 om meerdere adressen toe te voegen. Of maken we 1 functie waarmee we 1 adres, maar ook meerdere adressen kunnen toevoegen.

Snappen jullie mijn vraag?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

05/07/2013 19:59:52
Quote Anchor link
Ik snap je vraag wel, maar je vraagt om meningen.
Imo maakt het niet zoveel uit of je eerst een array samenstelt en die doorgeeft aan een functie, of telkens die functie aanroept. Het eerste zal in performance schelen, maar dan hebben het over nano seconden. Lekker belangrijk!
 
Ozzie PHP

Ozzie PHP

05/07/2013 20:07:43
Quote Anchor link
Maar er is ook een soort van tussenweg. In mijn situatie doe ik dus vaak dit:

Stel ik wil 1 foo adden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$id
= 'test';
$foo = 'foo';
addFoo($id, $foo);
?>


En stel ik wil meer foos setten dan krijg je dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$foos
= [['id' =>  'test', 'foo' => 'foo'], ['id' =>  'bartest', 'foo' => 'foobar']];
addFoos($foos);
?>

In bovenstaand voorbeeld heb ik dus een class met een method addFoo en een method addFoos. Om dit dan door te trekken naar de praktijk, ik heb nu dus een e-mail class met deze methods:

setBcc
setBccs
setCc
setCcs
setTo
setTos

En de vraag is of dat gebruikelijk is, of is het gebruikelijk om alleen deze methods te hebben:

setBcc
setCc
setTo

... en er dan op een of andere manier voor te zorgen dat deze methods zowel 1 als meerdere foos kunnen setten. Wat is wijsheid?
 
Wouter J

Wouter J

05/07/2013 20:32:25
Quote Anchor link
setXXX() is naar mijn mening het overriden van de huidige waarde. Voor het toevoegen van een waarde aan een array gebruik je addXXX(). Ik doe het altijd zo:
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
<?php
class Mail
{
    private $bcc = array();

    public function setBcc(array $bcc)
    {

        $this->bcc = $bcc;
    }


    public function addBcc(EmailAddress $address)
    {

        $this->bcc[] = $address;

        return $this;
    }
}

?>
 
Ozzie PHP

Ozzie PHP

05/07/2013 20:44:27
Quote Anchor link
Wouter, ik begrijp je. Ik leg alleen misschien een beetje krom uit wat ik bedoel. Mijn excuses daarvoor. Het gaat mij niet om het verschil tussen add en set. Het gaat er mij om of ik 2 verschillende functies moet gebruiken om 1 "ding" te setten en om meerdere van die "dingen" te setten.

Voorbeeld:

Stel we hebben een product en voor dit product wil ik slechts 1 producteigenschap setten, dan zou dat zo kunnen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$name
  = 'kleur';
$value = 'rood';
$product->setProperty($name, $value);
?>

Maar stel ik heb een ander product met meerdere eigenschappen, dan krijg je zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$properties
= ['kleur' => 'groen', 'materiaal' => 'hout'];
$product->setProperties($properties);
?>

Nu is mijn vraag of dit klopt. Ik heb nu 2 functies die bijna hetzelfde doen. Namelijk properties setten. Kan dat? Of moet ik bijv. de setProperty functie laten vallen en op het moment dat ik maar 1 property wil setten dit doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$properties
= ['kleur' => 'groen'];
$product->setProperties($properties);
?>

Ik hoop dat deze uitleg het iets duidelijker maakt.
 
Wouter J

Wouter J

05/07/2013 20:51:01
Quote Anchor link
En dan nogmaals, ik gebruik dus altijd de eerste maar dan niet setXXX, want dat is dus verkeerd.
 
Ozzie PHP

Ozzie PHP

05/07/2013 21:12:07
Quote Anchor link
Wouter, volgens mij begrijp je het nog niet. Of ik begrijp het niet, kan natuurlijk ook. Je moet dat add/sett even loslaten.

Het kan zijn dat ik in het ene geval 1 ding wil setten en in het andere geval meerdere dingen. Het gaat echt om setten, dus niet om adden.

Stel ik wil in het ene geval in bcc adres setten en in het andere geval 2. Dan kan ik dus setBcc gebruiken voor 1 bcc adres en setBccs voor 2 adressen. Maar is dat gebruikelijk?
 
Jan Koehoorn

Jan Koehoorn

05/07/2013 21:46:37
Quote Anchor link
Ik snap het punt. Ik zou gewoon kijken of het meegegeven argument een array is met is_array.
 
Ozzie PHP

Ozzie PHP

05/07/2013 21:56:52
Quote Anchor link
Ah, ik ben blij dat iemand me dan toch begrijpt :-)

Alleen dan ben ik benieuwd hoe ik het volgende moet oplossen. Weer even het bcc voorbeeld. Bij het toevoegen van 1 bcc adres doe ik nu setBcc('piet', '[email protected]'). Je hebt hier dus 2 argumenten. Terwijl je bij setBccs($bccs) 1 argument (een array) hebt. Hoe los je dat verschil in argumenten dan op? Ik vind het een lastige situatie.
 
Erwin H

Erwin H

05/07/2013 22:33:36
Quote Anchor link
Ozzie PHP op 05/07/2013 21:12:07:
Wouter, volgens mij begrijp je het nog niet. Of ik begrijp het niet, kan natuurlijk ook. Je moet dat add/sett even loslaten.

Volgens mij begrijpt Wouter prima wat jij bedoelt, maar dender jij weer eens lekker door omdat je perse een antwoord wil hebben dat jouw mening bevestigd. Als je Wouter's commentaar leest is het perfect duidelijk dat hij dus niets ziet in de setBccs, maar zou hij voor een add functie gaan. En dat lijkt mij ook een prima oplossing inderdaad, waarbij jij alleen nog even na zouden moeten denken waarom er een verschil gaat worden gemaakt tussen add en set, zeker als je setBccs loslaat.
Gewijzigd op 05/07/2013 22:34:37 door Erwin H
 
Ozzie PHP

Ozzie PHP

05/07/2013 22:41:41
Quote Anchor link
Erwin, ik zoek helemaal niet een antwoord dat mijn mening bevestigt. Ik probeer de juiste manier te vinden hoe ik iets moet aanpassen.

Het verschil tussen iets setten en adden. Als je iets set worden bestaande waarden overschreven, als je iets add wordt er iets toegevoegd. Ik wil dus niet iets toevoegen maar iets setten. In het ene geval wil ik dus 1 waarde setten en in het andere geval wil ik meerdere waardes setten. Mijn vraag is of ik dat via 1 of 2 functies moet doen. Oh, en het hoeft dus niet per se op bcc te slaan, maar is van toepassing op alles waarvan je er 1 of meer wilt setten/getten/deleten enz.

Stel ik wil configuratiewaardes ophalen. In het ene geval heb ik 1 waarde nodig en in het andere geval heb ik meerdere waardes nodig. Maak je dan 2 functies:

getValue($id) en getValues($ids)

of maak je 1 functie waaraan je een string of array kunt meegeven?
Gewijzigd op 05/07/2013 22:42:10 door Ozzie PHP
 
Erwin H

Erwin H

05/07/2013 23:03:02
Quote Anchor link
Je snapt het dus nog steeds niet. Als je functies van Wouter neemt, dan heb je een set functie voor een x aantal tegelijk, en een add functie als er nog eens 1 bij moet. Voor de duidelijkheid (wat je zo te zien compleet mist) die set functie kan je dus ook voor 1 waarde gebruiken. Als je dus het antwoord van Wouter echt goed had gelezen dan had je allang gezien dat je vraag daarmee volledig beantwoord is.

Getters moet je daarin heel anders zien overigens. Andere discussie.
 
Ozzie PHP

Ozzie PHP

05/07/2013 23:05:14
Quote Anchor link
Erwin, laat maar zitten. Ik snap m'n eigen vraag prima, maar ik heb geen zin om op deze manier en toon een discussie te voeren.

Mag een slotje op.
 
- Raoul -

- Raoul -

06/07/2013 00:38:06
Quote Anchor link
Je weet toch dat we niet aan slotjes doen op phphulp ;-) Er komt heus geen slotje op alleen maar omdat je je vraag niet kunt formuleren!
 
Ozzie PHP

Ozzie PHP

06/07/2013 00:41:23
Quote Anchor link
Ik kan m'n vraag best formuleren, alleen niet iedereen schijnt het te (kunnen) begrijpen.
 
Wouter J

Wouter J

06/07/2013 00:46:43
Quote Anchor link
Begrijp de aanvallende toon in dit topic niet. Ozzie stelt een vraag, vervolgens kun je er op reageren. Hoor je dat? Je 'kun't reageren. Fijn he, zo'n forum! Niemand ziet wat je leest en niemand verplicht je om ook maar ergens op te reageren.

Het feit dat ozzie een vraag stelt met een voorbeeld die ons waarschijnlijk laat afwijken van de werkelijk is niks meer dan een simpel foutje. Door dat foutje heb ik waarschijnlijk wel verkeerde antwoorden gegeven, maar laat het niet zo zijn dat we hier een nutteloos gevechts topic van gaan maken alleen omdat ik iedereen in de verkeerde richting heb gestuurd.

Dat gezegd hebbende, ozzie bedoel je bijna het instellen van settings? Bijv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
new FormField('text', array(
    'label' => 'Naam',
    'error_bubbling' => false,
    // ...
));
?>


In dat geval zou ik een method setSettings maken die een array van opties krijgt.
Gewijzigd op 06/07/2013 00:47:32 door Wouter J
 

Pagina: 1 2 3 volgende »



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.