Juiste denkwijze gebruik methodes?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer Zorg-ICT

Wil jij met ChipSoft impact maken in de zorg met jouw technische kennis als Software Developer Zorg-ICT? En lijkt het jou uitdagend om innovatieve software te ontwikkelen met de laatste Microsoft-tools en technieken? Wat doe jij als Software Ontwikkelaar? Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van jouw eigen module. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de complexe omgeving van een zorgorganisatie. Je werkt zelfstandig of in teamverband. ChipSoft maakt gebruik van een zelf ontwikkeld multi-tier framework. Tijdens een interne opleiding brengen wij je snel bij hoe je binnen deze architectuur je ontwikkelkunsten

Bekijk vacature »

Technisch Ontwerper / Applicatieontwikkelaar max.

Wie zoeken we? Je bent de beste in je vak of hebt de ambitie en de potentie om de beste te worden. Je hebt de passie om nieuwe technologieën te blijven leren en continu jezelf te ontwikkelen. Je hebt de pioniersgeest en drive om nieuwe technologieën, methodieken en concepten toe te passen in projecten en bij klanten. Je vindt het leuk om kennis te delen met collega’s, klanten en vakgenoten. Je bent een ware professional en ambassadeur voor CIMSOLUTIONS. Je voelt je thuis in een informele, collegiale en professionele sfeer waar de aandacht voor de klant en voor de medewerker

Bekijk vacature »

SAP Fiori Developer / Junior / Internationaal / 1

Functieomschrijving Ga jij als SAP Fiori Developer aan de slag voor een internationaal bedrijf in Nederland met meer dan 1 miljoen klanten? Dit bedrijf heeft IT hoog in het vaandel staan en investeert er daarom fors in. Voor het SAP Fiori team binnen deze organisatie zijn zij dan ook op zoek naar een Junior SAP Fiori Developer Werken als SAP Fiori Developer binnen een multifunctioneel Scrum team; Het bouwen en beheren van nieuwe functionaliteiten en interfaces in SAP Fiori op basis van de door jou opgehaalde requirements; Naast het developen heb je ook veel contact met de business; Je zorgt

Bekijk vacature »

.Net custom software developer

Jouw uitdaging als .Net developer Als .Net custom software developer creëer je maatwerkoplossingen. Denk aan een mobiele applicatie voor het stroomlijnen van logistieke processen, een platform voor een uitkeringsorganisatie of de passagiersbeleving van een vliegtuigmaatschappij. Hierbij gaat het vaak om complexe omgevingen met veel gebruikers, waarbij de lat dus hoog ligt. Wat jouw werkzaamheden zoal zijn? Je werkt mee aan het gehele ontwikkelproces, van ontwerp, design en ontwikkeling tot testen en beheren van Microsoft applicaties en PoC’s. Je gaat werken met o.a. de volgende technologie: Azure, C#, .Net core, Angular, React, Vue en soms AWS. Je neemt deel aan meetings

Bekijk vacature »

Java Developer / Java 8 / Angular / Docker / Autom

Functieomschrijving Wil jij als Java Developer aan de slag bij een internationaal bedrijf die cutting edge applicaties ontwikkeld voor de automotive branche? Ga je graag aan de slag met technieken als Java 8, Java EE7, Docker, Angular en wil je graag direct een lease auto krijgen? Lees dan snel verder! Ontwikkelen van cutting edge applicaties met o.a. Java 8, Java EE7, Angular en Docker; Verantwoordelijk vanaf het in kaart brengen van requirements tot de daadwerkelijke technische oplossing; Meedenken over architectuur; Assisteren van technische implementaties bij klanten; Overleggen met analisten, testers, architecten en consultants. Functie-eisen Minstens 2 jaar ervaring als Java

Bekijk vacature »

Technisch Ontwerper / Applicatieontwikkelaar max.

Wie zoeken we? Je bent de beste in je vak of hebt de ambitie en de potentie om de beste te worden. Je hebt de passie om nieuwe technologieën te blijven leren en continu jezelf te ontwikkelen. Je hebt de pioniersgeest en drive om nieuwe technologieën, methodieken en concepten toe te passen in projecten en bij klanten. Je vindt het leuk om kennis te delen met collega’s, klanten en vakgenoten. Je bent een ware professional en ambassadeur voor CIMSOLUTIONS. Je voelt je thuis in een informele, collegiale en professionele sfeer waar de aandacht voor de klant en voor de medewerker

Bekijk vacature »

PHP Developer op de groei Innovatie Creativiteit

Functieomschrijving Ben jij een PHP Developer die zich nog wilt ontwikkelen? Ben jij innovatief, leergierig en wil je graag groeien? Sta jij te springen om de nieuwste tools en technieken toe te passen in jouw werk? Reageer nu en kom alles te weten! Software ontwikkelen met behulp van PHP; Werken aan verbetering van traditionele en nieuwe SaaS-producten Ontwikkelen van nieuwe functionaliteiten volgens SCRUM; Deelnemen aan verschillende development projecten; Maken van een technisch ontwerp; Meedenken over de architectuur. Functie-eisen Hbo-denkniveau; Minimaal 2 jaar relevante werkervaring; Creatief en innoverend; Ervaring met SCRUM is een pré; Een mooie schone code schrijven, dat geeft

Bekijk vacature »

Java Developer bij Profit4Cloud

Voor na je vakantie: De 50 collega's bij Profit4Cloud hebben het druk en daarom zoeken wij extra Java Developers Medior/Senior. Voor projecten in de sectoren Banking & Finance, Industrie, Overheden, Zorg en Retail in West-, Midden- en Oost-Nederland. Wil jij ook het verschil maken in Java 8 en waar mogelijk ook AWS Cloud technologie gebruiken? Dan moeten we zeker eens een kop koffie drinken! Wij bieden jou als Java Developer: Profit4Cloud heeft hele goede arbeidsvoorwaarden. Zo doen wij altijd een op maat gemaakte aanbieding en bieden wij in ieder geval: - OCA & OCP certificering betaald door Profit4Cloud - Onbeperkt

Bekijk vacature »

Java Developer / Domotica / Public Cloud / Verbete

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan het ontwikkelen van innovatie Java applicaties die het levensgeluk van patiënten in diverse zorginstellingen aanzienlijk verbeterd? Lees dan snel verder! Ontwikkelen van nieuwe applicaties in Public Cloud; Optimaliseren en verbeteren van bestaande applicaties in Private Cloud; Meedenken over verbeterprojecten; Maken en uitvoeren van Stress Testing; Ontwikkelen en verbeteren van de Mobile app. Functie-eisen Hbo werk- en denkniveau; Minimaal 5 jaar relevante werkervaring; Ervaring in Java 8; Kennis van Linux, Public- en Private Cloudtechnieken; Je bent communicatief erg sterk en kan tegen de nodige stress. Bedrijfsomschrijving Deze organisatie is al ruim

Bekijk vacature »

BI Ontwikkelaar

Ben jij gek op het verzamelen en analyseren van informatie? En wil je met deze passie graag zorgorganisaties meer inzicht verschaffen? Lees dan snel verder. Jouw baan Als BI ontwikkelaar Datawarehouse help je zorgorganisaties bij het inzichtelijk maken en grafisch presenteren van hun data. De ene dag werk je aan rapportages en kubussen, een dag later spreek je af met je collega’s om je in een ingewikkeld zorgproces te verdiepen. Je verwerkt informatiewensen samen met onze ontwikkelaars in de software. Afwisselend en uitdagend, want je werkt aan meerdere projecten tegelijk. Wat voor projecten? Dat stemmen we zoveel mogelijk af op

Bekijk vacature »

Software Developer / Maatwerk / 4GL / SQL

Functieomschrijving Heb jij ervaring met Software Development en wil je je graag verder ontwikkelen bij een internationaal bedrijf in regio Eindhoven? Lees dan snel verder! Software ontwikkeling met technieken als Magic XPA en DB2 relationele databases. Ontwikkelen van nieuwe onderdelen van het centrale (maatwerk) softwarepakket. Uitbreiden bestaande functies binnen het pakket. Wensen en eisen van gebruikers in kaart brengen. Meedraaien in projecten. Informatieanalyses maken en uitwerken. Jezelf ontwikkelen binnen de organisatie, bijvoorbeeld op het gebied van BI of integratie met behulp van SAP PI/PO. Ondersteunen van de helpdesk bij software issues. Functie-eisen 1 tot 3 jaar ervaring op het gebied

Bekijk vacature »

Junior Front-End Developers for the SSM Informatio

Junior Front-End Developers for the SSM Information Management System Location Frankfurt am Main, Germany Closing date for applications 17 January 2020 Your team You will be part of the Prudential Domain Services Division in the Directorate General Information Systems. We are a team of approximately 25 IT professionals delivering tailored IT solutions for European banking supervision (SSM) to support financial stability and collect supervisory statistics. Working as part of an agile team of software developers, you will take over the development and maintenance of the SSM Information Management System (IMAS) from an external supplier. Currently, the custom-built IMAS web application

Bekijk vacature »

Java Developer Digital

At KLM, we prefer to call back-end developers Java developers. It's because of our love of travel. The world we live in is changing rapidly, and as a developer, you're in the cockpit. Will you join us on a digital journey around the world? About the job What will your task be? You are the indispensable link in the big picture. Most of all, you will help make innovations a reality. For example, you can proudly stand next to the check-in that you have made possible. Because let's be honest: we are at the cutting edge of innovation, but without

Bekijk vacature »

.NET Developer Financieel

Werk jij als software developer het liefst met uitdagende systemen? Dan kun jij je bij onze vestiging in Amsterdam volledig uitleven als .NET Developer Financieel. Wanneer begin je? Jouw baan Je ontwerpt, ontwikkelt, ondersteunt en onderhoudt je eigen financiële module binnen HiX, onze ICT-totaaloplossing voor de zorg. Je schrijft objectgeoriënteerde code, speurt naar verbeteringen, werkt aan vernieuwende projecten, doet code reviews en voert testen uit. Een uiterst verantwoordelijke job, want dankzij jouw software kunnen zorginstellingen hun zorg factureren, voldoen aan afspraken met zorgverzekeraars, verplichte landelijke aanleveringen van financiële data doen en nog veel meer. Je brainstormt regelmatig met collega’s hoe

Bekijk vacature »

Junior GIS Specialist

Als Junior GIS Specialist leer je bij ons welke rol geografische informatie in organisaties kan spelen. In de functie zul je in aanraking komen met één of meerdere onderwerpen: GIS, FME, Aardobservatie, Burgerparticipatie en Geo Data Science. In de werkzaamheden zul je werken met GIS, maar ook geo-informatie verwerken in FME- of Python-scripts. Wij zoeken een persoon die graag initiatief neemt en houdt van samenwerken, maar het ook niet erg vindt om zelfstandig te werken. Twee dagen in de week werk je in Rotterdam. Andere dagen werk je in overleg thuis of op een andere werkplek. Minimale vereisten HBO+ Niveau

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

23/01/2020 12:00:32
 
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.