[oop] setFoo en/of setFoos?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van IT Operations Manager! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van

Bekijk vacature »

Front-end developer Consultancy in teamverband wer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers. Momenteel zijn ze op zoek naar een ervaren Front-end of Fullstack developer die samen met de consultants aan de slag gaat om de business requirements te vertalen naar technische oplossingen. Los van het finetunen van extenties, help je bij het configureren van bijvoorbeeld een mobiel bankieren app. Hierin ben je van A tot Z betrokken en zie je bijvoorbeeld ook toe op de uitvoering van testen. Je expertise wordt optimaal benut en je krijgt verschillende kansen om deze uit te breiden door met verschillende innovatieve technologieën aan

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. 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 vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

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 »

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 »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

PHP developer - Digital Agency

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

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 »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

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 »

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

25/04/2024 13:07:35
 
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.