Juiste denkwijze gebruik methodes?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »

Fullstack developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een andere uitdaging? Voor een erkende werkgever in de omgeving van Breda zijn wij op zoek naar een Fullstack developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; 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

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

Software Developer Java

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

C# .NET Developer

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Bennekom gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Back-end Developer

Functie omschrijving Als Back-end Developer heb je de eer om als eerste interne developer bij deze organisatie te beginnen. Op dit moment zijn er externe developers, maar daar wil de organisatie verandering in brengen. Op termijn moet de gehele afdeling uit intern personeel bestaan. Je kan je voorstellen dat de eerste interne developer ook de nodige kennis mee moet brengen. Dat klopt. Je gaat je namelijk aan het begin bekommeren over de externe developers en uiteindelijk over je interne collega's. Verder ga je het volgende doen: Het bedenken, beheren en onderhouden van webportalen, API-koppelingen en applicaties; Je bedenkt en werkt

Bekijk vacature »

Medior Java developer

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 »

Software developer - C Sharp

Functie omschrijving Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Wij zijn voor een leuke opdrachtgever in omgeving Naaldwijk op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Wij zoeken iemand die breed inzetbaar is en die aan veel verschillende applicaties wilt werken. Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind

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 »

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 »

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 »

Medior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Medior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »
Kevin de Groot

Kevin de Groot

24/07/2012 14:17:35
Quote Anchor link
Hoi mensen,

Ik ben al een tijdje geregistreerd op dit forum, echter, mijn gegevens zijn niet meer bekend. Heb destijds waarschijnlijk een ander e-mailadres gebruikt, maar dat terzijde.
Ik zit met een vraagje. Ik ben sinds twee weken wat meer bezig met OOP en ik weet nog steeds niet hoe bepaalde dingen het handigst zijn op te lossen.
Mijn vraag:

Ik heb zojuist een database-klasse geschreven (genaamd 'Database') en hier enkele methodes aan toegevoegd. Verbinding maken en queries uitvoeren gaat middels MySQLi, maar dat terzijde. Nu wil ik bedrijfsgegevens ophalen uit de database, dus ik heb een klasse 'Bedrijf' aangemaakt. Hoe kan ik dan het beste de gegevens ophalen? Hieronder mijn code met de twee/drie methodes die mij het beste lijken. Welke raden jullie mij aan voor toekomstig en universeel gebruik? Hieronder dus mijn code:

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php

class Bedrijf
{
    private $bedrijfsid;
    
    public function setBedrijfsID($bedrijfsid)
    {

        $this->bedrijfsid = (int)$bedrijfsid;
    }

    
    public function getBedrijfsID()
    {

        return $this->bedrijfsid;
    }

    
    // Hieronder methode 1
    // Één methode voor het ophalen van gegevens en die aanroepen middels een andere methode
    // Voordeel: éénmaal lange(re) code voor de query, kan onderaan in de code, zit dus niet in de weg

    
    public function getBedrijfsnaam()
    {

        return getBedrijfsgegevens('naam');
    }

    
    private function getBedrijfsgegevens($kolom)
    {

        $oDatabase = Database::getInstance();
        
        $result = $oDatabase->setQuery("SELECT ". $kolom ." FROM bedrijf WHERE id = ". $this->bedrijfsid ." LIMIT 0,1");
        
        if ( $oDatabase->countResults($result) == 1 )
        {

            $fetch = $oDatabase->fetchResults($result);
            
            return (!empty($fetch[$kolom])) ? $fetch[$kolom] : 'onbekend';
        }

        else
        {
            return 'onbekend';
        }
    }

    
    // Hieronder methode 2
    // Dus per gegeven een aparte verbinding en methodes
    // Voordeel: per waarde is een specifieke output te genereren

    
    public function getBedrijfsnaam()
    {

        $oDatabase = Database::getInstance();
        
        $result = $oDatabase->setQuery("SELECT naam FROM bedrijf WHERE id = ". $this->bedrijfsid ." LIMIT 0,1");
        
        if ( $oDatabase->countResults($result) == 1 )
        {

            $fetch = $oDatabase->fetchResults($result);
            
            return (!empty($fetch['naam'])) ? $fetch['naam'] : 'onbekend';
        }

        else
        {
            return 'onbekend';
        }
    }

    
    // Verder zag ik ook een methode 'load()' die alle velden uit de database haalt.
    // Deze velden worden in de $this-variabelen gezet middels methodes.
    // Dit lijkt me onhandig, want ik hoef niet alles te selecteren als ik enkel de
    // bedrijfsnaam wil selecteren. Ongeveer een voorbeeld:

    
    public function load()
    {

        $oDatabase = Database::getInstance();
        
        $result = $oDatabase->setQuery("SELECT * FROM bedrijf WHERE id = ". $this->bedrijfsid ." LIMIT 0,1");
        
        if ( $oDatabase->countResults($result) == 1 )
        {

            $fetch = $oDatabase->fetchResults($result);
            
            $this->bedrijfsid = $fetch['id'];
            $this->bedrijfsnaam = $fetch['naam'];
            // enz.
        }
        else
        {
            return 'onbekend';
        }
    }

    
    public function getBedrijfsnaam()
    {

        return $this->bedrijfsnaam;
    }
}


?>


Alvast bedankt voor het meedenken en voor de tips.

EDIT: de code kan fouten bevatten, is puur een voorbeeld :)
Gewijzigd op 24/07/2012 14:18:44 door Kevin de Groot
 
PHP hulp

PHP hulp

26/04/2024 03:08:42
 
Pim -

Pim -

24/07/2012 20:42:16
Quote Anchor link
Richt je niet op onvolledige objecten, maar vul ze altijd volledig. Als je je, zoals jij nu doet, met Object Relational Mapping bezighoudt, het maken van dergelijke 'Bedrijf' objecten a.d.v. DB tabellen vormen onvolledige objecten een groot probleem, omdat je dan niet uit kan gaan van het werken van je code. Je weet immers niet of objecten geladen zijn of niet (zie ook).

Dus je wil dan in 1x het hele model laden. Daar zijn 2 veelgebruikte methoden voor: het active record (AR) en de data mapper (DM). Jouw load() functie is een implementatie van het AR, een save() functie maakt het dan af. Een DM is een apart object dat de opslag van je modellen regelt, dit is misschien mooier, maar voegt ook een extra laag van complexiteit toe. Ik raad je dus methode 3 aan.

Bedenk wel dat je load() functie ofwel een exception wil laten gooien als het fout gaat, ofwel false terug laten geven (en true als het goed gaat). Een of andere string teruggeven is volstrekt nutteloos.
 
Kevin de Groot

Kevin de Groot

24/07/2012 21:23:40
Quote Anchor link
Bedankt voor jouw antwoord :)
Ik heb even "rond-gegoogled" en sommige dingen worden me nu wél wat duidelijker :)
Echter, heb je een kort voorbeeld voor mij hoe ik dit moet aanpakken in mijn voorbeeld? Ik kan dus properties van waarden voorzien middels setters en deze:
- óf laden, als voorbeeld middels load()
- óf saven, als voorbeeld middels save()

Zit ik in de goede richting? Ik ben nieuw met OO. Tutorials op dergelijke websites bevatten niet echt de juiste voorbeelden die ik kan toepassen in mijn eigen code.

Thanks! :)
 
Jan Koehoorn

Jan Koehoorn

24/07/2012 22:08:21
Quote Anchor link
OOP gaat pas in je voordeel werken als je kunt profiteren van dingen als inheritance en datahiding. Als je een class gaat maken voor elke tabel in je database is het zinvol om te kijken wat er telkens verandert en daarvan een abstractie te maken.

Zo zul je bijvoorbeeld altijd te maken hebben met verschillende kolomnamen. Dan is het niet slim om voor elke kolomnaam een aparte membervariabele aan te maken. Het is veel handiger om een array aan te maken en die te laten uitlezen door een parentclass die alle kolomnamen uit je databasetabel trekt. Andere classen kunnen die basisclass dan extenden.

Denk ook na over welke functies je public maakt en welke private, en lees iets over interfaces en abstract classes. Een boek dat ik je kan aanraden is 'Head First Design Patterns'. Maar dan niet het hele boek, alleen de eerste paar hoofdstukken. Die zijn prima om een idee te krijgen van de voordelen van OOP.
 
Kevin de Groot

Kevin de Groot

24/07/2012 22:44:58
Quote Anchor link
Thanks! Ik zal even kijken of dat boek in de "bibliotheek" te vinden is :)

Het blijkt dat ik me er maar verder in moet gaan verdiepen :)
 
Wouter J

Wouter J

24/07/2012 23:07:45
Quote Anchor link
Ik wil natuurlijk geen reclame maken, maar lees eens de OO berichten op mijn site: http://wouterj.nl/serie/orienteer-je-in-objecten/
 



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.