Praktisch voorbeeld public/private/protected

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

Java Developer

Functieomschrijving Are you an experienced Java Developer who wants to be challenged? Then this is your job! As a Java Developer, you are co-responsible for building custom applications within our extensive IT landscape. Development takes place on both the back-end side (Spring/JEE). Together with the IT department, you are responsible for the daily adjustments and expansions of our IT systems. In addition, you will work in small scrum teams using the Agile methodologies. Besides the realization of our in-house systems, you are responsible for the roll-out of the application (version) as well as the operational support after going live. Team

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Roosendaal, ontwikkel je als PHP Developer niet alleen webapplicaties, maar ben je verder ook gefocust op het continu inspelen op nieuwe trends en ontwikkelingen m.b.t software development. Naast het bouwen van webapplicaties, ontwikkelen zij ook webshops en websites voor gave opdrachtgevers! Wat ga je doen? Het schrijven van schone en efficiënte codes volgens het Symfony framework; Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het Symfony framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

Lead javascript developer Node.js React

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

VB.NET developer

Functie Het development team waar jij in terecht komt bestaat uit twee ervaren software developers. De directeur/eigenaar is tevens één van deze developers. Jij werkt direct samen met jouw werkgever en kan dan ook veel kennis en ervaring bij dit bedrijf op doen. Als team zijn jullie verantwoordelijk voor de kantoorapplicatie die deze organisatie aanbied in een niche markt. Het team is op dit moment actief bezig met een migratie waarbij het eindstation eindigt in een C# .NET omgeving. Echter is een deel van de software al geschreven in C# .NET. Hierbij is gebruik gemaakt van C# .NET, CSS, HTML,

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van Software Developer! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van ervaren

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Programmeren van zelflerende robots Werken op kantoor en testen in de bedrijfshal Je krijgt verantwoordelijkheid, vrijheid en je mag werken naar eigen inzicht De organisatie Hier ga je aan de slag Een bedrijf dat innovatieve robottoepassingen ontwerpt en bouwt voor onder andere de staal industrie, energie- bouw- en agrarische sector. De robots die vaak in combinatie met diverse randapparatuur geleverd worden vormen een totaaloplossing voor de klant. Dit zijn klanten over de hele wereld, van België en Duitsland tot China, India, maar ook in Nederland. Projecten waar momenteel aan wordt

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

Back-end developer

Dit ga je doen Development d.m.v. XQuery, JSON/XML en REST API's; Ontwikkelen aan een tof en complex zorgplatform; Koppelingen maken met de NoSQL database; Testen en documenteren van de ontwikkelde functionaliteiten; Samenwerking met andere front- en back-end ontwikkelaars. Hier ga je werken Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met o.a.XQuery en Vue.JS of daarin graag zou willen ontwikkelen. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot jouw

Bekijk vacature »
Lorre Mertens

Lorre Mertens

23/08/2015 17:14:04
Quote Anchor link
Beste forummers,

Ik ben OOP aan het leren. Ik snap de basis nu, maar kan me moeilijk inbeelden hoe het praktisch gebruikt kan worden.

Kan iemand een praktisch voorbeeld geven van hoe een visibility property bijvoorbeeld nuttig kan zijn?

Mvg
 
PHP hulp

PHP hulp

21/11/2024 16:23:39
 
- Ariën  -
Beheerder

- Ariën -

23/08/2015 17:21:11
Quote Anchor link
Lees de OOP-tutorial van phptuts.nl eens door.
 
Lorre Mertens

Lorre Mertens

23/08/2015 17:32:05
Quote Anchor link
Dat heb ik gedaan, een goede tutorial.

Maar; het voorbeeld is daar private $username. Waarom zou je ervoor willen zorgen dat $username niet meer direct te benaderen is? Welk voordeel levert dat op? Beveiliging?
Gewijzigd op 23/08/2015 17:32:13 door Lorre Mertens
 
Wouter J

Wouter J

23/08/2015 18:04:50
Quote Anchor link
Binnen je class wil je een gecontroleerde omgeving hebben. Stel we hebben een BlogPost class die een property $tags heeft, met daarin een array van Tag classes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class BlogPost
{
    public $tags = array();

    // ...
}
?>


Hij is nu publiek, dus niks weerhoud ons ervan om hier lekker andere waardes in te gooien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$blogPost
= new BlogPost('De titel', $content);
$blogPost->tags[] = 'een string mag niet';
$blogPost->tags[] = $blogPost; // een blog post die zichzelf als tag heeft mag ook niet echt...
?>


We hebben dus geen gecontroleerde omgeving meer binnen deze class. Wanneer we de property nu protected maken hebben weer een, voorlopig, gecontroleerde omgeving:
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
<?php
class BlogPost
{
    protected $tags = array();

    public function addTag(Tag $tag)
    {

        // ... we kunnen hier bijv. ook controleren of de tag niet
        // al was toegevoegd

        $this->tags[] = $tag;
    }
}


$post = new BlogPost('De titel', $content);
$post->addTag(new Tag('phphulp'));
$post->addTag('een string'); // Error: Expected instance of Tag, got "string"
?>


We kunnen nu echter nog steeds de class extenden en verkeerde waardes toevoegen, dus maken we er private van zodat we erg echt zeker van zijn dat addTag() de enige manier is om tags toe te voegen aan de BlogPost.
 
Lorre Mertens

Lorre Mertens

23/08/2015 18:20:42
Quote Anchor link
Bedankt voor de heldere uitleg Wouter, het is nu veel duidelijker.
 

23/08/2015 22:35:28
Quote Anchor link
Ik vind PHP in vergelijking met andere talen een onhandige taal om de voordelen van OOP uit te leggen.

Het 'probleem' van een web-omgeving is dat PHP telkens eenmalig reageert op een verzoek van een browser. Dat is nogal procedureel en 'immer gerade aus'. Dan ben je ook nog eens de enige ontwikkelaar, en is het eigenlijk best wel handig dat je overal bij kunt. Private variabelen is dan gewoon onzin. Waarom zou je objecten in het geheugen vasthouden? Geen idee. Lukt ook prima zonder.

Als je deze weg blijft volgen loop je vanzelf tegen een probleem aan, ondanks hergebruik van code via include en require(_once) statements. Afhankelijk van hoe groot je programma wordt, wordt je code steeds meer spaghetti omdat je voor elk scherm weer andere code moet maken. Je kunt alleen nog maar snelheidswinst in programmeren krijgen door je eerdere code te copy-pasten. En als je dan bugs aan de ene kant gaat oplossen ontstaan ze weer aan de andere kant en vice versa. Het schiet niet op, je bent vastgelopen in je eigen denkwerk.

Om code uit elkaar te houden en gestructureerd (als een soort adresboek in familieboomstamvorm) is het concept van OOP geintroduceerd. Wat je dan doet is je code opdelen in zo klein mogelijke stukjes. Dat heeft als voordeel dat die stukjes heel overzichtelijk en foutvrij worden. Je zet die stukjes in een functie (methode) en je groepeert functies die samenwerken in een object. Als je de methoden benoemt naar wat ze doen, kan je je eigen code als een soort pseudo-code lezen, en wordt het voor jezelf volstrekt duidelijk wat de code precies in welke volgorde doet. Documentatie van code heb je dan bijna niet meer nodig.

Om variabelen binnen een naamruimte (namespace ;) qua naam en inhoud per functie gescheiden te houden, heb je een variabele scope met de keuze om variabelen private te houden. Zo van: 'die variabele is niet bedoeld om direct door andere code veranderd te worden', want dan weet je het op een gegeven moment zelf ook niet meer.

Naast dan OOP jezelf ontlast van de internals van je eigengeschreven code, geldt dat ook voor jou met code van anderen en andersom; je hoeft alleen nog maar elkaars API aan te roepen en je bent klaar. Dat vergroot de schaalbaarheid en onderhoudbaarheid van de code enorm. Daarbij worden de objecten/API's een soort zelfbedachte LEGO-stukjes, die niet als spaghetti maar met nopjes aan elkaar hangen, je kunt de code eenvoudig vervangen voor andere code die dezelfde nopjes heeft.

De praktische voorbeelden volgen vanzelf als je code schrijft.
Gewijzigd op 23/08/2015 22:37:12 door
 
Lorre Mertens

Lorre Mertens

23/08/2015 22:50:42
Quote Anchor link
Bedankt An tje, erg waardevol antwoord!
 



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.