o.. oo... oop!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Apex Developer/Ontwikkelaar in Zuid-Holland

Functieomschrijving Als Apex enthousiast ben jij een welkome versterking voor dit team dat momenteel 4FTE groot is op de IT-afdeling. Je komt zodoende terecht in een hecht team ben met mensen die graag met Apex en ook met Oracle werken. Binnen deze functie ben je verantwoordelijk voor het achterhalen van de juiste behoeften bij de interne klanten. Daarnaast werk je aan het onderhouden, door ontwikkelen en nieuwbouw van maatwerk applicaties. Voor 80% bestaat het werk uit APEX en voor 20% uit PL/SQL. Daarbij kom je te werken binnen een gedreven team waarbij de communicatielijnen kort zijn en er zeker ook

Bekijk vacature »

Allround IT support specialist

We gaan ons IT team uitbreiden en daarom zijn we op zoek naar een nieuwe collega voor onze vestiging in Eindhoven. Ben jij degene die onze designers, product designers, engineers en collega’s van Office in Eindhoven en Ypenburg op een persoonlijke manier wil ontzorgen op het gebied van IT en ben je altijd op zoek is naar de beste mogelijke oplossing? Dan zijn wij op zoek naar jou! Hoe ziet jouw dag eruit? Geen dag is hetzelfde! Je bent als IT support specialist het aanspreekpunt voor IT gerelateerde vragen en je vind het leuk om je collega’s te helpen en

Bekijk vacature »

Senior fullstack C# ontwikkelaar gezocht, academis

Ben je als .NET ontwikkelaar op zoek naar een (nieuwe) analytische uitdagende baan? Een baan waar je te maken krijgt geavanceerde wiskundige modellen? Dan zou deze organisatie je dit kunnen bieden. Voor een organisatie in Delft zijn we momenteel op zoek naar .NET ontwikkelaar met een academisch niveau en kennis of affiniteit met het bouwen van modellen, dataprocessen en applicaties in .NET C#. De organisatie houdt zich bezig met het leveren van zeer specifieke diensten voor de financiële sector en doet veel zaken met grote financiële instellingen. Het gaat hier om een kleinere organisatie van circa 15 mensen waarvan 5

Bekijk vacature »

ABAP Developer

Functieomschrijving Heb jij de nodige ervaring met ABAP en ben jij toe aan een nieuwe uitdaging? Werk je graag in een internationaal bedrijf met een informele sfeer en flexibiliteit? Dan is deze vacature iets voor jou! Je richt je op SAP development werkzaamheden die voort komen uit optimalisatie-, migratie-, integratie- en innovatie trajecten; Je werkt met o.a. ABAP Eclipse, OOP, Webservices en HANA; Je hebt nauw contact met de functionele SAP specialisten om de wensen helder te krijgen waarna je dit vertaalt naar de technische oplossing; Je werkt in een Agile / Scrum werkomgeving; Je adviseert de organisatie op jouw

Bekijk vacature »

SAP Developer

Discipline Information Technology Location Venlo (NL) Hours a week 40 Our SAP Developer is a team player vidaXL is a rapidly growing international organization where IT plays a key part. SAP is a crucial component of vidaXL’s extensive IT landscape. In order to maintain continuous growth and improvement of processes we are looking for an experienced SAP Developer. This role focuses mainly on developing, managing and optimizing new and existing processes within SAP, in relation to supply chain management (SCM). In addition, we expect our SAP Developer to function as a back-up and a sparring partner for fellow SAP Developers.

Bekijk vacature »

Vacature Junior / Medior (corporate) IT recruiter

Vacature Junior / Medior (corporate) IT recruiter Zoek jij een commerciële, afwisselende en uitdagende baan met veel verantwoordelijkheid? Houd jij van targets en heb je een winnaarsmentaliteit? Maak jij graag het verschil, ben je resultaatgericht en kun jij potentiele collega’s enthousiast maken voor een leuke carrière bij Quintor? Dan is deze baan als junior / medior IT recruiter de ideale stap. Als (corporate) IT recruiter benader je potentiele collega’s, dit zijn ervaren IT professionals, studenten en afstudeerders. Je zoekt actief op LinkedIn en andere social media. Daarnaast bezoek je af en toe scholen en universiteiten om in contact te komen

Bekijk vacature »

SAS Administrator

SAS Administrator - Smart Logistics Wil jij als SAS Administrator de digitale wereld van Smart Logistics verkennen? En als onderdeel van een professioneel team onze klanten helpen met (advanced) data analytics? Help jij onze klanten aan een goed functionerende SAS omgeving die in het geval van issues de impact van verstoringen zo laag mogelijk houdt? Wat ga je doen? Als SAS Administrator binnen de unit Smart Logistics krijg je de kans om je in de praktijk en in een dynamische omgeving verder te ontwikkelen en te specialiseren en stap voor stap inzicht krijgen in wat de technische vraagstukken zijn die

Bekijk vacature »

Software Developer / C#

Functieomschrijving Heb jij ervaring als Software Developer en is C# jou zeer bekend? Zou jij graag de stap willen zetten richting de industriële automatisering binnen een bedrijf waar je werkt aan software gericht op machine besturing? Lees dan deze vacature! Je werkt als Software Developer aan industriële software / software gericht op machine besturing en maakt gebruik van C# en C; Je denkt mee over de architectuur en het design; Je weet requirements te vertalen naar de technische oplossing; Je onderzoekt issues en lost storingen op waar nodig; Je denkt mee over de doorontwikkeling van de software en adviseert de

Bekijk vacature »

Fullstack PHP developer voor gerenommeerde organis

Functieomschrijving Voor de functie is het belangrijk dat jij goede kennis hebt van PHP en Laravel/Symfony en JavaScript. Ze zoeken dus iemand die al 5 jaar werkervaring heeft als developer. Je zult hier zowel op de Front- als Backend werkzaam zijn en samen met je collega's ben je verantwoordelijk voor de software. Wil jij jezelf verder uitdagen in een klein en sterk team? Dan ligt hier de kans om deze stap te zetten! Functie-eisen - Je hebt minimaal 5 jaar werkervaring als PHP developer; - Javascript, PHP en MySQL kennen geen geheimen voor jou; - Je hebt kennis van meerdere

Bekijk vacature »

Senior vergunningenmanager

Ben jij in staat om alle belangen te managen, de juiste adviezen te geven en kun je meerdere projecten tegelijk coördineren? Deel je graag jouw kennis en ervaring met junioren en wil jij het verschil maken? Bij RPS krijg je hiervoor alle ruimte en kun je ook aan je eigen ontwikkeling blijven werken. Kortom; de rol senior vergunningenmanager in Leerdam is de nieuwe uitdaging voor jou! Senior vergunningenmanager voor ons kantoor in Leerdam Een greep uit jouw werkdag: Vandaag start je met een teamoverleg met al je collega’s van omgevings- en vergunningenmanagement. Met elkaar zijn jullie dagelijks bezig met het

Bekijk vacature »

.NET Ontwikkelaar / Angular / React / Winforms

Functieomschrijving Haal jij als .NET full stack developer energie uit het ontwikkelen van bedrijfskritische .NET applicaties en vind jij het ook leuk om de door jouw gebouwde .NET applicaties te beheren en door te ontwikkelen, waarmee je de kwaliteit van de .NET applicaties weet te waarborgen? Lees dan snel verder Je zult van de ground up een applicatie bouwen, monitoren en verbeteren gebaseerd op WinForms; Je bent verantwoordelijk voor het beheer van de applicaties en de daarbij behorende taken; Je hebt ervaring met het uitvoeren van patches, testen, changes en incidentmanagement. Functie-eisen Hbo denk- en werkniveau; Minimaal 2 jaar ervaring

Bekijk vacature »

Senior Java Developer vacature

Jij volgt ontwikkelingen op de voet. Sterker nog: jij bent er onderdeel van. Jij loopt voorop. Jij denkt met klanten mee en helpt hen innoveren. Zo kun jij een bijdrage leveren aan de Rabobank-app, de beveiliging van treinen voor Pro-rail verbeteren of de website van ING een boost geven. Vergaderen? Liever gewoon zorgen dat het werkt! Hoe omschrijft men een Sogetist? Gedreven, resultaatgericht en niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons betreft net zo goed bij werken. Maar we gaan op de eerste plaats voor de

Bekijk vacature »

Medior Front-end Developer

Front-end Developer bij Capgemini Bij Capgemini DCX bouwen we niet zomaar webapplicaties en mobiele apps waar onze opdrachtgevers en hun klanten mee overweg kunnen. Nee, we ontwikkelen applicaties voor miljoenen gebruikers en dan ook nog apps waar men écht gelukkig van wordt. Van de medewerkers in de organisatie zelf tot aan de eindgebruikers. En als Front-end Developer ben jij hierbij onmisbaar! De rol Van het bouwen van nieuwe functionaliteiten, het behouden, bewaken en verbeteren van de huidige infrastructuur en applicaties tot aan het ontwikkelen van nieuwe innovaties. Als Front-end Developer ben je de (lead) developer binnen jouw scrumteam en werk

Bekijk vacature »

Webdeveloper

Locatie OSPEL Functieomschrijving VACATURE WEB DEVELOPER (JUNIOR/MEDIOR) 24-40 UUR PER DIRECT SALARIS IN OVERLEG LANGERE TIJD DOORGROEIMOGELIJKHEDEN OSPEL Houd je van ICT-vraagstukken en wil je graag online portalen voor de producten ontwikkelen? Je werkt hierbij nauw samen met de marketing- en salesafdeling. Communicatief ben je sterk en goed in staat om commerciële processen te vertalen naar digitale oplossingen. Ben je nieuwsgierig en sterk analytisch? Dan is deze vacature misschien wel wat voor jou! HET BEDRIJF Het bedrijf is al 25 jaar leverancier van kwalitatief hoogwaardige meststoffen. Ze staan voor kwaliteit, en dat merken hun klanten ook. Ze verkopen hun producten

Bekijk vacature »

Angular Developer / .NET Core / front-end of full-

Functieomschrijving Ben jij de medior / senior Angular Developer die graag in de regio Tilburg door zou willen groeien naar Lead Developer? Lees dan gauw verder! Software ontwikkeling: webbased platform en iOS apps; Werken met technieken als Angular 8, .NET Core, Javascript en TypeScript; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Code reviews houden; Initiatief nemen voor nieuwe technische mogelijkheden. Functie-eisen Minimaal 2 jaar ervaring als Angular Developer en technieken als .NET Core; Ervaring met GIT en JIRA; Zowel Nederlands- als Engelssprekend; Passie voor je vak. Bedrijfsomschrijving Bij dit informele bedrijf met een development team

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

26/01/2020 12:32:41
 
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.
 
Karl Karl

Karl Karl

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??
 
Karl Karl

Karl Karl

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
 
Karl Karl

Karl Karl

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.