o.. oo... oop!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Java Developer

Functieomschrijving Met jouw expertise zorg je als fullstack java developer voor de meest plezierige en efficiënte klant ervaring. Met jouw state-of-the-art-systemen verbeter je onze business en maak je echt impact! Want als je in ons tech team werkt, houd je jezelf en Nederland in beweging. Wij zijn continu bezig onze business en processen te optimaliseren, zodat we onze klanten en kandidaten meer gemak, snelheid en transparantie kunnen bieden. Impactvolle tech, daar doen we het voor. wat ga je doen? Samen met het team ontwikkelen van user stories op de backlog; Begeleiden van (meer junior) collega’s; Samenwerken met andere online teams;

Bekijk vacature »

IT-traineeship junior software developer

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

Scala Developer Security

Bedrijfsomschrijving Voor een dynamische en snelgroeiende organisatie in Den Haag zijn wij op zoek naar een back-end developer met interesse in security vraagstukken. Deze organisatie richt zich op het ontwikkelen van een online platform waar persoons- en bedrijfsgevoelige informatie veilig kan worden uitgewisselt en opgeslagen. Binnen de organisatie voegt iedereen vanuit zijn eigen expertise iets toe en staat zelfsturing hoog in het vaandel. Zij werken via het domain driven design principe waarbij zij binnen het betreffende domein met alle disciplines sparren over de inrichting van het platform en het oplossen van problemen. Het platform wordt ontwikkeld in Scala binnen een

Bekijk vacature »

Java Software Ontwikkelaar

Heb jij ervaring met applicatieontwikkeling, testen en onderhoud van business-kritische applicaties? Wil je graag het verschil maken voor onze projecten bij de Nederlandse overheid, sociale zekerheid en gezondheidszorg? Wil je deel uitmaken van een zeer succesvol team? Wat ga je doen? De wereld om ons heen verandert in snel tempo. We zien dat technologie een steeds belangrijkere rol speelt in onze samenleving. CGI bouwt innovatieve oplossingen voor deze veranderende wereld. Met jouw team bouw je aan slimme oplossingen voor de digitale overheid, onder andere voor onze opdrachtgevers in de sociale zekerheid en gezondheidszorg. Als ervaren Software Ontwikkelaar houd je je

Bekijk vacature »

PL/SQL Developer Nieuwbouw Internationaal

Bedrijfsomschrijving Het bedrijf is internationaal en heeft vestigingen in meer dan 30 landen. Vanuit de afdeling in Utrecht worden 15 landen bediend. Op dit moment zijn er 2200 gebruikers van het platform. In de toekomst zullen daar nog een aantal landen en een hoop gebruikers bijkomen. Zodra jij bij dit bedrijf naar binnen stapt, zal je direct op merken dat het een professioneel bedrijf is. Des al niet te min kun je bij iedereen naar binnen lopen en staat iedereen je met open armen op te wachten. Verder zal je te maken krijgen met korte communicatielijnen en kleine agile achtige

Bekijk vacature »

Front-end Developer Vue.js Meewerkend voorman

Bedrijfsomschrijving Betreffende organisatie is gevestigd in de regio van Lelystad en is al ruim 20 jaar lang bedreven in het ontwikkelen en aanbieden van diverse communicatiemiddelen aan de consumentenmarkt. Hierin staan innovatie, optimale klantbeleving en een passie voor technologie centraal. Ruim 100 medewerkers staan dagelijks klaar om te zorgen voor een optimale klantbeleving en optimalisatie van het aanbod. Om diverse businessprocessen binnen de organisatie vloeiend te laten verlopen is software ontwikkeling van essentieel belang. Binnen de organisatie zijn drie scrumteams dagelijks bezig met het beheer en de doorontwikkeling van het applicatielandschap. Zij werken aan verschillende projecten om de beleving van

Bekijk vacature »

Senior Java Developer

Bedrijfsomschrijving Als Senior Java Developer kom je te werken bij een internationaal gerenommeerd onderzoeksinstituut. Dagelijks is dit instituut verantwoordelijk voor de juiste samenwerking, toegankelijkheid en communicatie voor circa 9000 interne gebruikers. In een team van elf ontwikkelaars ben je als Senior Java Developer verantwoordelijk voor het ontwikkelen van functionele ontwerpen naar technische oplossingen. Deze projecten bestaan o.a. projecten zoals het implementeren van Elastic Search en het koppelen van CMS. Ook fungeer je als vraagbaak voor je collega’s op het gebied van backend softwareontwikkeling. Daarnaast denk je graag mee op het gebied van architectuur qua mogelijke oplossingen en innovatie. Momenteel zijn

Bekijk vacature »

DevOps Engineer

DevOps Engineer bij de Nationale Politie Werken bij de Politie op basis van detachering Voor onze opdrachtgever, de Nationale Politie in Odijk, zijn we met spoed op zoek naar DevOps Engineers o.b.v. detachering. Binnen het team Werkplekken, Workspace & Innovation dragen ze zorg voor de inrichting en beheer van de fysieke en virtuele werkplekken (endpoints) die door de politie organisatie gebruikt worden. Dit doe je in de grootste werkplek omgeving van Nederland. Wat zijn jouw verantwoordelijkheden en werkzaamheden? Doelstelling: Als DevOps Engineer help je bij het maken en verbeteren van de benodigde werkplek en backend onderdelen op basis van het

Bekijk vacature »

.NET Ontwikkelaar Medior

Bedrijfsomschrijving Je komt als Ontwikkelaar te werken bij een organisatie die is gespecialiseerd in industriële automatiseringsoplossingen. De organisatie heeft al ruim 45 jaar ervaring met optimalisatie van processen binnen de industriële sector. De organisatie kenmerkt zich als innoverend, meedenkend en informeel. Binnen het team heerst er een positieve teamspirit met een gezonde dosis ondernemerschap en humor. Werk moet immers ook leuk zijn, toch? Je zult als .NET Developer gaan werken aan verschillende projecten om software te ontwikkelen voor klanten in de logistieke sector. Je zult zowel met het team als zelfstandig ontwikkelen. Je houdt je bezig met het opstellen van

Bekijk vacature »

Front-End Developer Design System

You work together with other development teams and designers to improve the webshop on a daily basis to make our customers happy. How do I become a Front-End Developer Design System at Coolblue? At Coolblue, we’re convinced that Design Systems help us build effective customer journeys. The dedicated Design System team collaborates with designers and developers alike to build a collection of tried and true building blocks, patterns & guidelines. You’ll look at the user-friendliness of our webshop and are convinced that great design should be accessible to all. You are passionate about developing consistent and effective User Experiences; you

Bekijk vacature »

Medior Fullstack .NET developer maatwerk applicati

Bedrijfsomschrijving Deze informele organisatie heeft een brede klantenkring en ze staan erg goed bekend in de regio. Ze ontwikkelen maatwerkapplicaties voor klanten en onderhouden ze ook. Ze zijn Microsoft partner en je collega developers houden graag ook zelf de nieuwe technieken in de gaten. Ze hechten veel waarde aan het leveren van kwaliteit, ook als dit wat meer tijd in beslag neemt en dus minder winst oplevert. Het is hier fijn werken omdat er, naast een goede sfeer, ook een goede balans is tussen werk en privé. Functieomschrijving Je gaat in teamverband werken aan maatwerk applicaties voor een diversiteit aan

Bekijk vacature »

Java / Hippo developer

Functieomschrijving Randstad is een pionier in de hr-dienstverlening. Sinds de oprichting in 1960 zijn wij uitgegroeid tot dé grootste hr-dienstverlener in de wereld. Onze missie is om de wereld van werk te ontwikkelen. Dit doen wij voor iedereen die met werk te maken heeft: onze klanten, kandidaten, medewerkers en de maatschappij als geheel. In de hele wereld, en zeker ook in onze thuismarkt Nederland. Door onze passie voor mensen te combineren met de kracht van de hedendaagse technologie en innovatie, ondersteunen we mensen en organisaties bij het realiseren van hun ware potentie. Dit noemen we human forward. Randstad Groep Nederland

Bekijk vacature »

Full Stack Java Developer

Functieomschrijving Met jouw expertise zorg je als java developer voor de meest plezierige en efficiënte klant ervaring. Met jouw state-of-the-art-systemen verbeter je onze business en maak je echt impact! Want als je in ons tech team werkt, houd je jezelf en Nederland in beweging. Wij zijn continu bezig onze business en processen te optimaliseren, zodat we onze klanten en kandidaten meer gemak, snelheid en transparantie kunnen bieden. Impactvolle tech, daar doen we het voor. wat ga je doen? Met jouw slimme en gave oplossingen breng je mensen en werk dichter bij elkaar. Samen met jouw team uiteraard. Binnenstromende functionele vragen

Bekijk vacature »

Mendix Consultant / Developer

Bedrijfsomschrijving De organisatie begeeft zich in de retail branche en focust zich op de tak mobiliteit. De organisatie telt ongeveer 3000 medewerkers die verdeeld zijn over meerdere vestigingen in het land. Een deel in Brabant en een deel in de Randstad. Voor deze functie kan er als standplaats worden gekozen tussen de regio Utrecht of regio Breda. Onlangs heeft de organisatie besloten Mendix te gebruiken als nieuwe basis voor haar gehele applicatie omgeving. De stabiliteit, flexibiliteit en gebruiksvriendelijkheid van Mendix dragen bij aan de innovaties van de organisatie. Op dit moment een groot aantal processen en applicaties herbouwd in Mendix.

Bekijk vacature »

Full Stack .Net Ontwikkelaar - Regio Rotterdam

Heb jij ervaring met applicatie ontwikkeling, testen en onderhoud van business-kritische .NET applicaties? Wil je graag het verschil maken voor onze projecten bij de Nederlandse overheid, sociale zekerheid en gezondheidszorg? En wil je deel uitmaken van een zeer succesvol team? Wat ga je doen? Als ervaren Full Stack .NET Software Developer ga je werken in een team dat zich bezighoudt met het opnieuw bouwen van bestaande en nieuwe toepassingen met een belangrijke maatschappelijke relevantie waarbij digitale toegankelijkheid, security en informatiebeveiliging belangrijke aandachtspunten zijn. Samen ben je verantwoordelijk voor het realiseren en opleveren van de door de product owner gevraagde functionaliteiten.

Bekijk vacature »
Ozzie PHP

Ozzie PHP

28/01/2011 14:35:29
Quote Anchor link
Net even deze tutorial doorgelezen: http://www.phphulp.nl/php/tutorial/overig/oop-beginnershandleiding-php5/701/inleiding/1841/

Als mijn vragen niet zo helder zijn dan komt dat omdat ik informatie aan het processen ben en hier en daar was sterretjes zie... * * * :-)

Hier dan even wat vragen:

- Is het zo dat je alles in zoveel mogelijk objecten moet stoppen? Dus stel je hebt een class / object huis, dan heb je bijv. ook een class 'kamer', 'deur', 'raam', 'muur' enzovoorts en ook een class 'slaapkamer' en 'woonkamer' die de class kamer extenden. Is dat correct? Je krijgt dan wel heeeel veel classes lijkt mij.
- Als je zo heel veel classes hebt plaats je die dan allemaal los in je library, of zet je classes die bij elkaar horen in een aparte folder?
- Is het gebruikelijk om meerdere classes in 1 bestand te zetten? Dus stel je noemt het bestand house.php en dat je daar dan een class 'room', 'door', 'window' etc. in zet? Of toch gewoon alle classes als een los bestand?
- Hoe strict is de naamgeving? Ik doe het namelijk anders. Ik schrijf een class naam als volgt met hoofdletters voor ieder nieuw woord, bijvoorbeeld 'MijnClass' en het bestand zou ik dan gewoon mijnclass.php noemen. In variabelen gebruik ik juist kleine letters en een underscore, bijvoorbeeld '$kamer_modern'. En een underscore voor een protected / private variabele of functie doe ik nooit (is dat wel aan te raden)?
- In de tutorial ging het over het maken van een tabel, en daarbij ook het aanmaken van een tabelcel. Je hebt dan een class Cell en bijvoorbeeld een class BorderCell die de class Cell extend. De class BorderCell zet een randje om de cel heen. Nu vraag ik me af... je zou ook 1 class Cell kunnen maken en dan als type 'border' kunnen meegeven, dus $cell = new Cell('border'). Wat is de beste manier?

Een heleboel vragen... ik ben benieuwd of iemand dit kan ophelderen!
Gewijzigd op 28/01/2011 14:37:33 door Ozzie PHP
 
PHP hulp

PHP hulp

19/04/2021 04:55:53
 
Pim -

Pim -

28/01/2011 14:41:37
Quote Anchor link
1: Ja. Hoe meer klassen hoe meer abstractie hoe beter. Soms wil je echter moeite besparen door niet alles te delegeren aan aparte klassen, maar begin maar met gewoon echt 1 klasse, 1 taak.
3: Nee
2/4: Klassen kan je indelen. Vaak gaat dit met de naam. Denk aan Kamer_Woon, Kamer_Bad oid. Kamer zit dan in je hoofdmap (Kamer.php) en Woon als Woon.php in de map Kamer. Deze naamgeving gebruiken de meeste frameworks en raad ik je ook aan. Heel strict is dit echter niet.
5: Dit hangt erg van het verschil tussen de items. Als ze dus meer dan alleen de naam verschillen, kan je beter een aparte klasse maken. Als het enige verschil dus die naam is, niet. De BorderCell heeft dus een eigenschap (bijv borderwidth) die andere cellen niet hebben, daarom moet het in een aparte klasse.
 
Ozzie PHP

Ozzie PHP

28/01/2011 18:15:24
Quote Anchor link
Hoi Pim,

Dankjewel voor je uitleg. Ik heb weer wat bijgeleerd. Bij punt 2/4, begrijp ik het goed dat je eigenlijk iedere class gewoon in de library zet, maar alle classes die een andere class extenden in een aparte map die dezelfde naam heeft als de class die ze extenden? En geef je met die underscore aan dat de class in een aparte folder staat?

Bij punt 5 zou je toch ook kunnen zeggen dat border een property van cell is? En dat die property standaard op 0 staat? Ik probeer een beetje het principe te begrijpen wat er achter zit.
 
Pieter Jansen

Pieter Jansen

28/01/2011 18:18:30
Quote Anchor link
Ligt eraan wat je zelf wil. Over het algemeen is het wel raadzaam om een methode te hanteren die jou het beste uit komt, maar als je weet dat er ook andere mensen mee gaan werken, kun je het beste de "best practices" hanteren zoals je die gelezen hebt. Overigens, elk framework heeft z`n eigen werkwijze dus denk niet dat alle frameworks etc een en dezelfde stijl hanteren.

Als je zelf iets schrijft, geef vooraf aan hoe je dingen gaat doen, en hou je aan die regels. Het is niet ontzettend belangrijk hoe je dingen noemt zoals het voor de mensen die er mee moeten werken maar wel duidelijk is.

Ook over je mappenstructuur, hangt helemaal van jezelf af, maar als je echt een huis als voorbeeld neemt, zou ik ( persoonlijk ) in mappen werken. Anders krijg je op een gegeven moment echt heel veel files in je map.
 
Ozzie PHP

Ozzie PHP

28/01/2011 18:23:20
Quote Anchor link
Hoe zou je dat in het voorbeeld van het huis doen? Net als Pim zegt in de library room.php zetten en dan een map Room in de library zetten waar je dan bijv. bath.php en living.php zet? Of zou jij het anders aanpakken?
 
Pieter Jansen

Pieter Jansen

28/01/2011 19:07:25
Quote Anchor link
nee hoor, ongeveer op die manier. Ik zelf hou altijd super klasse zelf ook in de map. Om naamgevingen etc niet door elkaar te houden.

dus:

House
class.House.php
Rooms
class.Room.php
LivingRoom
class.LivingRoom.php
etc etc
BathRoom
class.BathRoom.php
etc etc
Gewijzigd op 28/01/2011 19:25:07 door Pieter Jansen
 
Ozzie PHP

Ozzie PHP

28/01/2011 19:21:58
Quote Anchor link
Ik volg je opbouw niet helemaal... wat hoort bij wat?
 
Pieter Jansen

Pieter Jansen

28/01/2011 19:32:27
Quote Anchor link
Tabs en spaties werken niet heh. Maar ik zou dus een mappen structuur aanhouden waar je elke sub klasse ook in z`n eigen map zet. Dit om naamgeving problemen etc te voorkomen. Als je dus class.House.php hebt, zou ik die in de map House plaatsen. Een sub klasse Room zou ik dan ook in een map binnen Room zetten. Dus dan krijg je House/Room/ en daar dan de class.Room.php. Als je nu een livingRoom hebt, plaats je die binnen de map Room. Dus: House/Room/LivingRoom/ en daar dus ook de klasse class.LivingRoom.php.

Stel nou dat je objecten hebt welke voor meerdere subklasses geldt, bijvoorbeeld een Lamp, dan kun je die onder Room zetten, of desnoods onder House. Immers elke room en sub klasses kunnen een lamp krijgen. Maar die mag ook onder House vallen, je kunt ook lampen aan de buitenkant van je huis hebben. Die valt dus onder /House/
Gewijzigd op 28/01/2011 19:33:12 door Pieter Jansen
 
Ozzie PHP

Ozzie PHP

28/01/2011 19:40:19
Quote Anchor link
"Tabs en spaties werken niet heh".
Even tussen de code tags zetten ;)

Maar wat nu als je Lamp ook wil gebruiken voor iets wat niet bij het huis hoort? Bijvoorbeeld bij auto?
 
Pieter Jansen

Pieter Jansen

28/01/2011 19:44:27
Quote Anchor link
Dan moet je dus een niveau hoger. Wat je ook kunt doen is een interface gebruiken voor de Lamp. Of ( wellicht beter ) een abstracte klasse. Dit kun je als aparte groep hanteren.
 
Ozzie PHP

Ozzie PHP

28/01/2011 19:46:46
Quote Anchor link
jemig... ingewikkeld allemaal...
 
Hendrik de Jager

Hendrik de Jager

01/02/2011 21:45:09
Quote Anchor link
Ozzie PHP op 28/01/2011 19:46:46:
jemig... ingewikkeld allemaal...

Zoals gezegd, werk zoals je zelf het mooiste/makkelijkste vind, mocht je voor een bedrijf gaan werken vertellen die je wel hoe hun structuur in elkaar steekt.

Ga je met een groepje iets starten(Lees: 3-4 mensen) kan je met elkaar overleggen welke structuur.
 
Pim -

Pim -

01/02/2011 22:56:34
Quote Anchor link
Wat je wel het beste kan doen, is de delen in de naam laten corresponderen met de mapstructuur. Anders zijn klassen onvindbaar in de mappen.

Punt 5:
Je hebt wel gelijk, want elke klasse kan een border hebben. Een beter voorbeeld is:
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
abstract class Organisme {
    protected $leeft = true;
    public function gaDood() { $this->leeft = false; }
    public function leeft() { return $this->leeft; }
}


class Dier extends Organisme {
    protected $loopt = false;
    public function gaLopen() { $this->loopt = true; }
    public function staStil() { $this->loopt = false; }
    public function loopt() { return $this->loopt; }
}


class Plant extends Organisme {
    protected $doetFotosynthese = true;
    public function belicht() { $this->doetFotosynthese = true; }
    public function belichtNiet() { $this->doetFotosynthese = false; }
    public function doetFotosynthese() { return $this->doetFotosynthese; }
}

?>

Een wat abstract voorbeeld, maar ik hoop dat je het begrijpt. Hoewel zowel dieren als planten organismen zijn en dus de gedeelde eigenschappen van organismen hebben, kunnen dieren geen fotosynthese doen en planten niet lopen. Daarom zijn het verschillende klassen.

'Organisme' is abstract, omdat het alleen (in dit voorbeeld) als dier of als plant bestaat, niet als 'organisme'. Een 'dier' bestaat natuurlijk ook niet, maar je snapt het voorbeeld vast.
 
Ozzie PHP

Ozzie PHP

01/02/2011 23:02:09
Quote Anchor link
thanks voor je toelichting Pim. Lijkt me inderdaad logischer dat je dan border als onderdeel van een cel neemt in plaats van als nieuwe class.
 

01/02/2011 23:14:02
Quote Anchor link
Sowieso, een border kan je ook weer als aparte klasse zien...
(Beetje offtopic, maar goed.)
 
Ozzie PHP

Ozzie PHP

01/02/2011 23:16:54
Quote Anchor link
Maar je gaat voor zoiets "kleins" als een border toch niet een aparte class maken? Of wel??
 

01/02/2011 23:21:47
Quote Anchor link
Ik weet niet in wat voor context je denkt. Maar als ik aan html denk, dan zijn er genoeg elementen die gebruik kunnen maken van een border.
Of het klein is maakt niet zoveel uit. Je scheid dan wel mooi alles. Zie ook low coupling high cohesion en GRASP[/google].
Ook moet je maar eens naar bijvoorbeeld de
Dimension klasse van java kijken. Die doet ook niet veel...
(Java wordt toch gezien als de taal om OOP te leren.)
 
Ozzie PHP

Ozzie PHP

01/02/2011 23:23:49
Quote Anchor link
oke... vage shit... krijg je wel erg veel bestanden op deze manier :-/
 
Niek s

niek s

02/02/2011 00:32:18
Quote Anchor link
echt super grappig die topic title :D
zo met die letters, en dan steeds 1 meer :D
 

02/02/2011 00:33:05
Quote Anchor link
Niek s op 02/02/2011 00:32:18:
echt super grappig die topic title :D
zo met die letters, en dan steeds 1 meer :D


LOOOOOOOL
 



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.