Juiste denkwijze gebruik methodes?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior C# Developer

Samen met het development team zorg je ervoor dat alle systemen achter de schermen vlekkeloos werken. Wat doe je als Medior C# Developer bij Coolblue? Als C# developer doe je regelmatig mee aan brainstormsessies over user experience, data en task flow met de UX Designer, Product Owner en Data Scientist in je team. Daarnaast schrijf je op zichzelf staande, consistente en testbare code die goed onderhoudbaar en toekomstbestendig is. Ook C# Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Werken met verschillende soorten data-opslag, zoals Oracle of AWS. Problemen oplossen

Bekijk vacature »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Productontwikkelaar Food

Wat ga je doen Als Productontwikkelaar Food ga je nieuwe producten ontwikkelen en bestaande producten verbeteren. Je bent hierbij betrokken bij het gehele proces: van productconcept naar proefreceptuur, het realiseren va het product (op kleine schaal) en het testen van producten in een productieomgeving. Verder: Bewaak je de status van verschillende fases van productontwikkeling en lever je tijdig de benodigde data aan Ben je bezig met de optimalisatie van oude en nieuwe recepturen Begeleid of organiseer je proefsessies (sensorisch onderzoek) in het team en/of bij klanten Onderhoud je contacten met de klanten, leveranciers van grondstoffen e.a. externe partijen Houd je

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 »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een erkende werkgever in de regio van Goes zijn wij op zoek naar een enthousiaste software programmeur met PHP/Symfony ervaring. Een gedreven persoon die het development team komt versterken met het aanpakken van complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel professionele als persoonlijke groei? Lees dan snel verder! Dit ga je doen: Beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Testen en door ontwikkelen van software; Ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Database ontwikkelaar

Functieomschrijving Wil jij aan gave logistieke softwareprojecten werken en bij een uniek softwarebedrijf in de regio van Tilburg? Wacht niet langer en reageer snel op deze vacature. Als Database ontwikkelaar ga je aan de slag het schrijven van stored procedures en verder uitbouwen van de SQL database. Je werkt in een database team, met allemaal mensen die energie krijgen van software en techniek. Verder krijg je als taak: Optimaliseren en uitbouwen van de MS SQL databases die gebruikt worden; Optimaliseren van query's, waardoor er efficiënter gewerkt kan worden; Je werkt met de technieken T-SQL of PL/SQL; Bij interesse kan je

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Als Lead PHP developer bijdragen aan het onderwijs

Functie Als Lead PHP developer zet je samen met het team en de andere lead developers de technische lijnen uit als het gaat om het ontwikkelen van de applicaties en bepaal je samen met de PO waar elke sprint aan gewerkt zal worden. Je kunt op basis van een user story een goede aanpak formuleren en een planning opstellen, en andere hierin meenemen. Wanneer je team code schrijft verwacht je degelijke oplossingen, bij voorkeur gebruik makend van Domain Driven Design. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit

Bekijk vacature »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »

Backend Developer Scrummaster .NET

Samengevat: Deze werkgever is een ambitieus internetbedrijf met een passie voor digitale communicatie. Ben jij geschikt als Backend Developer? Heb je ervaring met .NET platform? Vaste baan: Backend Developer / SCRUM Master Scrum HBO WO €3.800 - €6.000 Deze werkgever is een innovatief bedrijf met enthousiaste mensen die jarenlang ervaring hebben met het ontwikkelen internet- en intranetoplossingen. Wij houden van korte lijnen en open en eerlijke communicatie. Wij zetten graag onze jarenlange ervaring in om perfect werkende oplossingen te ontwikkelen. Wij ondersteunen dienstverlenende organisaties bij het ontwikkelen en realiseren van een effectief, adaptief communicatieplatform. Je ontwikkelt met ons de meest

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

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

27/04/2024 06:40:16
 
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.