dicht timmeren?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Application Developer Tech Lead

We’re Hiring! A UPS Application Developer Tech Lead *REMOTE WORK POSSIBLE FOR THIS ROLE As a Tech Lead Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life cycle activities, e.g. analysis, technical requirements, design, coding, testing and the implementation of software. Working in our Europe development center in Eindhoven means working in an international team with onsite people as well as

Bekijk vacature »

Systeembeheerder Windows

Medior Systeembeheerder Windows Welkomstbonus van € 5.000,- Bij T2 zorgen we goed voor elkaar en doen wij leuke dingen met leuke mensen. We zorgen voor uitdagende opdrachten zodat jij jezelf onbeperkt kan blijven ontwikkelen. Ben jij een ervaren systeembeheerder Windows en wil je het beste uit jezelf halen? Dan ben je van harte welkom bij T2 en ontvang je onze welkomstbonus ter waarde van € 5.000,-. Wat mag je nog meer verwachten? Als je met ons de uitdaging aangaat dan bieden we je het volgende: Dienstverband voor onbepaalde tijd Salaris tussen de € 3.500,- en € 4.000,- bruto per maand

Bekijk vacature »

Lead Full Stack Developer / Mobile Apps / C# / Rea

Bedrijfsomschrijving Als Full Stack developer kom je te werken bij een organisatie in regio Ede die gespecialiseerd is in het ontwikkelen en implementeren van software. Zo hebben ze een eigen ontwikkelde applicaties in de markt gezet voor de agrarische sector die internationaal zeer succesvol is en waar grote vraag naar is. Door deze software worden klanten op een slimme manier ondersteund bij voorraden, administratie, het maken van planningen en nog veel meer. De laatste tijd neemt de vraag naar mobile applicaties toe die klanten real time van de correcte informatie voorzien en het mogelijk maken om onder andere data registraties

Bekijk vacature »

Junior BI Developer

Bedrijfsomschrijving De organisatie waar je komt te werken als BI Developer is een grote internationale financiële instelling. Met vele vestigingen in Nederland zijn ze een belangrijke speler op de financiële markt. Jij zal hoofdzakelijk op het kantoor in Amsterdam werkzaam zijn, maar het kan ook voorkomen dat je af en toe naar een andere vestiging gaat. Het bedrijf telt ongeveer 5000 medewerkers waarvan ruim 150 ICT'ers. Het team waar je in komt te werken als (Junior) BI Developer is een ambitieus BI team dat zich bezighoudt met lokale en internationale uitdagingen. Zo zit een andere Junior BI Developer, 2 Medior

Bekijk vacature »

.NET developer

Bedrijfsomschrijving Als Senior .NET developer ga je werken in een DevOps team aan state-of-the-art oplossingen voor diverse opdrachtgevers. Denk hierbij aan het van scratch af aan bouwen van oplossingen, platformen, apps en andere portalen waar grote hoeveelheden data, AI en loT centraal staan. Zo is de organisatie onder andere bezig met het bouwen van een platform wat gebouwen middels tal van sensoren in kaart brengt en alles wat daarbij komt kijken. Zo kan iedereen in een opslag op een plattegrond zien welke ruimte bezet, gereserveerd of vrij is en wordt dit gekoppeld met andere diensten, bijvoorbeeld richting schoonmakers die weten

Bekijk vacature »

Fullstack .NET developer voor de sociale sector

Bedrijfsomschrijving Dit mooie bedrijf is al ruim 30 jaar actief binnen de sociale sector. Ze helpen mensen met een afstand tot de arbeidsmarkt naar werk toe, maar ook op het gebied van zorg en welzijn dragen zij hun steentje bij. Dit doen ze inmiddels niet alleen meer in Nederland maar ook over de landsgrenzen heen. Het bedrijf is nu 700 man groot en de IT afdeling is ondersteunend aan de business en bestaat nu uit 20 medewerkers verdeeld over 2 development teams. Functieomschrijving Je komt te werken binnen een van de development teams. Je gaat werken aan portalen voor de

Bekijk vacature »

IT-traineeship junior software ontwikkelaar

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 »

Systeem- en netwerkbeheerder

NSCR zoekt een systeem- netwerkbeheerder (24 tot 40 uur per week) Ben jij op zoek naar een baan in een levendig instituut waarin je de steun en toeverlaat bent van onderzoekers en andere gebruikers op het vlak van systeem en netwerkbeheer? Dan maken we graag kennis met jou. Wie zijn wij? Het Nederlands Studiecentrum Criminaliteit en Rechtshandhaving (NSCR) is een nationaal onderzoeksinstituut dat zich toelegt op fundamenteel wetenschappelijk onderzoek op het gebied van criminaliteit en rechtshandhaving. Het maakt deel uit van de institutenorganisatie (NWO-I) van de Nederlandse Organisatie voor Wetenschappelijk Onderzoek (NWO). Het NSCR is in Amsterdam gevestigd in een

Bekijk vacature »

.Net ontwikkelaar gezocht in omgeving van Apeldoor

Bedrijfsomschrijving Mijn opdrachtgever is gevestigd in Apeldoorn. Ze zitten in de voedselindustrie en zijn gespecialiseerd in fast-moving consumergoods en logistieke processen en fabrieksautomatisering. Ze bestaan inmiddels al enige decenia en zijn in hun tak van sport zeer gerenomeerd! Er is een hechte afdeling waar .Net ontwikkelaars werken aan interne projecten. Binnen het bedrijf zijn integriteit, openheid en eerlijkheid de belangrijkste pijlers. Er is sprake van een informele sfeer binnen een hecht team. De medewerkerstevredenheid is hoog en daarmee automatisch het personeelsverloop laag. Functieomschrijving Je werkt hier in een informeel bedrijf waar je als ervaren .Net Developer binnen een scrum team

Bekijk vacature »

.NET developer

Wil jij samen met gemotiveerde en slimme collega’s bouwen aan ons geavanceerde landschap in Azure? En vind je het ook nog eens leuk om jouw kennis te delen met junior- en medior devs? Dan heb je wellicht interesse in de positie van: Senior fullstack .NET developer voor ons kantoor in Alkmaar Over de positie: Bij SnelStart werken we in een AGILE-structuur om de productie meer focus en impact te geven. Met je collega’s kom je tot de beste resultaten door onderlinge discussie, goede refinement sessies, reviews en écht teamwork. Je hebt de vrijheid om de dingen te doen zoals jij

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 »

Applicatiebeheerder

We zoeken voor deze functie een absolute kei op het gebied van SQL, Power BI, .NET Core, EDI, API en ERP-systemen. De ideale Applicatiebeheerder ziet het als een uitdaging om ook zelf de juiste oplossingen te bedenken en te bouwen en durft daarbij out-of-the- box te denken. Je bent communicatief vaardig en pragmatisch en weet met een natuurlijke drive de vertaling te maken van onze operatie naar gebruiksvriendelijke oplossingen voor interne en externe klanten. Om zo de spreekwoordelijke spil te zijn tussen mens en applicatie. Applicatiebeheerder Breda, 36-40 uur per week Herkenbaar? Lees dan verder wat je als Applicatiebeheerder gaat

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas!

Bekijk vacature »

Database Developer

Bedrijfsomschrijving De organisatie is een gerenommeerde HR Cloud Solutions provider met miljoenen gebruikers. Hun platformen helpen klanten om Human Capital Management (HCM) ambities waar te maken en bieden payroll oplossingen voor de verloning van ongeveer 25% van alle Nederlandse werknemers. Als Database Developer kom je te werken binnen het Integratie API team. Binnen het domein is een Database opgezet volgens het EAV model, echter is het lastig om hier data uit te halen. Het doel van het team is dan ook, om efficiënt data uit de Database te halen en dit zo begrijpelijk mogelijk te presenteren aan de andere team.

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 »

Pagina: « vorige 1 2 3 4 5 volgende »

Niels K

Niels K

01/03/2012 10:15:35
Quote Anchor link
Allright! :-)

Je weet wie het zegt he ;-) Beter dan dat iemand het zegt met zun volle verstand.
Gewijzigd op 01/03/2012 10:15:59 door Niels K
 
PHP hulp

PHP hulp

14/04/2021 19:13:15
 
Ozzie PHP

Ozzie PHP

01/03/2012 10:23:27
Quote Anchor link
Hehe... dat is waar, en ach van een kieviet kan ik het wel hebben :)
 
Ozzie PHP

Ozzie PHP

02/03/2012 22:15:40
Quote Anchor link
Nu heb ik toch nog even een leuke vraag. Ik ben bezig met een database class die de PDO class extend. Ik wil gebruik maken van method chaining.

$rows = $database->select('veld')->from('tabel');

Nu wil ik per pdo driver een class maken (ik noem 'm even "class X") die gebruik maakt van een aantal aparte "basis classes" voor iedere functie (select, insert, update, delete).

Oké, so far so good...

Nu wil ik in "class X" een magische __call functie gebruiken die op basis van de aangeroepen functie een van de "basis classes" aanroept.

$rows = $database->select()->... roept de basis class "PDO_Select" aan
$database->delete{}->... roept de basis class "PDO_Delete" aan
enz.

Nu mijn vraag:

Als ik een niet bestaande functie aanroep:

$database->bestaatniet()

Dan wordt via mijn autoload functie een niet bestaande class aangeroepen, namelijk "PDO_Bestaatniet". Mijn autoload functie gooit dan een exception die keurig meldt dat de class "PDO_Bestaatniet" niet bestaat.

Stel nu dat je als programmeur een typefoutje maakt:

$database->duhliet()->...

Dan krijg je een melding dat de class "PDO_Duhliet" niet bestaat. Echter, het zou gebruikersvriendelijker zijn om een "relevante" foutmelding te tonen, bijvoorbeeld:

De door u aangeroepen database actie "duhliet" bestaat niet.

Nu kan ik dit wél voor elkaar krijgen door eerst te controleren via file_exist of de class (het bestand) bestaat.

Dit houdt alleen wel in dat bij iedere database actie die ik doe een file_exist controle moet worden gedaan om te controleren of het een geldige functie betreft.

De afweging is nu dus:

1) Als de functie niet bestaat wordt een foutmelding getoond dat de class niet bestaat. Deze oplossing is niet zo heel gebruiksvriendelijk omdat de foutmelding niet echt heel duidelijk is.

2) Als de functie niet bestaat, wordt er keurig een foutmelding getoond die meldt dat de betreffende database functie niet bestaat. Helemaal top, super gebruiksvriendelijk! ...alleen bij iedere database actie die wordt uitgevoerd moet wel even een file_exist worden uitgevoerd.

Welke van deze 2 opties heeft jullie vooorkeur?
 
Niels K

Niels K

03/03/2012 11:30:31
Quote Anchor link
Hoi Ozzie,

Ik denk dat je heel even de mist in gaat met je denkwijze. Waarom voor elke actie een nieuwe class? Ik weet niet hoeveel methode PDO heeft maar zal toch wel richting de 50 gaan.. Is dat geen overkill? ;-)

Probeer eens gebruik te maken van het Adapter pattern?

Voorbeeld: (heel summier)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

abstract Db_Adapter_Abstract {}

?>


Bovenstaande is de normale 'abstract' class van de database handler. Je kan dan verschillende Adapters hebben.

- PDO
- Mysqli
- Oracle
- Db2
- Sqlsrv

Zijn er vast nog wel meer te vinden, maar het gaat even om het idee. Stel we willen als adapter class Mysqli:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

class Db_Adapter_Mysqli extends Db_Adapter_Abstract {}

?>


En wat als we nu PDO willen doen? Voor PDO heb je toch ook verschillende Adapters? Jep, dat klopt. Geen enkel probleem. We maken weer een abstracte class

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

abstract class Db_Adapter_Pdo_Abstract extends Db_Adapter_Abstract {}

?>


Als we dan een PDO Mysql adapter willen gebruiken doe je dat als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

class Db_Adapter_Pdo_Mysql extends Db_Adapter_Pdo_Abstract {}

?>


Snap je de werking van mijn opzet? Snap je wat een abstracte class doet en kan? Als je deze structuur gebruikt houd je, je nog netjes aan het Adapter pattern ook. Tenminste dat denk ik ;-)

De aanvulling van de methodes moet je even zelf verzinnen. Is gelijk een mooie oefening om het een beetje onder de knie te krijgen.

Het gaat mij namelijk om de denkwijze die jij op dit moment hebt. Het is ansich begrijpelijk dat je zo denkt, maar dat betekend niet dat het ook daadwerkelijk allemaal klopt.

Wanneer je dit helemaal snapt en (goed) geïmplementeerd hebt kunnen we eens gaan kijken naar het verder bouwen van je ORM.

Succes ;-)
 
Wouter J

Wouter J

03/03/2012 11:48:55
Quote Anchor link
Niels, voor de CRUD (creating, reading, updating, deleting) is het toch wel beter om verschillende klasse te maken? Of is dat ook niet correct, dan moet ik mijn AR aanpassen...
 
Ozzie PHP

Ozzie PHP

03/03/2012 14:36:26
Quote Anchor link
Niels, dankjewel voor je uitleg. Dat klinkt allemaal best ingewikkeld wat je zegt...

Mijn bedoeling was om te doen wat Wouter zegt. Dus een aparte (pdo) class voor select, update, insert en delete. Uitsluitend voor die acties wil ik een aparte class maken. Dat zijn er dus 4. Per class krijg je dan weer specifieke functies die bij een select/delete/update/insert query horen. Is dat niet goed dan?

Toevoeging op 03/03/2012 15:28:39:

Oh ja, voordeel als je die 4 losse classes gebruikt... ik kan alleen de functies aanspreken die bij een select/update/insert/delete query horen omdat alleen deie functies in de class aanwezig zijn.

Ik kan dus niet per ongeluk zoiets doen als

$rows = $database->select()->from()->delete()->where();

Aangezien de functie delete() in de select class niet bestaat kan ik deze dus ook nooit aanroepen. Dat lijkt me toch ook wel een voordeel van het gebruik van losse classes.
 
Wouter J

Wouter J

03/03/2012 16:46:04
Quote Anchor link
Niels, ik dacht aan zoiets, is dit dan fout? (alleen even voor de read gedeelte gedaan)
http://i41.tinypic.com/i2iwyv.png

Het lijkt me ook een stuk beter OO, omdat je zo de taken van read, create, update en delete verdeelt over verschillende klasse.
Gewijzigd op 03/03/2012 16:47:05 door Wouter J
 
Ozzie PHP

Ozzie PHP

06/03/2012 10:12:21
Quote Anchor link
Is het een goede gewoonte om variabelen te typecasten?

Stel dat je een functie setString($string) hebt, die alleen door programmeurs wordt gebruikt. Moet je er dan vanuit gaan dat de programmeur zo slim is dat ie inderdaad een string invoert, of moet je de invoer toch typecasten naar een string?

Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
public function setString($string) {
  $this->string = (string) $string;
}
  
?>


Is dit een goede gewoonte of is het overkill?

Of moet je het nog verder doortrekken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
public function setString($string) {
  if (!is_string($string)) {
    // throw Exception
  }
  $this->string = $string;
}
  
?>
 
Wouter J

Wouter J

06/03/2012 14:01:44
Quote Anchor link
Ik gebruik altijd typecasten, ik wil zeker weten dat er in de variabele zit wat ik verwacht. Ik vind het een goede gewoonte.
 
Ozzie PHP

Ozzie PHP

06/03/2012 14:17:39
Quote Anchor link
Oké, top. Dat ga ik mezelf ook maar eens aanwennen :) Denk dat het geen verkeerde gewoonte is.
 
Jacco Brandt

Jacco Brandt

06/03/2012 16:33:23
Quote Anchor link
Of je doet dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
function setString(string $string)
 
Wouter J

Wouter J

06/03/2012 16:37:07
Quote Anchor link
@Jacco, helaas kan dat niet in PHP :(
 
Eddy E

Eddy E

06/03/2012 16:46:51
Quote Anchor link
Dit wel (lekker onzinnig, maar het werkt)

$string = trim($string." ");
 
Ozzie PHP

Ozzie PHP

06/03/2012 18:12:16
Quote Anchor link
@Eddy... dat is inderdaad behoorlijk onzinnig ;)
 
Wouter J

Wouter J

06/03/2012 18:13:37
Quote Anchor link
Of je doet gewoon dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$str
= ''.$myStr;
?>


Dit is geen typecasten, maar type juggling.
Gewijzigd op 06/03/2012 18:13:54 door Wouter J
 
Ozzie PHP

Ozzie PHP

06/03/2012 18:16:13
Quote Anchor link
Dan liever dit toch?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= (string) $string;
?>
 
Niels K

Niels K

06/03/2012 18:29:50
Quote Anchor link
Olá,

Excuses voor de laatste reactie, dit topic was me heel even ontschoten.
Wouter, naar mijn mening heb jij het bij het rechte eind. Je zou voor de grap eens moeten kijken naar Zend_Db en naar Zend_Db_Table. Dat vind ik persoonlijk een geweldige oplossing.

@Ozzie,

Ik cast nooit wat ;-) Of iig bijna nooit.
 
Ozzie PHP

Ozzie PHP

06/03/2012 18:33:36
Quote Anchor link
@Niels... waarom niet? Is op zich toch wel een goede / nette gewoonte?

(ik deed het voorheen ook niet...)
 
Niels K

Niels K

06/03/2012 18:35:33
Quote Anchor link
Elke keer een var naar een array of string casten? Nee, lijkt mij niet de bedoeling. Typehinting gebruik ik dan weer wel (heel veel) ;-)
 
Ozzie PHP

Ozzie PHP

14/03/2012 08:50:08
Quote Anchor link
Ben ik weer even. Toch nog even een vraag... ik heb namelijk het gevoel dat ik misschien teveel aan het "dicht timmeren" ben.

Voorbeeld:

Ik kan via een select functie gegevens opvragen uit de database.

$row = $database->select('veld1', 'veld2')->from(...)->where(...)

Wat ik nu doe, is controleren of ieder veld in de select functie een string is. Zo niet dan gooi ik een Exception. Datzelfde doe ik bijvoorbeeld ook voor de from. Is de opgegeven tabel naam een string? Nee? Dan gooi ik een Exception.

Ik zou ook de veldnamen in de select functie kunnen typecasten naar strings, maar als iemand dan true (een boolean) als veldnaam zou invoeren, dan zou dit worden omgezet naar een "1" en dan krijg je wellicht onverwachte resultaten terug. Vandaar dat ik dus controleer of de veldnaam een string is.

Ander voorbeeld:

Een functie om een bericht op het scherm te tonen. De parameter $exit geeft aan of het script na het tonen van het bericht moet stoppen (die). Ik controleer in de functie of de parameter $exit wel een boolean is. Zo niet, dan gooi ik een Exception.

Wat vinden jullie? Hoe ver moet ik gaan? Want om nu in iedere functie te gaan controleren of de verwachte invoer een string is... tja, ik weet het niet :-s

Graag advies!
Gewijzigd op 14/03/2012 08:51:21 door Ozzie PHP
 

Pagina: « vorige 1 2 3 4 5 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.