dicht timmeren?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Team Lead/ Lead developer gezocht (Hands-on, PHP,

Functie Als Team Lead ben je de leider van één van de ontwikkelteams binnen de organisatie. Je leidt als lead developer een goed draaiend team dat werkt aan complexe en duurzame applicaties en API’s. Vanuit je kennis en ervaring ben je in staat het grote plaatje te blijven overzien, en kritisch mee te denken over bijvoorbeeld de architectuur, maar ook de algehele aanpak binnen het project. Je laat je team niet alleen technisch goed functioneren maar ben ook betrokken bij het menselijke aspect. Zo weet jij je collega’s te motiveren en begeleiden in hun dagelijkse werk. Buiten het team ben

Bekijk vacature »

C#.NET Developer

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

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 »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

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

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 »

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 »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

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

21/11/2024 16:04:44
 
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)
Afbeelding

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.