[oop] hoe consante terugkrijgen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

Bekijk vacature »

Medior PHP Developer

Functie omschrijving We are looking for a dutch native speaker Wil jij als developer werken bij een interne organisatie en de eigen software verder helpen ontwikkelen? Lees dan snel verder! In deze functie ga je werken als PHP Developer en de interne software en applicaties verder ontwikkelen. In het kort houdt dit in: Je gaat de interne applicaties en software verder optimaliseren. Verder bouw je verschillende API's en koppelingen tussen systemen. Je gaat het CRM-systeem door middel van PHP verder ontwikkelen. Ook ga je collega's ondersteunen bij vragen over de software en applicaties. Bedrijfsprofiel Dit bedrijf is actief in het

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

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 »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

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 »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

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 »

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »

C# Ontwikkelaar

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

WordPress & Azure Developer

Dit ga je doen Zowel front- als back-end development aan de online website omgeving; Het up-to-date houden van alle WordPress-sites; Koppelingen maken tussen applicaties; Meedenken en adviseren over verbeteringen; Development door middel van WordPress, Javascript, HTML en CSS; Werken binnen Scrum/Agile team. Hier ga je werken Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Azure. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De

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

Ozzie PHP

30/04/2014 13:28:04
Quote Anchor link
Hey guys,

In sommige gevallen is het handig om de ISO normering aan te houden. Waarom? Omdat andere programmeurs dat ook doen, en omdat je dan precies weet wat een bepaalde waarde inhoudt.

Er zijn heel veel ISO-lijstjes en één daarvan is bijvoorbeeld een lijstje voor iemands geslacht: http://en.wikipedia.org/wiki/ISO/IEC_5218

Dat lijstje ziet er ongeveer als volgt uit:

0 = unknown
1 = male
2 = female
9 = not_applicable

Nu is dit op zich niet een heel groot lijstje, maar toch heb ik geen zin om die getallen te moeten onthouden. Dus leek het me handig om hier een interface van te maken, als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
interface gender {

    const unknown       = 0;
    const male          = 1;
    const female        = 2;
    const not_appicable = 9;

}

?>

Het idee is nu dat als ik weet dat iemand een man is, dat ik dan dit kan doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$person
= new Person();
$person->setGender(gender::male);
?>

Dit lijkt me namelijk een stuk duidelijker dan dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$person
= new Person();
$person->setGender(1);
?>

Zijn jullie het met deze gedachte eens?

Nu is echter mijn vraag... stel dat ik deze persoon opsla in de database, dan staat er in de database bij "gender" dus een 1. Dat is prima, want dat willen we ook. Echter, stel nu dat ik een tijdje later de gegevens van die persoon op mijn scherm wil tonen, dan staat er dus bijvoorbeeld:

name: Ozzie
gender: 1

Is het nu mogelijk om in plaats van 1 daar dan de naam van de constante, dus "male", te tonen? Dus:

name: Ozzie
gender: male

Weet iemand of, en zo ja hoe, dat kan?

Alvast bedankt voor de reacties.
 
PHP hulp

PHP hulp

17/11/2024 23:38:34
 
LEDfan nvt

LEDfan nvt

30/04/2014 13:36:43
Quote Anchor link
Hier staat beschreven hoe je dat kan doen http://stackoverflow.com/questions/1880148/how-to-get-name-of-the-constant .
Maar kan je dit niet beter in je view regelen?
 
Wouter J

Wouter J

30/04/2014 13:43:34
Quote Anchor link
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php

class Gender
{
    const UNKNOWN        = 0;
    const MALE           = 1;
    const FEMALE         = 2;
    const NOT_APPLICABLE = 9;

    private $gender;

    public static function __construct($gender)
    {

        if ($gender < 0 || $gender > 9) {
            throw new \InvalidArgumentException('Invalid gender.');
        }


        $this->gender = $gender;
    }


    public function getGender()
    {

        return $this->gender;
    }


    public static function parse($name)
    {

        switch (strtolower($name)) {
            case
'male': $gender = 1; break;
            case
'female': $gender = 2; break;
            case
'not applicable': $gender = 9; break;
            default:
$gender = 0; break;
        }


        return new self($gender);
    }
}


class GenderToTextTransformer
{
    public function transform(Gender $gender)
    {

        switch ($gender->getGender()) {
            case
0: return 'unknown'; break;
            case
1: return 'male'; break;
            case
2: return 'female'; break;
            case
9: return 'not applicable'; break;
        }
    }
}


$genderToText = new GenderToTextTransformer();

$wouter = new Person('Wouter', Gender::parse('male'));
$nienke = new Person('Nienke', Gender::parse('female'));
$robot  = new Person('WuutWuut', Gender::parse('unknown'));

echo 'Wouter is a '.$genderToText->transform($wouter->getGender());
echo 'Nienke is a '.$genderToText->transform($nienke->getGender());
echo 'The gender of WuutWuut is '.$genderToText->transform($robot->getGender());
?>
 
Ozzie PHP

Ozzie PHP

30/04/2014 13:43:54
Quote Anchor link
Ah ja, thanks... dat werkt inderdaad met de reflection class!

>> Maar kan je dit niet beter in je view regelen?

Hoe bedoel je dit?

Toevoeging op 30/04/2014 13:44:41:

Edit: Wouter, ik had je reactie nog niet gezien... ga nu even lezen. Zo dadelijk reactie.

Toevoeging op 30/04/2014 13:49:09:

Wouter, mooie aanpak... maar nogal complex lijkt mij. Ik denk dat de aanpak (zie link van LedFan) met een reflection class een stuk efficiënter/universeler is?
 
Wouter J

Wouter J

30/04/2014 13:59:45
Quote Anchor link
> Ik denk dat de aanpak (zie link van LedFan) met een reflection class een stuk efficiënter/universeler is?

Efficiëntie gaat het niet om in OO hè :) In mijn voorbeeldje heb ik even wat Domain Driven Development toegepast. Daardoor heb ik een Gender Value Object geintroduceerd. En 1 van de regels van Value Objects is: "Don’t use _toString() for presentation." Dus daar heb ik weer een nieuwe klasse voor geïntroduceerd. Op deze manier kun je het gender op verschillende manieren presenteren. Je zou een PresentGender interface kunnen maken en dan krijg je mooie dingen als:

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
24
25
26
27
28
29
30
31
32
33
34
<?php

interface PresentGender
{
    function
present(Gender $gender);
}


class AsText implements PresentGender
{
    public function present(Gender $gender)
    {

        switch ($gender->getGender()) {
            case
0: return 'unknown'; break;
            case
1: return 'male'; break;
            case
2: return 'female'; break;
            case
9: return 'not applicable'; break;
        }
    }
}


class AsUnicodeSymbol implements PresentGender
{
    public function present(Gender $gender)
    {

        switch ($gender->getGender()) {
            case
0: return 'U+26A8'; break;
            case
1: return 'U+2642'; break;
            case
2: return 'U+2640'; break;
            case
9: return 'U+2205'; break;
        }
    }
}


?>


Maar het toepassen van DDD is vaak erg overdreven en DDD experts staan zelden met beide beentjes op de grond. Je kan ook gaan voor een simpele KISS (Keep It Simple Stupid!) of YAGNI (You Aren't Gonna Need It) aanpak.
 
Ozzie PHP

Ozzie PHP

30/04/2014 14:04:33
Quote Anchor link
Wat ik eigenlijk wil voorkomen is dat die unknown, male etc. op verschillende plekken terugkomen. Het lijkt mij handiger als ik dat gewoon kan doen aan de hand van die constanten in de interface. Met die reflection class zou dat moeten lukken. Ik denk dat dat valt onder de noemer van de KISS aanpak :)
 
LEDfan nvt

LEDfan nvt

30/04/2014 15:57:33
Quote Anchor link
@ozzie wat ik bedoelde met die view is iets zoals Wouterj zij.
 



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.