Juiste denkwijze gebruik methodes?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

Magento developer

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als back-end developer fungeer je als het verlengstuk van hun klanten. Technisch complexe zaken pak je met liefde op, en hierin werk je samen met o.a. front-end developers en designers. Klanten verwacht hierin kwaliteit van het hoogste niveau en een proactieve, meedenkende rol bij het maken van zowel technische als strategische keuzes. Ga

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 »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

PHP/Symfony developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Bergen op Zoom ben je als PHP/Symfony Developer niet alleen bezig met software ontwikkeling. Je bent buiten ontwikkeling ook continu bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Techstack: PHP, Symfony & mySQL. Jouw takenpakket ziet er als volgt uit: Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden

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 »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Front-end developer (HTML, CSS, SASS, JavaScript)

Functie Momenteel zijn we voor ons Digital team op zoek naar een (medior) Front-end developer. Samen met je collega’s werk je in een Agile/Scrum omgeving aan de ontwikkeling van onze webapplicaties, websites en andere oplossingen. Je draagt bij aan een sterk ontwikkelproces waarin kwaliteit voorop staat. Hiervoor ben je niet alleen bezig met eigen code maar ook code reviews van andere collega’s. Ben jij graag op de hoogte van de nieuwste ontwikkelingen in je vakgebied en wil je deze toepassen voor diverse projecten? Dan komen wij graag met je in contact! Eisen • HBO werk- en denkniveau • Minimaal 2

Bekijk vacature »

Ervaren C#.NET programmeur

Functieomschrijving Voor een moderne werkgever in regio Prinsenbeek zijn wij op zoek naar een ervaren C#.NET programmeur die graag de uitdaging aangaat. Je houdt je bezig met het ontwikkelen van maatwerk webapplicaties voor diverse klanten, waarbij complexe processen optimaal worden ondersteund. Verder ziet jouw takenpakket er als volgt uit: Ontwikkelen en onderhouden van C#.NET-applicaties; Schrijven van hoogwaardige, herbruikbare codes; Schrijven van technische documentatie en gebruikershandleidingen; Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen; Troubleshooten en oplossen van bugs in softwaretoepassingen; Werken met databases en dataopslagoplossingen; Implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens. Bedrijfsprofiel

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

17/05/2024 09:37:01
 
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.