[OOP] afhankelijke waardes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

Cloud Engineer

Ben jij een ervaren Cloud Engineer die complexe omgevingen kan overzien en wil je graag in vaste dienst werken bij een professioneel en kleinschalig bedrijf waar je een belangrijke rol kan spelen? Wij, IntelliMagic in Leiden, ontwikkelen specialistische IT monitoring software die we als SaaS oplossing verkopen aan grote bedrijven in Europa en de VS. We zijn een Nederlands bedrijf met een goede sfeer en met grote waardering voor de persoonlijke inbreng en kwaliteiten van onze medewerkers. Wij zoeken een ervaren Cloud Engineer met academisch denkniveau die verantwoordelijk wordt voor het beheer van de cloud infrastructuur voor onze Europese klanten.

Bekijk vacature »

Lead Front-end developer

Functie Hun huidige applicatie worden ontwikkeld in o.a. React, Redux, TypeScript. Ze werken graag met de nieuwste technieken en tooling en zoeken ook developers die hier proactief op zoek naar gaan. Als senior/lead developer ben je een kartrekker in het team. Naast het meedenken over bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Zo kun je bijvoorbeeld 1 dag in de week met 2 collega’s bezig zijn om samen met hen te kijken naar hun ontwikkeling, doelstellingen en uiteraard de gewenste begeleiding hierin. Hiernaast sta je als

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 »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

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 Dordrecht 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 »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

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 »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Junior Low-code ontwikkelaar gezocht omgeving Arnh

Bedrijfsomschrijving Wij zijn een dynamisch IT-bedrijf dat zich richt op het stroomlijnen van bedrijfsprocessen en het creëren van ondersteunende applicaties. Onze kracht ligt in het combineren van zakelijk inzicht met IT-expertise via gestroomlijnde procesontwerpen en wendbare applicatieontwikkeling met behulp van Low-code technologieën. Als jonge professional krijg je de kans om samen te werken met een team van 15 deskundige collega's, verspreid over nationale en internationale locaties. We bieden je een leerzame omgeving waar je je vaardigheden kunt ontwikkelen en groeien in je rol als Low-code ontwikkelaar. Word jij onze nieuwe Junior Low-code Ontwikkelaar (OutSystems)? Versterk ons team en draag bij

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Embedded Developer C++

Functie omschrijving Ben jij op zoek naar een leuke uitdaging als Embedded Developer, zoek dan niet verder! Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een Embedded Developer die graag met Embedded Devices werkt. Je zult verantwoordelijk worden voor het ontwikkelen en onderhouden van diverse producten. Jouw specialisatie ligt op het vlak van software, hardware en back-end. Dit bedrijf is gespecialiseerd in het ontwerpen van software voor een unieke industrie. Wil jij betrokken worden bij een proces dat loopt van ontwikkeling tot installatie? Waarbij je bezig zult zijn met perfecte systemen die geleverd worden aan binnen

Bekijk vacature »

Medior Java developer (fullstack)

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 »

Junior .NET developer

Functie Wij zijn bezig met het ontwikkelen van een nieuw product en wij hebben jouw hulp hierbij nodig! Als junior .NET ontwikkelaar krijg jij de kans om samen met ons deze nieuwe uitdaging aan te gaan! Momenteel bestaat ons team uit drie interim Software Engineers. Twee hiervan zijn zeer ervaren .NET specialisten die inmiddels hun strepen in dit vakgebied al hebben behaald. Ook hebben wij een junior als onderdeel van ons team die zich op dit moment nog bezig houdt met de Front-end (Angular/TypeScript), maar zich nu ook meer gaat verdiepen in de backend. Wij willen ons team graag verder

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

22/02/2019 18:38:32
Quote Anchor link
Tijdens het laden van een User class set ik eenmalig de volledige naam van de User zodat ik deze als volgt kan tonen.

echo $user->getFullName();

Deze volledige naam wordt tijdens het laden/initialiseren van de class gegenereerd op basis van de voornaam, tussenvoegsel en achternaam en vervolgens opgeslagen als class property.

Nu vraag ik me iets af. Stel dat ik via een setter de voornaam wijzig van Jantje naar Pietje ...

$user->setFirstName('Pietje');

... en ik zou nu de volledige naam weer ophalen, dan staat daar nog Jantje in. Immers, de volledige naam is niet gewijzigd, enkel de voornaam.

Mijn vraag is hoe je nu met zo'n "afhankelijke" waarde om moet gaan.

Ik denk dat er 2 mogelijkheden zijn:

1) Zodra ik de voornaam, tussenvoegsel of achternaam wijzig ga ik de volledige naam opnieuw genereren en overschrijf ik de bestaande class property.

2) Ik maak niet langer gebruik van een class property om de volledige naam op te slaan. In plaats daarvan genereer ik de volledige naam op basis van de voornaam, tussenvoegsel en achternaam telkens opnieuw als de functie wordt aangeroepen.

Beide opties lijken me mogelijk, maar is een van beiden wellicht logischer?
 
PHP hulp

PHP hulp

24/12/2024 06:52:31
 
Rob Doemaarwat

Rob Doemaarwat

22/02/2019 19:32:43
Quote Anchor link
Tsja, ligt er aan. Dit klinkt niet zo heel spannend (concatten van een paar strings), dus dan zou ik gewoon voor 2 gaan. Altijd de juiste waarde, zonder steeds te moeten resetten als je een van de bron waarden wijzigt.

Alleen als de actie heel "kostbaar" is (database lookup oid) zou ik voor de aanpak van 1 gaan.
Gewijzigd op 22/02/2019 19:33:06 door Rob Doemaarwat
 
Thomas van den Heuvel

Thomas van den Heuvel

22/02/2019 19:34:00
Quote Anchor link
Hebben we het over PHP? Hoe lang bestaan deze objecten precies?

Ik zou gaan voor:
3) Daar het een state change betreft is een page refresh wel op zijn plaats.

Of je moet er even bijvertellen in welke situatie je dit gebruikt waarbij dit voor problemen zorgt.

Zodra je PHP klaar is zijn al deze objecten weg, tenzij je deze op een of andere manier propageert (sessie? database?) in welk geval een andere aanpak waarschijnlijk beter is (elke page access gewoon alles opnieuw uitrekenen).
Gewijzigd op 22/02/2019 19:43:18 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

22/02/2019 20:36:57
Quote Anchor link
@Rob

Het gaat dan inderdaad om een relatief simpele concat actie. Het kan natuurlijk zijn dat er geen tussenvoegsel of achternaam is en dan moeten er geen extra spatie worden toegevoegd, dus er komt wel enige "intelligentie" bij kijken, maar het zal niet een hele heftige actie zjin.

@Thomas

In de praktijk zal een naam alleen worden gewijzigd als de gebruiker dat zelf doet. Meestal gaat dat inderdaad gepaard met een page refresh dat klopt, maar het gaat mij meer erom of er richtlijnen zijn voor dit soort situaties waarbij de ene waarde van de andere waarde afhankelijk is.

Ik snap jouw opmerking van een page refresh, maar ik kan me voorstellen dat dit niet altijd aan de orde en/of wenselijk is. Het kan bijvoorbeeld zijn dat in de workflow van de applicatie de User al is ingeladen en dat daarna pas de $_POST gegevens worden opgeslagen in de database waardoor de gegevens in de User class op dat moment niet actueel zijn. De naam Pietje is dan wel opgeslagen in de database, maar op het scherm wordt nog Jantje getoond. Uiteraard kun je dat oplossen met een page reload, maar dan ben je daar dus wel altijd van afhankelijk. Als je dat vergeet, of een andere developer doet het niet, dan krijg je ongewenste resultaten. Ik prefereer daarom een oplossing die in alle gevallen werkt.

Je hebt dus als het ware een waarde A (de volledige naam) die wordt opgebouwd uit X, Y en Z (voornaam, tussenvoegsel, achternaam). De vraag is dus ... als X, Y of Z wijzigt, hoe zorg je dan dat waarde A de juiste waarde geeft.

Daarvoor zijn 2 manieren:

1) Zodra je X, Y of Z wijzigt, genereer je A opnieuw en sla je A op als class property.
2) A wordt altijd 'live' gegenereerd aan de hand van X, Y en Z en wordt nergens opgeslagen.

Wat is van deze 2 de betere optie? Is daar een richtlijn voor.

Toevoeging op 22/02/2019 20:40:54:

Overigens vind ik de uitleg van Rob plausibel, maar het is dus een afweging die hij maakt. En misschien is dat ook gelijk wel de 'stelregel'? Is het een simpele actie, dan 'live' uitvoeren en anders eenmalig uitvoeren en opslaan als class property?? Ik was dus vooral benieuwd of er een richtlijn voor is.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/02/2019 00:01:39
Quote Anchor link
> De naam Pietje is dan wel opgeslagen in de database, maar op het scherm wordt nog Jantje getoond.
Op de scherm van een andere gebruiker dan wellicht? Van een beheerder? Van een vriend of kennis? Je moet jezelf afvragen of dat echt iets uitmaakt en hoeveel impact dat heeft.

Ik neem aan dat je beseft dat al die objecten slechts milliseconden bestaan tijdens executie van code correct? Daarna zijn ze weer foetsie.

En als je die dus ergens propageert ben je zelf veroorzaker van dit soort "dirty registers" die verouderde waarden bevatten. Als je elke page access de objecten opnieuw uitrekent heb je deze problemen niet of in ieder geval veel minder. Net zoals dat je gebruikersrechten niet opslaat in een sessie eigenlijk. Je creëert op die manier namelijk een heleboel extra (noodzakelijke) administratie.

Het lijkt er trouwens op dat je weer op zoek bent naar een soort van universeel geldende regels voor iets specifieks. Het antwoord op al die vragen is eigenlijk "het hangt er vanaf" :p.

Het voorbeeld hierboven bijvoorbeeld.
#1 is mogelijk een betere strategie als het berekenen van A knetterduur is of lang duurt.
Het hangt er maar vanaf...
 
Ozzie PHP

Ozzie PHP

23/02/2019 00:06:22
Quote Anchor link
>> Het hangt er maar vanaf...

Ook dat is een antwoord hè ;-)

Ik had gedacht dat er misschien een soort van richtlijnen voor waren, als in "genereer een variabele die afhankelijk is van andere variabelen altijd real-time". Maar goed, blijkbaar bestaat zoiets dus niet.

>> Op de scherm van een andere gebruiker dan wellicht?

Nee op het scherm van de gebruiker bedoelde ik. Die slaat dan z'n nieuwe naam op. Gegevens worden gepost en in datzelfde request wordt ook een view getoond waarin nog de oude naam staat. Uiteraard is dat allemaal op te lossen, dat is het probleem niet. Maar dit is dus een vraagstuk in algemene zin ... hoe ga je met dergelijke situaties om.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/02/2019 01:53:37
Quote Anchor link
> Gegevens worden gepost en in datzelfde request wordt ook een view getoond waarin nog de oude naam staat.
Hoe krijg je dat voor elkaar dan?

Net zoals op deze site? Dat verwerking + tonen door elkaar loopt?

Daar zijn wel ontwerpprincipes voor. Scheid alles in aparte acties. Dan heb je dit probleem helemaal niet.

Dit is ook alleen maar verwarrend naar een gebruiker toe. Je hebt net iets aangepast en er verandert ogenschijnlijks niets (direct) :/.

Soms is het antwoord op je vraag gewoon dat je dingen op een andere plek, en op een andere manier, moet oplossen.
Gewijzigd op 23/02/2019 13:06:15 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

24/02/2019 01:53:07
Quote Anchor link
>> Hoe krijg je dat voor elkaar dan?

Dat was dus een voorbeeldje wat ik gaf. Als je onhandig programmeert en in de afhandeling van de post ook meteen een view toont.

Een iets reëler voorbeeld zou kunnen zijn dat je een post afhandelt en in een log bijhoudt dat je gegevens van Pietje hebt aangepast, die echter inmiddels Jantje heet.

Ik wil over dit soort dingen niet hoeven na te denken en heb liever dat het in alle gevallen werkt. Maar goed, ben er denk ik wel uit hoe ik het ga oplossen, dus komt goed.
 
Bart V B

Bart V B

24/02/2019 11:31:36
Quote Anchor link
Quote:
Ik wil over dit soort dingen niet hoeven na te denken en heb liever dat het in alle gevallen werkt.

Mja, op zich dat je dingen in je achterhoofd analyseert natuurlijk maar ik snap totaal het probleem niet.

- Je hebt een setter: $user->setFirstName('Pietje'); veranderd naar $user->setFirstName('Ozzie');
- Je hebt een getter: echo $user->getFullName();.
Dus in dit geval is het dan toch gewoon een lusje SET, POST, redirect, GET. Meer is het niet.

In zo'n geval heb je toch geen probleem, want het werkt. Wat wil je dan nog meer? Volgens mij is dit al een hele standaard aktie.
 
Rob Doemaarwat

Rob Doemaarwat

24/02/2019 13:19:59
Quote Anchor link
Stel in POST:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$user = new \My\User($id); //= "Tijdens het laden van een User class set ik eenmalig de volledige naam"
$user->setFirstName('Ozzie');
//bevestig wijziging
mail($to,$subject,'Beste '  $user->getFullName() . ' ...'); //wordt "Beste Pietje ..." - oeps

Ondanks SET/POSt/redirect/GET toch een probleem.
 
Thomas van den Heuvel

Thomas van den Heuvel

24/02/2019 16:40:58
Quote Anchor link
Sja, maar dat is functionaliteit specifiek die bij die wijziging hoort, dus dan zul je je code daar ook op moeten afstemmen, je kunt niet in alles vantevoren afvangen.

Overigens, die setFirstName() zou dan toch ook waarden van klasse-variabelen /-properties moeten bijwerken? Of een interne refresh moeten forceren ofzo. Het zou vreemd zijn wanneer dit gebeurt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$user->setFirstName('Henk');
echo $user->getFullName(); // Henk Whatever
$user->setFirstName('Piet');
echo $user->getFullName(); // Henk Whatever ????????

Dit lijkt mij dan toch echt een tekortkoming in setFirstName(), en niet zozeer een soort van universeel dilemma waarin methoden niet de goede waarden teruggeven... Zorg gewoon dat die waarden uptodate zijn :p (en uit één bron komen).

Daarnaast zijn objecten call by reference, dus het niet alsof je meerdere instanties hebt van "hetzelfde" User object die vervolgens ineens een eigen leven gaan leiden, tenzij je hele rare dingen doet en/of de principes niet snapt of verkeerd toepast.

En dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
//Tijdens het laden van een User class set ik eenmalig de volledige naam

Bleek dan dus bij nader inzien niet zo'n fantastische ontwerpbeslissing.
Gewijzigd op 24/02/2019 16:46:41 door Thomas van den Heuvel
 
Rob Doemaarwat

Rob Doemaarwat

24/02/2019 17:31:03
Quote Anchor link
... en dat was de vraag ook: doe ik dan 1 of 2 om het wel goed te doen
 
Ozzie PHP

Ozzie PHP

24/02/2019 17:45:29
Quote Anchor link
Thomas van den Heuvel op 24/02/2019 16:40:58:
Overigens, die setFirstName() zou dan toch ook waarden van klasse-variabelen /-properties moeten bijwerken? Of een interne refresh moeten forceren ofzo. Het zou vreemd zijn wanneer dit gebeurt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$user->setFirstName('Henk');
echo $user->getFullName(); // Henk Whatever
$user->setFirstName('Piet');
echo $user->getFullName(); // Henk Whatever ????????

Dit lijkt mij dan toch echt een tekortkoming in setFirstName ...

En daar ging de vraag dus ook precies over ;-)

Rob Doemaarwat op 24/02/2019 17:31:03:
... en dat was de vraag ook: doe ik dan 1 of 2 om het wel goed te doen

Exact!
 
Thomas van den Heuvel

Thomas van den Heuvel

24/02/2019 18:07:21
Quote Anchor link
Ah.

Met 1) introduceer je zelf allemaal extra administratie omdat je in wezen een kopie trekt van originelen die wellicht onderweg kunnen wijzigen, met 2) genereer je elke keer opnieuw op basis van één rechtstreekse bron een gewenst gecombineerd formaat.

Behoeft dit echt enige uitleg?
 
Ozzie PHP

Ozzie PHP

24/02/2019 18:25:09
Quote Anchor link
>> Behoeft dit echt enige uitleg?

Thomas ik stel een vraag niet voor Jan met de korte achternaam. Het genereren van iets kan een wissel op je performance trekken (ik zeg 'kan' ik zeg niet dat het zo is).

Waar ik naar benieuwd was, is of er bepaalde 'technieken' of 'principes' zijn hoe je met zoiets omgaat.

Wat het effect is van bepaalde oplossingen snap ik heel goed.

Jij duidt hierboven oplossing 2 als de beste, maar als dat had betekent dat ik uit 10 databases informatie had moeten verzamelen en 500 queries had moeten afschieten, wat het niet zo'n goede oplossing geweest. Ja Thomas, dat is inderdaad een compleet onzin-scenario, maar ik probeer je duidelijk te maken waarnaar ik op zoek was. Namelijk of er in bepaalde omstandigheden (afhankelijkheid tussen variabelen) bepaalde richtlijnen/technieken/patterns zijn die je kunt volgen.

Volgens mij zien we hier op dit forum om elkaar iets te leren en niet om elkaar de les te nemen ;-)
 
Rob Doemaarwat

Rob Doemaarwat

24/02/2019 19:06:25
Quote Anchor link
Zelf zit daar m'n grens zo'n beetje: moet ik in de getter de database of een file raadplegen, dan ga ik 'm opslaan. Ik doe dat dan meestal zo:
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
<?php
class Foo{

  protected $_bar = null;

  public function getBar(){
    if($this->_bar === null){
      $this->_bar = "whatever"; //als het maar geen null is, dan expliciet false maken ofzo
    }

    return $this->_bar;
  }


  public function ietsAndersWatBarBeinvloed(){
    $this->_bar = null;
    //doe ding
  }

}


?>
 
Ozzie PHP

Ozzie PHP

24/02/2019 21:11:47
Quote Anchor link
@Rob,

Gruwelijk grappig ... dat was de oplossing die ik zelf inmiddels ook had bedacht :-D
 
Thomas van den Heuvel

Thomas van den Heuvel

24/02/2019 21:43:44
Quote Anchor link
> Jij duidt hierboven oplossing 2 als de beste, maar als dat had betekent dat ik uit 10 databases informatie had moeten verzamelen en 500 queries had moeten afschieten, wat het niet zo'n goede oplossing geweest.
Dan heb je inderdaad hele andere problemen/uitdagingen.

Maar wanneer je een triviaal voorbeeld geeft, verwacht dan ook een triviaal antwoord.

Dit is wederom/nog steeds zo'n "het hangt er vanaf" vraag. De oplossing is afgestemd op de problematiek, daar is geen universeel recept voor want de omstandigheden zijn niet universeel.

En als je dan toch zo in vakjes wilt denken verdiep je dan eens in design patterns. Maar zelfs die bieden dus geen concrete oplossingen...

> maar ik probeer je duidelijk te maken waarnaar ik op zoek was
Dit komt niet echt goed uit de verf naar mijn mening. Ik weet niet waar je naar op zoek bent.

> Namelijk of er in bepaalde omstandigheden (afhankelijkheid tussen variabelen) bepaalde richtlijnen/technieken/patterns zijn die je kunt volgen.
Noem eens wat concrete omstandigheden dan. Ik denk dat het aanhouden van één bron en het niet (eindeloos) kopiëren van data je al een heel eind op weg helpt.

Op het moment dat deze data wijzigt (state change) moet er op een of andere manier een refresh worden afgedwongen. Dit bereik je weer makkelijk door in eerste instantie methoden (en pagina's) maar één ding tegelijkertijd te laten doen zodat je dit allemaal kunt compartimenteren. Wanneer je een pagina aanroept dan dient er ook altijd maar één actie tegelijkertijd te worden uitgevoerd. Zo houd je alles netjes gescheiden. Het is een geheel aan maatregelen die je kunt nemen die ervoor zorgen dat alles in goede banen loopt, maar dit is dus een optelsom.
Gewijzigd op 24/02/2019 21:52:54 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

24/02/2019 22:20:08
Quote Anchor link
Ik snap wel wat je bedoelt hoor, maar mijn vraag was in algemene zin hoe je met een bepaald probleem omgaat. Eén actie per pagina-aanroep is nu iets wat jij noemt en vroeger was dat normaal. Maar tegenwoordig is er bijvoorbeeld ajax. Zo zullen er bijv. best websites zijn die een formulier/datawijziging via ajax laten verlopen. Dan wijzig je je naam naar iets anders, maar de rest van de pagina wijzigt niet.

Naja, anyhow ... ik dacht dat er wellicht een stelregel was voor dit soort situaties, maar die is er dus klaarblijkelijk niet. Weer iets geleerd in ieder geval.
 
Thomas van den Heuvel

Thomas van den Heuvel

25/02/2019 00:08:03
Quote Anchor link
Euh, het klassieke schaakspel van HTTP (request-response) is natuurlijk iets compleet anders dan een AJAX-driven applicatie...

Net zoals bij een onderzoek is het zaak dat je het onderzoeksgebied afbakent in je probleemstelling. Dit zodat je binnen een duidelijk gedefinieerd domein ook uiteindelijk iets concreets kunt bestuderen en daar dan vervolgens zinnige conclusies aan kunt verbinden.
 
Ozzie PHP

Ozzie PHP

25/02/2019 00:18:53
Quote Anchor link
>> Euh, het klassieke schaakspel van HTTP (request-response) is natuurlijk iets compleet anders dan een AJAX-driven applicatie...

Yup, maar die zaken gaan wel steeds vaker door elkaar lopen.

Anyhow ... ik kan weer vooruit ;-)
 

Pagina: 1 2 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.