[oop] objecten meegeven?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Front-end Developer

Dit ga je doen Met behulp van diverse programmeertalen ontwikkelen van Front-end software; Het begeleiden van het front-end team; Het oplossen van incidenten; Het bijhouden van een backlog; Je hebt een actieve bijdrage in de wekelijkse overleggen met de omliggende teams; Je houdt trends bij en adviseert het management hierover waar nodig; Helder communiceren met de stakeholders om hen zo mee te nemen in projecten en laten inzien wat de duur en toegevoegde waarde van bepaalde projecten is. Hier ga je werken Deze organisatie heeft circa 40 miljoen bezoekers per maand en heeft innovatie hoog in het vaandel staan. Het

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

Bekijk vacature »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden je HBO ICT Informatica diploma in ontvangst mogen nemen? Of heb je een aantal jaar ervaring als Software Developer en ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een gewaardeerde werkgever in de regio van Goirle zijn wij op zoek naar een junior/medior Back-end Developer met affiniteit met MS Acess. Samen met een vooruitstrevend team ben je verantwoordelijk voor het ontwikkelen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL en affiniteit met MS Acess. Je bent klantvriendelijk en flexibel ingesteld en vindt het leuk om klanten te

Bekijk vacature »

Freelance Fullstack Java Developer

Functieomschrijving Voor een opdrachtgever in omgeving Rotterdam zijn wij op zoek naar ervaren Fullstack JAVA Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. 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! 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 hebben

Bekijk vacature »

Front-End React Developer

Als Front-End React Developer verbeter je de user experience van onze eigen webapplicaties voor onze collega's binnen Coolblue. Wat doe je als Front-End React Developer bij Coolblue? Als Front-end React Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten met React.js. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end React Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop

Bekijk vacature »

Junior Java Developer

Dit ga je doen Full stack web- en appdevelopment; Vertalen van de functionele wensen naar de technische specificaties; Sturing geven aan/klank board zijn voor de software teams; Trainen van de software teams; Sparren met klanten; Meedenken over architectuur. Hier ga je werken De organisatie is een bureau welke websites en mobiele applicaties bouwt voor verschillende toonaangevende organisaties. Hierbij richten zij zich voornamelijk op de sectoren leisure, overheid en zorg. De sfeer intern kenmerkt zich door informaliteit, gezelligheid en ambitie. Ze werken dag in dag uit samen om mooie producten op te leveren voor hun klanten. Op dit moment zijn er

Bekijk vacature »

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Front-End Developer

As a Front-End Developer at Coolblue you improve the user-friendliness of our webshop for millions of customers. How do I become a Front-End Developer at Coolblue? As a Front-End Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present these within the team. You also take pride in your work and welcome any feedback. Would you like to become a Front-End Developer at Coolblue? Read below if the job suits you. You

Bekijk vacature »

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

Bekijk vacature »

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Pagina: 1 2 3 4 volgende »

Ozzie PHP

Ozzie PHP

14/04/2013 11:42:30
Quote Anchor link
Hallo mensen,

Ik ga een cacher class maken en nu wil ik dat iedere website op mijn server een eigen mapje krijgt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
/pad/naar/cache/www.site1.nl
                www.site2.nl
                www.site3.nl
                enz.

Nu werk ik met een service-container en ik heb mijn service-container zo gemaakt, dat ik ook een service als argument kan meegeven aan een andere service.

Zoals ik hierboven aangeef, heeft iedere website z'n eigen cache folder. Het pad naar deze folder bestaat uit een "vast" gedeelte (namelijk /pad/naar/cache/) en een dynamisch gedeelte (bijv. www.site1.nl) dat wordt gegenereerd op basis van het request.

Nu kan ik op het moment dat ik de cacher wil gebruiken 2 dingen doen:

1)

Ik genereer van tevoren het pad naar de cache folder en stel dat vervolgens in via een setCachePath(). Dan krijg je dus (globaal) zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$cache_path
= $container->get('paths')->get('cache') . $container->get('request')->get('domain');
$cacher     = $container->get('cacher');
$cacher->setCachePath($cache_path);
?>


2)

Wat ik ook kan doen, en ik eigenlijk mooier vind, is om de 'paths' service (object) en de 'request' service (object) als argumenten mee te geven aan de cacher service. Op het moment dat ik dan de cacher service aanroep, wordt het paths object en het request object aan de constructor van de cacher meegegeven, en de constructor bepaalt dan vervolgens zelf het cache path.

Ik vind dit een mooiere optie, omdat ik dan in de code geen cache path hoef in te stellen. Dat doet de cacher immers zelf. Het enige "nadeel" wat ik me zou kunnen bedenken, is dat ik dan wel 2 objecten moet meegeven aan de cacher. Is dat "lelijk" OOP, of is dit juist zoals het zou moeten?

Graag jullie mening.
Gewijzigd op 14/04/2013 11:45:00 door Ozzie PHP
 
PHP hulp

PHP hulp

08/01/2025 17:14:15
 
Wouter J

Wouter J

14/04/2013 13:25:18
Quote Anchor link
Het is niet lelijk OO om 2 klassen in een klasse te injecteren.

Wat wel heel erg verkeerd is is dat je hierdoor de cacher afhankelijk maakt van de Request klasse. Daar heeft die cache klasse niks mee te maken. De taak cachen is het opslaan van gegevens in een bepaalde resource. Een FileCacher heeft als taak gegevens op te slaan en op te halen uit een bestand. Wat dat bestand is heeft de cacher niks mee te maken, het enige dat hij hoeft te weten is dat hij schrijf en lees toegang tot dat bestand heeft.
 
Ozzie PHP

Ozzie PHP

14/04/2013 13:29:31
Quote Anchor link
Thanks voor je reactie Wouter. Uhm, oké... maar de cacher zal moeten weten WAAR hij z'n bestanden moet lezen en schrijven. Dat kan ik dus "handmatig" meegeven (optie 1), of ik geef die 2 objecten mee, en de cacher weet vervolgens zelf de locatie waar hij de bestanden moet lezen en schrijven. Ik vind de 2e optie mooi omdat ik dan handmatig niks extra's hoef te doen zoals bij optie 1 wel het geval is. Maar jij vindt optie 2 dus niet goed? (Heb je een alternatief?)
 
Wouter J

Wouter J

14/04/2013 13:37:57
Quote Anchor link
Goed, de basis van OO is dat we klassen los van elkaar kunnen gebruiken in elke situatie die we maar kunnen bedenken. Om dat te bereiken is er in OO het basisprincipe dat elke klasse en method maar 1 verantwoordelijkheid mag hebben.

Als de cacher zelf vanuit één of andere request klasse de bestandslocatie moet gaan raden heeft de cacher toch 2 verantwoordelijkheden? Als eerste moet hij gaan nadenken waar het bestand staat en vervolgens moet hij ook nog met dat bestand gaan werken. Dat betekend dat je hem niet kunt hergebruiken. Stel dat je straks verder in dit project ook globale gegevens wilt gaan cachen. Dan moet je weer een hele nieuwe cache klasse maken omdat je dan niks meer met de Request te maken hebt.

Wat je dus moet doen is deze 2 verantwoordelijkheden in 2 klassen stoppen. Je hebt dan bijv. een FileCache en een CacheContext klasse. De FileCache is slechts een klasse die dingen kan opslaan in bestanden. Welk bestand dat is dat krijgt hij doormiddel van een bestandsnaam mee.
De CacheContext klasse is een klasse die een Request klasse krijgt en aan de hand daarvan bepaald welke bestandsnaam hij aan de FileCache meegeeft.
 
Ozzie PHP

Ozzie PHP

14/04/2013 13:44:07
Quote Anchor link
Ah oke... dus één klasse die echt cachet... en één klasse die bepaalt waar er gecachet moet worden.

Maar in mijn geval zal de cache altijd in dezelfde map plaatsvinden. Dan kan ik toch wel het (basis)pad opslaan in de cache class?
 
Wouter J

Wouter J

14/04/2013 14:22:31
Quote Anchor link
Nee, wie zegt dat het altijd in dezelfde map plaats vind? In je volgende project is er weer een andere map, ga je dan weer die klasse aanpassen? En in een ander project weer?
 
Ozzie PHP

Ozzie PHP

14/04/2013 14:26:39
Quote Anchor link
Nee, de locatie waar de cachebestanden worden opgeslagen is in mijn situatie altijd hetzelfde.

Iedere website krijgt een vaste cache map:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
/pad/naar/cache/www.site1.nl
                www.site2.nl
                www.site3.nl
                enz.

Die map verandert niet... nooit. Dus vandaar mijn vraag.
 
Wouter J

Wouter J

14/04/2013 14:33:29
Quote Anchor link
Maar je maakt die Cache klasse niet voor alleen dit project. Als je straks later een andere opdracht krijgt waarbij je ook moet gaan cachen (offtopic: dat zal in jouw geval elke opdracht zijn... ;-) wil je niet weer een Cache klasse moeten maken, maar wil je gewoon deze cache klasse gaan gebruiken. Daarom moet je zorgen dat je nergens instellingen hard-coded in de klasse.
 
Ozzie PHP

Ozzie PHP

14/04/2013 14:36:48
Quote Anchor link
Hmmm, ja ik snap je wel... maar de bedoeling is dat dit voor mijn eigen projecten is... en die wil ik dus altijd in dezelfde map cachen. Maar ik snap jouw gedachtengang ook wel.

Overigens ga ik het niet hard-coded opslaan hè... het pad wordt dynamisch gegenereerd.
 
Wouter J

Wouter J

14/04/2013 14:39:02
Quote Anchor link
Nee, je wilt in jouw framework de bestanden altijd in dezelfde map cachen. Maar als je straks een project begint zonder je framework (komt echt wel voor) dan wil je het niet in dezelfde map en moet je dus de klasse aanpassen.

Een het genereren van een path is natuurlijk hetzelfde als het hard-coded opslaan van het path.
 
Ozzie PHP

Ozzie PHP

14/04/2013 14:49:02
Quote Anchor link
Ah ja, daar heb je een punt. Ik ga er eens even goed over nadenken wat het handigste is. Jij hebt het trouwens over "file" cachen hè. Welke andere manieren van cachen zijn er dan nog meer?
 
Wouter J

Wouter J

14/04/2013 15:01:56
 
Ozzie PHP

Ozzie PHP

14/04/2013 15:09:07
Quote Anchor link
Ah oké, thanks :)
Ik geloof niet dat ik er zoooveel nodig heb, hahaha...
 
Wouter J

Wouter J

14/04/2013 15:10:46
Quote Anchor link
Naja, een paar zijn er wel handig. Ik zou zelf DataBaseCache, FileCache, ApcCache en ArrayCache (handig voor testen) gebruiken.
 
Ozzie PHP

Ozzie PHP

14/04/2013 15:11:38
Quote Anchor link
Waarom zou je iets in een database willen cachen?
 
Erwin H

Erwin H

14/04/2013 17:09:25
Quote Anchor link
Er zijn meerdere redenen om te cachen. Meestal doe je het omdat de content redelijk statisch is en vaker wordt aangevraagd dan dat het zal veranderen. Dan cache je het dus om je database load te beperken.
Een andere reden kan zijn dat het genereren van de content simpelweg te lang duurt om het voor iedere request te doen. In dat geval maak je het alleen de eerste keer aan en kan je het daarna ophalen wanneer het nodig is. Dat soort cache kan je prima in een database opslaan.
 
Ozzie PHP

Ozzie PHP

14/04/2013 17:15:04
Quote Anchor link
Dankjewel voor je uitleg. Maar waarom zou je het dan in je database opslaan en niet in een bestand? Dat laatste is toch sneller om te benaderen?
 
Erwin H

Erwin H

14/04/2013 19:05:40
Quote Anchor link
Ten eerste is dat zeker niet altijd het geval en ten tweede zijn er natuurlijk nog veel meer voordelen aan het gebruik van een database die ik hopelijk niet allemaal uit hoef te leggen....
 
Ozzie PHP

Ozzie PHP

14/04/2013 19:47:35
Quote Anchor link
Erwin, ik zou je juist willen vragen om ze wel uit te leggen. De voordelen van een database snap ik, maar een van de redenen waarom je wil cachen is toch juist om het aantal database-aanroepen te beperken?

Ik hoop dat je mij kunt uitleggen in welke gevallen (praktijkvoorbeelden) het beter is om iets in de database te cachen in plaats van in losse bestanden. Ik heb zelf namelijk geen idee, maar wellicht kun je mij overtuigen en kan ik het straks zelf toepassen. Maar op dit moment is het waarom me nog niet duidelijk. Dus graag jouw uitleg.
 
Wouter J

Wouter J

14/04/2013 19:50:19
Quote Anchor link
Database aanroepen beperken is natuurlijk maar 1 van de 1000 redenen om te cachen.

Andere redenen zijn bijv:
- Het parsen van Yaml/Xml configuratie bestanden, dat ga je natuurlijk niet elke request doen
- Het parsen van templates
- Ipv elke request een hele rij bestanden te doorzoeken opzoek naar 1 of 2 bestanden sla je deze bestanden op, waardoor je deze bestanden direct kunt aanroepen
- ect.
 
Ozzie PHP

Ozzie PHP

14/04/2013 19:53:25
Quote Anchor link
Ja, tot zover snap ik het allemaal wel... maar ik ben dus benieuwd waarom je de gegevens die je cachet zou opslaan in een database in plaats van in een bestand? Dat is het enige wat ik graag wil weten.
 

Pagina: 1 2 3 4 volgende »



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.