[alg] Slechtste programmeervoorbeelden deel 5 Vorige deel Overzicht

Pagina: 1 ... 12 ... 20 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • rikkert278
  • Registratie: Februari 2010
  • Laatst online: 13-06-2024
Kwam dit laatst tegen in een project waar ik vroeger met wat mede studenten aan heb gewerkt.

Afbeeldingslocatie: http://anony.ws/i/2016/06/09/SourceTree_2016-06-09_21-04-14.png

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 06:53

Damic

Tijd voor Jasmijn thee

Dus je krijg nooit Vrouw terug :?

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 16:08
Je krijgt vrouw terug als het geen man is. Dus ook bij onbekend of onzijdig.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 06:53

Damic

Tijd voor Jasmijn thee

CurlyMo schreef op donderdag 09 juni 2016 @ 21:25:
Je krijgt vrouw terug als het geen man is. Dus ook bij onbekend of onzijdig.
Dacht het niet ;) als de tekst Male bevat ga je 1 if verder dan doe je weer een check en daar bepaal je man/vrouw. of die else moest op de eerst if slagen maar denk het niet.

[ Voor 9% gewijzigd door Damic op 09-06-2016 21:30 ]

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • 0 Henk 'm!

  • Rhapsody
  • Registratie: Oktober 2002
  • Laatst online: 10:01

Rhapsody

In Metal We Trust

Damic schreef op donderdag 09 juni 2016 @ 21:30:
[...]
Dacht het niet ;) als de tekst Male bevat ga je 1 if verder dan doe je weer een check en daar bepaal je man/vrouw. of die else moest op de eerst if slagen maar denk het niet.
Er wordt Equals gebruikt, niet Contains.
En die rode regel is vervangen door de groene. (of begrijp ik ne post nou verkeerd)

🇪🇺 pro Europa! | Puinhoop Veroorzaken en Vertrekken (PVV)


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 16:08
In de oude situatie was een SheMale een Man geweest, in de nieuwe situatie is het een Vrouw.
Nu ga ik zelf de fout in :) Het is equals inderdaad.

[ Voor 24% gewijzigd door CurlyMo op 09-06-2016 22:00 ]

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • +1 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Nu online
Damic schreef op donderdag 09 juni 2016 @ 21:30:
[...]
Dacht het niet ;) als de tekst Male bevat ga je 1 if verder dan doe je weer een check en daar bepaal je man/vrouw. of die else moest op de eerst if slagen maar denk het niet.
Nog nooit een diff tool gezien? ^^

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
CurlyMo schreef op donderdag 09 juni 2016 @ 21:25:
Je krijgt vrouw terug als het geen man is. Dus ook bij onbekend of onzijdig.
Nog niet zo heel lang geleden was dat ook prima geaccepteerd gedrag. Afhankelijk van de leeftijd van de code dus niet echt een wtf.

Misschien had de editor dit gelijk aan kunnen pakken ipv alleen een beetje nodeloos refactoren, maar afhankelijk van de applicatie kan het best ingrijpend zijn er ineens een geslacht bij te toveren.

Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 16:08
mcDavid schreef op donderdag 09 juni 2016 @ 22:08:
Nog niet zo heel lang geleden was dat ook prima geaccepteerd gedrag. Afhankelijk van de leeftijd van de code dus niet echt een wtf.
De laatste edit is van 9 juni 2016 ;)

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
CurlyMo schreef op donderdag 09 juni 2016 @ 22:30:
[...]

De laatste edit is van 9 juni 2016 ;)
Ach, als ik naar de commit message kijk dan heb ik ook niet zo'n hoge pet op van de programmeur in kwestie...

Dit is echt van het nivo : git commit -m "Wrote some code"

Acties:
  • 0 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 06:53

Damic

Tijd voor Jasmijn thee

Rhapsody schreef op donderdag 09 juni 2016 @ 21:43:
[...]

Er wordt Equals gebruikt, niet Contains.
En die rode regel is vervangen door de groene. (of begrijp ik ne post nou verkeerd)
Als die mensen nu eens de { ook zouden sluiten is het makkelijker om te zien wat er zou gebeuren }, nu zien ik het als
if(.contains()){
if(sex==male){add('man');}else{add(vrouw');}
}
CurlyMo schreef op donderdag 09 juni 2016 @ 21:49:
In de oude situatie was een SheMale een Man geweest, in de nieuwe situatie is het een Vrouw.
Nu ga ik zelf de fout in :) Het is equals inderdaad.
Caelorum schreef op donderdag 09 juni 2016 @ 21:56:
[...]

Nog nooit een diff tool gezien? ^^
Nope

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


Acties:
  • +3 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 08:37
Gomez12 schreef op donderdag 09 juni 2016 @ 22:47:
[...]

Ach, als ik naar de commit message kijk dan heb ik ook niet zo'n hoge pet op van de programmeur in kwestie...

Dit is echt van het nivo : git commit -m "Wrote some code"
Waarom zou hij een uitgebreide commit message plaatsen voor een oud project waar hoogstwaarschijnlijk niet meer aan gewerkt wordt? Hoezo speel je het meteen "op de man" (met een opmerking dat je geen hoge pet op hebt van hem)? Laat die jongen lekker gaan ipv stoer lullige opmerkingen te maken (je HOEFT namelijk geen lullige opmerking te maken, je kan er ook gewoon even om lachen en denken "laat gaan, ik was ook ooit jong").

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Killah_Priest schreef op vrijdag 10 juni 2016 @ 07:50:
[...]
Waarom zou hij een uitgebreide commit message plaatsen voor een oud project waar hoogstwaarschijnlijk niet meer aan gewerkt wordt?
Waarom zou hij überhaupt een wijziging doorvoeren voor een oud project waar hoogstwaarschijnlijk niet meer aan gewerkt wordt?

Of je doet het goed of je doet het niet.

Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
Killah_Priest schreef op vrijdag 10 juni 2016 @ 07:50:
[...]


Waarom zou hij een uitgebreide commit message plaatsen voor een oud project waar hoogstwaarschijnlijk niet meer aan gewerkt wordt? Hoezo speel je het meteen "op de man" (met een opmerking dat je geen hoge pet op hebt van hem)? Laat die jongen lekker gaan ipv stoer lullige opmerkingen te maken (je HOEFT namelijk geen lullige opmerking te maken, je kan er ook gewoon even om lachen en denken "laat gaan, ik was ook ooit jong").
Ja leuk hoor. Maar ooit moet je wellicht wat terug zoeken of iemand anders moet er wat mee en dan heb je niets aan van die lollige commits.

Acties:
  • +1 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Nu online
Die commits zitten niet in de weg toch? Daarnaast is een beetje humor in je werk altijd leuk. Het moet niet te veel worden, maar een keer of twee, drie maakt het werk wat minder serieus.

Acties:
  • +1 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 08:37
Gomez12 schreef op vrijdag 10 juni 2016 @ 07:56:
[...]

Waarom zou hij überhaupt een wijziging doorvoeren voor een oud project waar hoogstwaarschijnlijk niet meer aan gewerkt wordt?

Of je doet het goed of je doet het niet.
En dat geeft jou het recht om lullig te reageren op hem? Laat hem lekker gaan, als hij zijn commits in (oude niet actieve projecten) op die manier wilt plaatsen dan mag hij dat toch? Niet alles hoeft serieus en op de corporate manier te gaan in het leven, een beetje plezier mag ook wel.

Het ging mij niet om wat hij had geplaatst en om welke reden : het gaat om de lullige (ietwat arrogante) reactie van jouw kant wat ik gewoon niet vind kunnen (ik bedoel : WIE ben JIJ om op zo'n manier iemand af te zeiken??)

Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
Killah_Priest schreef op vrijdag 10 juni 2016 @ 09:46:
[...]


En dat geeft jou het recht om lullig te reageren op hem? Laat hem lekker gaan, als hij zijn commits in (oude niet actieve projecten) op die manier wilt plaatsen dan mag hij dat toch? Niet alles hoeft serieus en op de corporate manier te gaan in het leven, een beetje plezier mag ook wel.

Het ging mij niet om wat hij had geplaatst en om welke reden : het gaat om de lullige (ietwat arrogante) reactie van jouw kant wat ik gewoon niet vind kunnen (ik bedoel : WIE ben JIJ om op zo'n manier iemand af te zeiken??)
Maak je toch niet zo druk yo :O

Acties:
  • 0 Henk 'm!

  • Killah_Priest
  • Registratie: Augustus 2001
  • Laatst online: 08:37
matty___ schreef op vrijdag 10 juni 2016 @ 09:49:
[...]

Maak je toch niet zo druk yo :O
Ik maak mij niet druk hoor, ik heb wel betere dingen te doen :P
Verder ook geen zin om hier nog woorden aan vuil te maken, ik heb gezegd wat ik wilde zeggen dus voor mij is het verder klaar (ik heb ook geen zin om dit topic verder te vervuilen, ik lees liever voorbeelden van slechte code :P)

Acties:
  • +2 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Damic schreef op vrijdag 10 juni 2016 @ 06:42:
[...]

Als die mensen nu eens de { ook zouden sluiten is het makkelijker om te zien wat er zou gebeuren }, nu zien ik het als ...
De code style is helder en consistent in beide revisies. B)

Dat het een commit is, met een view met dubbele regelnummers, -/+ aan begin van regel en ook nog een achtergrondkleur zou toch voldoende hint moeten zijn, zelfs al diff je niet vaak. ;)

{signature}


Acties:
  • 0 Henk 'm!

  • Jerrythafast
  • Registratie: September 2012
  • Laatst online: 17-09 17:14
Voutloos schreef op vrijdag 10 juni 2016 @ 10:45:
[...]
De code style is helder en consistent in beide revisies. B)

Dat het een commit is, met een view met dubbele regelnummers, -/+ aan begin van regel en ook nog een achtergrondkleur zou toch voldoende hint moeten zijn, zelfs al diff je niet vaak. ;)
Over de achtergrondkleur valt te twisten... zo'n 5% van de mannelijke bevolking kan het verschil tussen rood en groen niet zien ;) Eigenlijk is zo'n diff-tool dus ook een voorbeeld van een slecht programmeervoorbeeld, vanuit usability bekeken.

[ Voor 10% gewijzigd door Jerrythafast op 10-06-2016 13:28 ]


Acties:
  • +2 Henk 'm!

  • incaz
  • Registratie: Augustus 2012
  • Laatst online: 15-11-2022
Jerrythafast schreef op vrijdag 10 juni 2016 @ 13:27:
[...]

Over de achtergrondkleur valt te twisten... zo'n 5% van de mannelijke bevolking kan het verschil tussen rood en groen niet zien ;) Eigenlijk is zo'n diff-tool dus ook een voorbeeld van een slecht programmeervoorbeeld, vanuit usability bekeken.
Nope, helemaal niet, usability zegt niet dat je geen gebruik van kleur mag maken, alleen dat je niet uitsluitend op kleur mag vertrouwen om betekenis over te dragen.
Maar dat is nadrukkelijk niet het geval, je hebt namelijk ook de regelnummering en de +/- indicator.

Never explain with stupidity where malice is a better explanation


Acties:
  • 0 Henk 'm!

  • Jerrythafast
  • Registratie: September 2012
  • Laatst online: 17-09 17:14
incaz schreef op vrijdag 10 juni 2016 @ 13:57:
[...]


Nope, helemaal niet, usability zegt niet dat je geen gebruik van kleur mag maken, alleen dat je niet uitsluitend op kleur mag vertrouwen om betekenis over te dragen.
Maar dat is nadrukkelijk niet het geval, je hebt namelijk ook de regelnummering en de +/- indicator.
Oké, goed punt. De +/- en de regelnummering zijn er natuurlijk ook nog :9

Acties:
  • +2 Henk 'm!

  • ErikKo
  • Registratie: Mei 2009
  • Laatst online: 17-09 18:39

ErikKo

Rippie

Jerrythafast schreef op vrijdag 10 juni 2016 @ 13:27:
[...]

Over de achtergrondkleur valt te twisten... zo'n 5% van de mannelijke bevolking kan het verschil tussen rood en groen niet zien ;) Eigenlijk is zo'n diff-tool dus ook een voorbeeld van een slecht programmeervoorbeeld, vanuit usability bekeken.
5%? Dus 1 op de 20 mannen kunnen het verschil tussen rood en groen niet zien? Lekker gevaarlijk in het verkeer. ;)
Ik wil even opkomen voor de kleurenblinden onder ons, gezien ik er zelf bij hoor. :) Ik kan prima het verschil tussen het rood en groen in deze screenshot zien.
Echter zijn er wel enkele difftools die met een scherm met slecht contrast (e.g., laptop met scherm te ver naar voren), waarbij het voor mij soms moeilijk te herkennen is.

Acties:
  • 0 Henk 'm!

  • Murk
  • Registratie: Februari 2007
  • Laatst online: 24-08 13:37

Murk

Is this thing on?

Xiphalon schreef op woensdag 04 mei 2016 @ 11:42:
[...]

Da's leuk, maar als je een XSD valideerbaar XML oplevert/verwacht en je het attribuut aanmerkt als een xsd:decimal of xsd:double móet er dus altijd een punt gebruikt worden. bron

Het komt er op neer dat de opsteller dus zelf mag bepalen hoe hij getallen verwacht, de andere partij heeft dat maar te volgen.
Inhakend op het onderwerp XSD validatie, wat vinden jullie het belang hiervan? Heb voor werk een XML API van een (grote) leverancier moeten integreren met ons systeem. Aangezien er 30 verschillende calls zijn besloot ik braaf elke request en response tegen de meegeleverde XSD's te valideren.
Uiteindelijk moest ik voor 4 calls in de response XSD's elementen verplaatsen, toevoegen of datatypes wijzigen om deze overeen te laten komen met wat ik terugkreeg. De leverancier ging dit niet doen omdat het "maar richtlijnen zijn". Ik krijg wel eens het verwijt een pietje precies te zijn, maar je API specificatie op orde hebben lijkt me toch niet teveel gevraagd?

"There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors."


Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Murk schreef op vrijdag 10 juni 2016 @ 20:39:
[...]


Inhakend op het onderwerp XSD validatie, wat vinden jullie het belang hiervan? Heb voor werk een XML API van een (grote) leverancier moeten integreren met ons systeem. Aangezien er 30 verschillende calls zijn besloot ik braaf elke request en response tegen de meegeleverde XSD's te valideren.
Uiteindelijk moest ik voor 4 calls in de response XSD's elementen verplaatsen, toevoegen of datatypes wijzigen om deze overeen te laten komen met wat ik terugkreeg. De leverancier ging dit niet doen omdat het "maar richtlijnen zijn". Ik krijg wel eens het verwijt een pietje precies te zijn, maar je API specificatie op orde hebben lijkt me toch niet teveel gevraagd?
Hoe moet een applicatie richtlijnen begrijpen dan? Volgens mij spreek je met een XSD af wat je mag/moet verwachten als er data verstuurd wordt. Je kan een ruime XSD opstellen zodat de ontvanger overal rekening mee moet houden. Of een hele strakke zodat de ontvanger precies weet wat hij krijgt.

Ben de laatste tijd veel met gml bezig. Die XSD is zo ruim dat applicaties niet alle mogelijkheden hebben geïmplementeerd. Zegt de klant dat mijn Gml fout is.

👑


Acties:
  • +1 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

ErikKo schreef op vrijdag 10 juni 2016 @ 16:24:
[...]

5%? Dus 1 op de 20 mannen kunnen het verschil tussen rood en groen niet zien? Lekker gevaarlijk in het verkeer. ;)
Klopt. Gelukkig zien ze wel het verschil tussen boven en onder.

Maar er zijn wel mensen die denken dat het handig is om groen boven te doen. Dan gaat het ineens mis.

👑


Acties:
  • 0 Henk 'm!

  • pvcholten
  • Registratie: September 2009
  • Laatst online: 16-09 01:44
Murk schreef op vrijdag 10 juni 2016 @ 20:39:
[...]


Inhakend op het onderwerp XSD validatie, wat vinden jullie het belang hiervan? Heb voor werk een XML API van een (grote) leverancier moeten integreren met ons systeem. Aangezien er 30 verschillende calls zijn besloot ik braaf elke request en response tegen de meegeleverde XSD's te valideren.
Uiteindelijk moest ik voor 4 calls in de response XSD's elementen verplaatsen, toevoegen of datatypes wijzigen om deze overeen te laten komen met wat ik terugkreeg. De leverancier ging dit niet doen omdat het "maar richtlijnen zijn". Ik krijg wel eens het verwijt een pietje precies te zijn, maar je API specificatie op orde hebben lijkt me toch niet teveel gevraagd?
Ik weet natuurlijk niet de exacte case.

XSDs zijn naar bij mijn weten niet 'slechts richtlijnen'. Je spreekt hier af wat je kan verwachten als ontvanger. Dus als een veld bijvoorbeeld 'niet nullable' is, moet je er geen null waardes instoppen, en ook niet accepteren, want dat scheelt null-checks. Waarschijnlijk is je bericht niet compleet als je toch 'null' opstuurt.

En volgens mij doen de meeste frameworks wel XSD-validatie van de berichten. (Of is dat iig een optie die vaak aangezet wordt)

Acties:
  • 0 Henk 'm!

  • SampleUser
  • Registratie: Augustus 2012
  • Laatst online: 13:47
Ik had dit voor een testje 3 maanden geleden gemaakt... Het is een Richard Stallman IRCbot die gaat zeuren als je Linux zegt maar niet als je GNU/Linux zegt. In plaats van contains gebruik ik iets met strpos ofzo, kan het niet meer voor de geest halen
PHP:
1
2
3
if(contains(" Linux") == true || contains(" linux")) {
interject()
}

Acties:
  • +1 Henk 'm!

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 15-09 10:32
SampleUser schreef op vrijdag 10 juni 2016 @ 23:25:
Ik had dit voor een testje 3 maanden geleden gemaakt... Het is een Richard Stallman IRCbot die gaat zeuren als je Linux zegt maar niet als je GNU/Linux zegt. In plaats van contains gebruik ik iets met strpos ofzo, kan het niet meer voor de geest halen
PHP:
1
2
3
if(contains(" Linux") == true || contains(" linux")) {
interject()
}
Dus als iemand GNU/Linux zegt, krijgt diegene ook een melding, aangezien je met Strpos de GNU/ eruit stript?

Acties:
  • 0 Henk 'm!

  • SampleUser
  • Registratie: Augustus 2012
  • Laatst online: 13:47
Hatsieflatsie schreef op zaterdag 11 juni 2016 @ 03:18:
[...]
Dus als iemand GNU/Linux zegt, krijgt diegene ook een melding, aangezien je met Strpos de GNU/ eruit stript?
Nee, er staat een spatie ervoor, niet zo'n nette manier want als je zin met Linux begint doet ie dus helemaal niks. Beter is zoiets te doen met regex

Acties:
  • +1 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
SampleUser schreef op zaterdag 11 juni 2016 @ 09:24:
[...]

Nee, er staat een spatie ervoor, niet zo'n nette manier want als je zin met Linux begint doet ie dus helemaal niks. Beter is zoiets te doen met regex
Yikes, why?

Je hebt 1 geaccepteerde schrijfwijze, als die er niet inzit dan is elke vorm van case-insensitive linux fout. Een regex is daar echt overkill voor.

Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 15:09
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static class DataTableExtensions
{
    public static DataTable Table(this DataSet ds, string tableName)
    {
        if (ds.Tables.Contains(tableName))
            return ds.Tables[tableName];

        return null;
    }
    
    public static DataTable Table(this DataSet ds, int tableIndex)
    {
        return ds.Tables[tableIndex];
    }
}


Why??? 8)7 |:( 8)7

Extension Methods maken om Extension Methods te maken denk ik.

[ Voor 7% gewijzigd door Styxxy op 29-06-2016 18:37 ]


Acties:
  • 0 Henk 'm!

  • Trasos
  • Registratie: Juli 2003
  • Niet online
Styxxy schreef op woensdag 29 juni 2016 @ 18:37:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static class DataTableExtensions
{
    public static DataTable Table(this DataSet ds, string tableName)
    {
        if (ds.Tables.Contains(tableName))
            return ds.Tables[tableName];

        return null;
    }
    
    public static DataTable Table(this DataSet ds, int tableIndex)
    {
        return ds.Tables[tableIndex];
    }
}


Why??? 8)7 |:( 8)7

Extension Methods maken om Extension Methods te maken denk ik.
Ben nog vers in het programmeercircuit, ik vroeg me dus af wat het probleem was.

Is het omdat de klasse zelf geen nut heeft en het net zo goed methodes van DataSet hadden kunnen zijn?

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

Styxxy schreef op woensdag 29 juni 2016 @ 18:37:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static class DataTableExtensions
{
    public static DataTable Table(this DataSet ds, string tableName)
    {
        if (ds.Tables.Contains(tableName))
            return ds.Tables[tableName];

        return null;
    }
    
    public static DataTable Table(this DataSet ds, int tableIndex)
    {
        return ds.Tables[tableIndex];
    }
}


Why??? 8)7 |:( 8)7

Extension Methods maken om Extension Methods te maken denk ik.
Als Tables een package-local item is en deze extensions class in dezelfde package zit is het niet 100% overbodig. Alleen had het dan net zo goed direct geïmplementeerd kunnen worden.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Nu online
Maar dat is niet het geval want zowel datatable als dataset zijn adonet spul uit system.data. Probleem hier os dat iemand gewoon lui was en geen zin had om telkens de contains aan te roepen en dus maar een extension method heeft geschreven. Vast ook nog die class in een default import gezet...

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Hoedanwel?

Aangezien de check op contains zou hem TableOrDefault noemen dat komt beter overeen met naamgeving elders in .Net maar belangrijkste is dat je ziet wat de method toevoegt.

Nu er een method gemaakt voor een indexer waarbij het enige verschil een 's' is. Redelijk zinloos en verwarrend.

Tenslotte: ik zou een /// comment toevoegen met doel/nut van de extension zodat je in visual studio via intellisense uitleg kan vinden.

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • 0 Henk 'm!

  • DieVeenman
  • Registratie: Oktober 2011
  • Laatst online: 09-01-2019

DieVeenman

.NET Gekkie

JSON:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
  "BookDate": "2016-12-18T10:39:05.276Z",
  "BusinessObject": "SO1",
  "Table": {
    "Definition": {
      "Name": "SO_HDR",
      "Fields": [
        {
          "Name": "RowId",
          "FieldType": "C"
        },
        {
          "Name": "INV_DATE",
          "FieldType": "T"
        },
        {
          "Name": "RPL_INV",
          "FieldType": "C"
        },
        {
          "Name": "DEL_DATE",
          "FieldType": "T"
        },
        {
          "Name": "COMMENT1",
          "FieldType": "C"
        },
        {
          "Name": "ORD_DATE",
          "FieldType": "T"
        },
        {
          "Name": "ORD_NR",
          "FieldType": "C"
        },
        {
          "Name": "RPL_DEL",
          "FieldType": "C"
        },
        {
          "Name": "VAT_TOT",
          "FieldType": "N"
        }
      ]
    },
    "DetailDefinitions": [
      {
        "Name": "SO_LINE",
        "Fields": [
          {
            "Name": "RowId",
            "FieldType": "C"
          },
          {
            "Name": "HeaderId",
            "FieldType": "C"
          },
          {
            "Name": "DEL_DATE",
            "FieldType": "T"
          },
          {
            "Name": "REC_ID",
            "FieldType": "C"
          },
          {
            "Name": "ORD_NR",
            "FieldType": "C"
          },
          {
            "Name": "ART_CODE",
            "FieldType": "C"
          },
          {
            "Name": "VART_CODE",
            "FieldType": "C"
          },
          {
            "Name": "ART_DESC1",
            "FieldType": "C"
          },
          {
            "Name": "ORD_QTY",
            "FieldType": "N"
          }
        ]
      }
    ]
  },
  "TableData": {
    "Data": {
      "Rows": [
        {
          "Values": [
            "1",
            "2016-11-30T13:37:37.450Z",
            "TEST",
            "2016-11-30T13:37:37.450Z",
            "Test",
            "2016-11-30T13:37:37.450Z",
            "TEST",
            "TEST",
            1337
          ]
        }
      ]
    },
    "DetailData": [
      {
        "Rows": [
          {
            "Values": [
              "1",
              "1",
              "2016-11-30T13:37:37.450Z",
              "TEST",
              "TEST",
              "TEST",
              "TEST",
              "Test",
              1337
            ]
          }
        ]
      }
    ]
  }
}


Op zich niet heel verkeerd, tenzij je dit natuurlijk de betreffende partij moet sturen waaronder dus zijn eigen veldnamen en definities en in welke volgorde ze komen, en natuurlijk niet te vergeten wat voor sort data er in het veld zit.

Dit kan makkelijke gecomprimeerd worden tot een klein stukje JSON die ik elke keer als ik er een Order in wil schieten kan gebruiken maar nee dit is stukken handiger 8)7

“Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway.”


Acties:
  • +3 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:02

Haan

dotnetter

Niet zozeer slecht programmeren, maar gebrek aan framework kennis, desalniettemin toch leuk:
C#:
1
2
3
new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0)
// versus
DateTime.Today

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Geerrrt
  • Registratie: Juli 2008
  • Laatst online: 13:00
Voor abonnementen in ons interne systeem gebruiken we periodes. Deze staan als volgt in een tabel:

name, seconds

Dus bijvoorbeeld:

Jaarlijks, 31557600

Opzich snap ik de logica erachter. Maar zou ik het zelf aan pakken. Nu ging ik de code voor het berekenen van de verlengingsdatum bekijken:


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public function calculate_date_extension($subscription_id)
{
        $subscription = new Subscription($subscription_id);

        $subscription_period  = new Subscription_Period($subscription->period_id);
        $subscription_invoice = new Subscription_invoice();
        $subscription_invoice->where("subscription_id", $subscription_id)->get();

        $count = 0;

        if ($subscription_invoice->exists()) {
            $count = $subscription_invoice->where("subscription_id", $subscription_id)->count();
        }

        $count++;

        if ($subscription_period->name == "Jaarlijks") {
            return date("Y-m-d", strtotime($subscription->date_start . "+ {$count} year"));
        }
}


:')

Eury#2434


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 15-09 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

GeertJam schreef op maandag 11 juli 2016 @ 13:59:
Voor abonnementen in ons interne systeem gebruiken we periodes. Deze staan als volgt in een tabel:

name, seconds

Dus bijvoorbeeld:

Jaarlijks, 31557600

Opzich snap ik de logica erachter. Maar zou ik het zelf aan pakken. Nu ging ik de code voor het berekenen van de verlengingsdatum bekijken:


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public function calculate_date_extension($subscription_id)
{
        $subscription = new Subscription($subscription_id);

        $subscription_period  = new Subscription_Period($subscription->period_id);
        $subscription_invoice = new Subscription_invoice();
        $subscription_invoice->where("subscription_id", $subscription_id)->get();

        $count = 0;

        if ($subscription_invoice->exists()) {
            $count = $subscription_invoice->where("subscription_id", $subscription_id)->count();
        }

        $count++;

        if ($subscription_period->name == "Jaarlijks") {
            return date("Y-m-d", strtotime($subscription->date_start . "+ {$count} year"));
        }
}


:')
Afbeeldingslocatie: http://1.static.upcoming.nl/static/images/a07e07f83d_1404855477_jezus-wat-slecht__list-noup.jpg

Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

Ja ik heb hier gewoon geen woorden voor. Ik snap het punt niet eens.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class BaseLookupTable {
    int ID { get; set; }
    string Name { get; set; }
}
class FooType : BaseLookupTable {
    private FooTypeEnum fooType;
    new FooTypeEnum ID {
        get {
            return fooType;
        }
        set {
            fooType = value;
            base.ID = (int) value;
        }
    }
}
enum FooTypeEnum {
    FirstType = 1,
    SecondType = 2,
    ThirdType = 3
}

/*****/

class Foo {
    FooType fooType { get; set; }
}

/****/

if(foo.fooType.ID == FooTypeEnum.FirstType) { ... } // op het eerste gezicht een enorme wtf

De FooType is ook in de DB opgeslagen, maar dan met ID nog wel als int. Die dan overeenkomen met de int representations van de enum.
Kan iemand mij uitleggen wat het nut in hemelsnaam is van deze half-enum half-class oplossing?

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 13:27

Acid_Burn

uhuh

Leesbaarheid? Anders moet je vergelijken met 1. En wat is dat dan 1 of 2 of 3? Nu kan je zien dat het FirstType is. Waarbij FirstType dan natuurlijk iets leesbaar is als CREDIT of DEBET is bijvoorbeeld.

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Dit is idd wel een heeeel slecht programmeer voorbeeld.

Of eigenlijk is het een goed voorbeeld. Voor hoe het dus níet moet.

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

Acid_Burn schreef op vrijdag 15 juli 2016 @ 22:37:
Leesbaarheid? Anders moet je vergelijken met 1. En wat is dat dan 1 of 2 of 3? Nu kan je zien dat het FirstType is. Waarbij FirstType dan natuurlijk iets leesbaar is als CREDIT of DEBET is bijvoorbeeld.
Maar waarom zou je überhaupt een enum als losse tabel in de DB opslaan? Als je een nieuwe enum toevoegt bijv. kan je geen simpele schema compare of watdanook doen omdat dan dus de applicatie omvalt ivm missende gegevens in de db. Daar gaat het dus al mis. Imo dan.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Acid_Burn
  • Registratie: Augustus 2001
  • Laatst online: 13:27

Acid_Burn

uhuh

Inderdaad, dat is wel vreemd.

Glass Eye Photography | Zelfbouw wireless fightstick | Mijn puzzel site


Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 15:09
F.West98 schreef op zaterdag 16 juli 2016 @ 00:02:
[...]
Maar waarom zou je überhaupt een enum in de DB opslaan?
Enum wordt opgeslagen als een integer...
Overigens dit doe ik bij mijn bedrijf ook. Keuze mogelijkheden zijn codes, die in Enums staan (maar via DB uitbreidbaar zijn). In code wordt er vergeleken met een enum om eventueel bepaalde acties uit te voeren.

Behalve de stijl waarop dit geprogrammeerd is, is het concept van de enum als INT value op te slaan, niet compleet verkeerd (zoals jij probeert te suggereren).

[ Voor 15% gewijzigd door Styxxy op 16-07-2016 01:01 ]


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

Styxxy schreef op zaterdag 16 juli 2016 @ 01:00:
[...]

Enum wordt opgeslagen als een integer...
Overigens dit doe ik bij mijn bedrijf ook. Keuze mogelijkheden zijn codes, die in Enums staan (maar via DB uitbreidbaar zijn). In code wordt er vergeleken met een enum om eventueel bepaalde acties uit te voeren.

Behalve de stijl waarop dit geprogrammeerd is, is het concept van de enum als INT value op te slaan, niet compleet verkeerd (zoals jij probeert te suggereren).
Enum als losse tabel* bedoel ik. De enum is in dit geval ook gerepresenteerd als int dus je kan prima een kolom INT aanmaken en daar die int in doen. Doet vrijwel elk ORM en is een prima oplossing.
Alleen in dit geval wordt er dus een hele aparte tabel gemaakt in de db met alle waarden die mogelijk zijn in de enum, met het ID van entry in de DB gelijk aan de int representation van die enum waarde. De tabel Foo bevat dan uiteindelijk een FK naar de FooType tabel (alleen... hij heeft geen FK). Dat nog tot daar aan toe, maar de custom DAL maakt er dan de FooType class van en diezelfde DAL set het ID van die class (die dus overridden is als de enum) door gewoon de int naar de enum te casten. (foo.Type.ID = (FooTypeEnum) dbValues.getInt("ID"); )

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:02

Haan

dotnetter

Je ziet eigenlijk al aan het gebruik van het new keyword dat er iets niet in de haak is, imo is dat keyword altijd een code smell als je het in je eigen code gebruikt.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Haan schreef op zaterdag 16 juli 2016 @ 15:44:
Je ziet eigenlijk al aan het gebruik van het new keyword dat er iets niet in de haak is, imo is dat keyword altijd een code smell als je het in je eigen code gebruikt.
"New is the new goto"

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • +1 Henk 'm!

  • PWSteal
  • Registratie: December 2013
  • Laatst online: 16-09 13:15
Laatst een keer tegengekomen in iemands C# code...
ToUpper() op een string doen om vervolgens te vergelijken met een numerieke waarde :')

if(value.ToUpper() == "3") { ... }

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Edwin__ schreef op zaterdag 23 juli 2016 @ 18:50:
Laatst een keer tegengekomen in iemands C# code...
ToUpper() op een string doen om vervolgens te vergelijken met een numerieke waarde :')

if(value.ToUpper() == "3") { ... }
1 + 1 = 3, for large values of 1?

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • +1 Henk 'm!

  • D4NG3R
  • Registratie: Juli 2009
  • Nu online

D4NG3R

kiwi

:)

Edwin__ schreef op zaterdag 23 juli 2016 @ 18:50:
Laatst een keer tegengekomen in iemands C# code...
ToUpper() op een string doen om vervolgens te vergelijken met een numerieke waarde :')

if(value.ToUpper() == "3") { ... }
De vergelijking is daar gewoon met een string. :>

Komt d'r in, dan kö-j d’r oet kieken


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Haan schreef op zaterdag 16 juli 2016 @ 15:44:
Je ziet eigenlijk al aan het gebruik van het new keyword dat er iets niet in de haak is, imo is dat keyword altijd een code smell als je het in je eigen code gebruikt.
Kan je deze eens toelichten? Want ik produceer continue nieuwe objecten in mijn code met new... Juist omdat het gewoon nieuwe objecten zijn.

Acties:
  • +1 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

Gomez12 schreef op zaterdag 23 juli 2016 @ 21:30:
[...]

Kan je deze eens toelichten? Want ik produceer continue nieuwe objecten in mijn code met new... Juist omdat het gewoon nieuwe objecten zijn.
Het gaat hier om het gebruik van new als modifier op een field :>

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

D4NG3R schreef op zaterdag 23 juli 2016 @ 20:29:
[...]

De vergelijking is daar gewoon met een string. :>
De vraag is dan wel wat ToLower() dan doet als je het toepast op "3". Deze code lijkt te impliceren dat de lowercase van "3" niet gelijk is aan "3" :+

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
dcm360 schreef op zaterdag 23 juli 2016 @ 22:14:
[...]

De vraag is dan wel wat ToLower() dan doet als je het toepast op "3". Deze code lijkt te impliceren dat de lowercase van "3" niet gelijk is aan "3" :+
Misschien denk de auteur dat "3.14".toLower() gelijk is aan "3". Wellicht door PHP achtergrond. /satire

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 16:08
Of gewoon een verwarring met ceil en floor.

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

Dat zou dan wel écht heel slecht zijn hoor. tbh

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
CurlyMo schreef op zaterdag 23 juli 2016 @ 23:37:
Of gewoon een verwarring met ceil en floor.
Hoezo? Een string is geen onderdeel van een gebouw, maar een kledingstuk van een persoon eventueel in een gebouw.
En veel personen zien graag de string to lower for "<3".
Dus "3" had "<3" moeten zijn.

[ Voor 0% gewijzigd door DJMaze op 24-07-2016 01:49 . Reden: Grrr smilies, nu uit ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 00:51

F.West98

Alweer 16 jaar hier

DJMaze schreef op zondag 24 juli 2016 @ 01:48:
[...]

Hoezo? Een string is geen onderdeel van een gebouw, maar een kledingstuk van een persoon eventueel in een gebouw.
En veel personen zien graag de string to lower for "<3".
Dus "3" had "<3" moeten zijn.
offtopic:
Psst.. Smileys zonder smileys te krijgen doe je met [nosmilies][/nosmilies] :>

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Waarschijnlijk zit die persoon gewoon zo zwaar te micro-optimaliseren dat het tegenwerkt...

.ToUpper() is in Dotnet net iets sneller als .ToLower() en het kan bij switches nog wel eens makkelijk zijn om als je geen case-sensitivity mee wenst te nemen dan dus op allebei de waarden maar .ToUpper() te doen.

Echter bij if-statements heb je daar gewoon ignorecase comparers voor die nog weer iets sneller zijn.

Oftewel ik gok dat het een leuke poging was tot een half begrepen micro-optimalisatie (want die geldt niet voor deze situatie) en tja, dat je dan ook nog eens voor die micro-optimalisatie een extra functie aanroep doet die nutteloos is gezien waar je mee compared maakt het helemaal onbegrepen.

Acties:
  • 0 Henk 'm!

  • PWSteal
  • Registratie: December 2013
  • Laatst online: 16-09 13:15
Gomez12 schreef op zondag 24 juli 2016 @ 04:53:
Waarschijnlijk zit die persoon gewoon zo zwaar te micro-optimaliseren dat het tegenwerkt...

.ToUpper() is in Dotnet net iets sneller als .ToLower() en het kan bij switches nog wel eens makkelijk zijn om als je geen case-sensitivity mee wenst te nemen dan dus op allebei de waarden maar .ToUpper() te doen.

Echter bij if-statements heb je daar gewoon ignorecase comparers voor die nog weer iets sneller zijn.

Oftewel ik gok dat het een leuke poging was tot een half begrepen micro-optimalisatie (want die geldt niet voor deze situatie) en tja, dat je dan ook nog eens voor die micro-optimalisatie een extra functie aanroep doet die nutteloos is gezien waar je mee compared maakt het helemaal onbegrepen.
Precies dit inderdaad. En het stond niet eens op 1 plek haha :)

[ Voor 6% gewijzigd door PWSteal op 24-07-2016 11:21 ]


Acties:
  • 0 Henk 'm!

  • Gaius
  • Registratie: September 2001
  • Niet online
Wat is er mis met de oude? :P



Ik kwam een tijdje terug nog een constructie tegen in de code hier waarvan ik even op moest zoeken wat het was, en vervolgens niet kon bedenken waarom het a) mogelijk gemaakt is, en b) je dat zou willen gebruiken:

code:
1
2
3
4
public void SomeMethod()
{
   var @break = new Klant();
}


Het gaat om het gebruik van het @-teken voor de naam van de variabele. Voor degenen die het ook zouden moeten opzoeken: hiermee kun je in C# keywords (zoals class, in, out, goto, break, continue, etc etc) gebruiken als variabel-namen. Leuk dat het kan, maar waarom zou je in hemelsnaam keywords willen gebruiken hiervoor?

Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 15:09
Gaius schreef op woensdag 27 juli 2016 @ 16:12:
[...]
Ik kwam een tijdje terug nog een constructie tegen in de code hier waarvan ik even op moest zoeken wat het was, en vervolgens niet kon bedenken waarom het a) mogelijk gemaakt is, en b) je dat zou willen gebruiken:

code:
1
2
3
4
public void SomeMethod()
{
   var @break = new Klant();
}


Het gaat om het gebruik van het @-teken voor de naam van de variabele. Voor degenen die het ook zouden moeten opzoeken: hiermee kun je in C# keywords (zoals class, in, out, goto, break, continue, etc etc) gebruiken als variabel-namen. Leuk dat het kan, maar waarom zou je in hemelsnaam keywords willen gebruiken hiervoor?
Zeker wel nodig, bv in Razor views met anonymous object voor html attributes:

C#:
1
new { @class = "mycustomclass", @readonly = "readonly" }


Verder inderdaad volledig gellijk dat het niet echt interessant is om te gebruiken.

[ Voor 4% gewijzigd door Styxxy op 27-07-2016 17:27 ]


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Gaius schreef op woensdag 27 juli 2016 @ 16:12:
Het gaat om het gebruik van het @-teken voor de naam van de variabele. Voor degenen die het ook zouden moeten opzoeken: hiermee kun je in C# keywords (zoals class, in, out, goto, break, continue, etc etc) gebruiken als variabel-namen. Leuk dat het kan, maar waarom zou je in hemelsnaam keywords willen gebruiken hiervoor?
De enige die ik in het echte wereld vaak zie is @event omdat dat zowel een domeinterm als keyword is. Dan kun je wel kunstmatig een andere naam verzinnen maar dan vind ik (en blijkbaar genoeg anderen) de @-variant praktischer.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Nu online
In VB.Net zet je er overigens blokhaken omheen net zoals in SQL.

Acties:
  • 0 Henk 'm!

  • Gaius
  • Registratie: September 2001
  • Niet online
Styxxy schreef op woensdag 27 juli 2016 @ 17:27:
[...]


Zeker wel nodig, bv in Razor views met anonymous object voor html attributes:

C#:
1
new { @class = "mycustomclass", @readonly = "readonly" }


Verder inderdaad volledig gellijk dat het niet echt interessant is om te gebruiken.
Goeie, Razor views was ik even vergeten. Nu ik dat zo teruglees bedenk ik me dat ik het waarschijnlijk al veel eerder ben tegengekomen. :P
kenneth schreef op woensdag 27 juli 2016 @ 17:27:
[...]

De enige die ik in het echte wereld vaak zie is @event omdat dat zowel een domeinterm als keyword is. Dan kun je wel kunstmatig een andere naam verzinnen maar dan vind ik (en blijkbaar genoeg anderen) de @-variant praktischer.
Je bedoelt een event zoals een feestje, optreden of braderie ergens ofzo? Dat kan ik me nog wel voorstellen ja, al zou ik dan toch m'n best doen om dat keyword te omzeilen.

Acties:
  • 0 Henk 'm!

  • Xantios
  • Registratie: Maart 2006
  • Laatst online: 17-09 15:29
RobV schreef op zaterdag 23 juli 2016 @ 23:05:
[...]

Misschien denk de auteur dat "3.14".toLower() gelijk is aan "3". Wellicht door PHP achtergrond. /satire
Voor je PHP aanvalt is het misschien handig om eerst even te kijken of je een idee hebt van waar je het over hebt.

code:
1
2
3
4
php > $x = "3.14";
php > print strtolower($x);
3.14
php >

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Gaius schreef op woensdag 27 juli 2016 @ 23:25:

Je bedoelt een event zoals een feestje, optreden of braderie ergens ofzo? Dat kan ik me nog wel voorstellen ja, al zou ik dan toch m'n best doen om dat keyword te omzeilen.
Of als je event sourcing gebruikt.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Xantios schreef op donderdag 28 juli 2016 @ 09:32:
[...]


Voor je PHP aanvalt is het misschien handig om eerst even te kijken of je een idee hebt van waar je het over hebt.

[...]
Of je mist even de '/satire' aan het einde van zijn bericht ;)

Acties:
  • 0 Henk 'm!

  • Xantios
  • Registratie: Maart 2006
  • Laatst online: 17-09 15:29
dcm360 schreef op donderdag 28 juli 2016 @ 10:52:
[...]

Of je mist even de '/satire' aan het einde van zijn bericht ;)
ben benieuwd waar die 3 vandaan komt dan, leg uit :)

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Xantios schreef op donderdag 28 juli 2016 @ 11:10:
[...]


ben benieuwd waar die 3 vandaan komt dan, leg uit :)
Je gaat nog al hard in op de zin 'Wellicht door PHP achtergrond', terwijl dat helemaal niet serieus bedoeld was. Je kan er een bloedserieus codevoorbeeld tegenaangooien, maar dat maakt niet uit.

Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 16:10
PHP heeft nogal eens wat quirks of gewoon dingen die vanuit historisch oogpunt (toen PHP voor het eerst het levenslicht zag) logisch waren, maar nu als een tang op een varken slaan.
Wat dat betreft snap ik de satire helemaal. En dan heeft het ook geen enkele zin om dit te ontkrachten, want het is geen aanval maar een grap.

Ik werk vrijwel alleen in PHP dus nee, ik val PHP niet aan.

Tjolk is lekker. overal en altijd.


Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Edwin__ schreef op zaterdag 23 juli 2016 @ 18:50:
Laatst een keer tegengekomen in iemands C# code...
ToUpper() op een string doen om vervolgens te vergelijken met een numerieke waarde :')

if(value.ToUpper() == "3") { ... }
Met ToUpper heb ik nog een keer leuke meegemaakt, als je een case sensitive database hebt, en je doet een to upper, dan word de index genegeerd ;)

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Welkom bij het verschil tussen 'UPPER(`kolom`) = ?' en '`kolom` = UPPER(?)'. :?

{signature}


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 11:58

Dido

heforshe

En dan is er nog de Turkey test. Zie deel drie over case-(in)sensitive valkuilen.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Xantios
  • Registratie: Maart 2006
  • Laatst online: 17-09 15:29
dcm360 schreef op donderdag 28 juli 2016 @ 11:21:
[...]

Je gaat nog al hard in op de zin 'Wellicht door PHP achtergrond', terwijl dat helemaal niet serieus bedoeld was. Je kan er een bloedserieus codevoorbeeld tegenaangooien, maar dat maakt niet uit.
Vermoed beetje opgekropte woede door het altijd maar belachelijk maken van PHP door mensen die er nog nooit wat zinnigs in gedaan hebben. Of erger nog, de mensen die dit soort argumenten beginnen na te papegaaien zonder überhaupt een idee te hebben van wat ze roepen.
Ger schreef op donderdag 28 juli 2016 @ 11:25:
PHP heeft nogal eens wat quirks of gewoon dingen die vanuit historisch oogpunt (toen PHP voor het eerst het levenslicht zag) logisch waren, maar nu als een tang op een varken slaan.
Ik werk vrijwel alleen in PHP dus nee, ik val PHP niet aan.
De eerdere versies van PHP hadden zeker bijzondere eigenaardigheden.
gelukkig is in het recente verleden er een hoop opgeknapt.

helaas bestaat de beruchte "T_PAAMAYIM_NEKUDOTAYIM" nog steeds
(wat natuurlijk al een slecht code voorbeeld op zichzelf is )

[ Voor 35% gewijzigd door Xantios op 28-07-2016 17:50 ]


Acties:
  • 0 Henk 'm!

  • mbarie
  • Registratie: Mei 2011
  • Laatst online: 04-08-2021
Of...
code:
1
2
$res = true && false; // false
$res = true AND false; // true


Erg veel quirks blijven ook nog wel even... Maar het blijft voorlopig de taal waarin ik het snelst resultaat boel :)

[edit]Hier klaagde een collega recent over. Ik kan het alleen niet reproduceren :z

[ Voor 17% gewijzigd door mbarie op 29-07-2016 09:02 ]

Storyteller @ soundcloud


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Misschien wel deze variant: https://3v4l.org/NkmTM

{signature}


Acties:
  • 0 Henk 'm!

  • Tjolk
  • Registratie: Juni 2007
  • Laatst online: 16:10
mbarie schreef op vrijdag 29 juli 2016 @ 07:10:
Of...
code:
1
2
$res = true && false; // false
$res = true AND false; // true


Erg veel quirks blijven ook nog wel even... Maar het blijft voorlopig de taal waarin ik het snelst resultaat boel :)

[edit]Hier klaagde een collega recent over. Ik kan het alleen niet reproduceren :z
Tsja, voor velen is het redelijk hetzelfde, maar het eerste is een logische AND (beide waarden moeten TRUE opleveren) terwijl het tweede een bitwise AND (beter: &) is (vergelijkt per bit of het gelijkwaardig is en geeft de resulterende bitwaarde terug).

Dat vrijwel niemand de bitwise operators gebruikt en daarom niet snapt wat er gebeurt maakt de taal natuurlijk niet meteen fout. ;)

Feitelijk moet je AND gewoon niet gebruiken in PHP om het helder te houden. Gewoon & vs &&, dat is duidelijk voor iedereen.

[ Voor 8% gewijzigd door Tjolk op 29-07-2016 09:21 ]

Tjolk is lekker. overal en altijd.


Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
mbarie schreef op vrijdag 29 juli 2016 @ 07:10:
Of...
code:
1
2
$res = true && false; // false
$res = true AND false; // true


Erg veel quirks blijven ook nog wel even... Maar het blijft voorlopig de taal waarin ik het snelst resultaat boel :)

[edit]Hier klaagde een collega recent over. Ik kan het alleen niet reproduceren :z
Krijg toch echt:
code:
1
bool(false) bool(false)


Je kan volgensmij ook OR gebruiken i.p.v. ||, maar mijzelf aangeleerd dit nooit te doen. :P

Acties:
  • 0 Henk 'm!

  • Lye
  • Registratie: Januari 2010
  • Laatst online: 12:27

Lye

mbarie schreef op vrijdag 29 juli 2016 @ 07:10:
Of...
code:
1
2
$res = true && false; // false
$res = true AND false; // true


Erg veel quirks blijven ook nog wel even... Maar het blijft voorlopig de taal waarin ik het snelst resultaat boel :)

[edit]Hier klaagde een collega recent over. Ik kan het alleen niet reproduceren :z
Zou wel het gedocumenteerde gedrag zijn. && heeft een hogere presedence dan =, terwijl 'and' een lagere heeft. Daardoor zou de 2e expressie in je voorbeeld equivalent zijn aan
code:
1
($res=TRUE) and FALSE;

Al zou ik ook geloven dat dit soort quirks heel stil gefixed worden, om de fuckup maar te verbergen.

Acties:
  • 0 Henk 'm!

  • watercoolertje
  • Registratie: Januari 2008
  • Laatst online: 10:12
Lye schreef op vrijdag 29 juli 2016 @ 09:25:
[...]

Zou wel het gedocumenteerde gedrag zijn. && heeft een hogere presedence dan =, terwijl 'and' een lagere heeft. Daardoor zou de 2e expressie in je voorbeeld equivalent zijn aan
code:
1
($res=TRUE) and FALSE;

Al zou ik ook geloven dat dit soort quirks heel stil gefixed worden, om de fuckup maar te verbergen.
Volgens mij waren we dezelfde stackoverflow aan het lezen:
http://stackoverflow.com/...803321/and-vs-as-operator

https://3v4l.org/g5qAj
code:
1
2
3
4
5
6
7
8
9
10
$res = true && false;
var_dump($res);

$res = true AND false;
var_dump($res);



bool(false)
bool(true)

(16 x 300Wp) 4800Wp + (sinds 14 feb 2023) (7 x 405Wp) 2835Wp = 7635Wp @Zuid op 4.5kW omvormer


Acties:
  • 0 Henk 'm!

  • mbarie
  • Registratie: Mei 2011
  • Laatst online: 04-08-2021
Ger schreef op vrijdag 29 juli 2016 @ 09:19:
[...]

Tsja, voor velen is het redelijk hetzelfde, maar het eerste is een logische AND (beide waarden moeten TRUE opleveren) terwijl het tweede een bitwise AND (beter: &) is (vergelijkt per bit of het gelijkwaardig is en geeft de resulterende bitwaarde terug).
Klopt niet. && en AND zijn beide logical. Maar de precedence van AND staan na die van assignment operators, waar die && voor de assignment operators staat.
http://php.net/manual/en/language.operators.precedence.php

[ Voor 10% gewijzigd door mbarie op 29-07-2016 10:09 ]

Storyteller @ soundcloud


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

En dan komt het toch weer op hetzelfde neer: ja, het is gedocumenteerd maar daar is alles mee gezegd. Je kunt best een douche bouwen waar het hete water uit de blauwe kraan en het koude water uit de rode kraan komt en vervolgens in het handdoekenkastje een papiertje neerleggen waar je dat uitlegt maar je kunt het ook gewoon anders oplossen ...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Ger schreef op vrijdag 29 juli 2016 @ 09:19:
[...]

Tsja, voor velen is het redelijk hetzelfde, maar het eerste is een logische AND (beide waarden moeten TRUE opleveren) terwijl het tweede een bitwise AND (beter: &) is (vergelijkt per bit of het gelijkwaardig is en geeft de resulterende bitwaarde terug).
Nou ben ik geen PHP'er, maar hoort een bitwise and/or niet gewoon hetzelfde te doen als een logische and/or als je boolean argumenten hebt? Zo niet, dan vraag ik me af wat je bitrepresentatie voor true/false dan wel niet is...

In de eerste lessen C (waarin men niet op de bitrepresentatie in wilden gaan) hielden ze het maar op dat | en & hetzelfde doen als && en ||, behalve dat ze geen short-circuiting doen. Als je alleen maar boolean argumenten gebruikt klopt dat als een bus.

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • Jerrythafast
  • Registratie: September 2012
  • Laatst online: 17-09 17:14
De uitleg van Ger klopt inderdaad niet.

PHP:
1
2
$result = true & false;
var_dump($result) // int(0)

[ Voor 15% gewijzigd door Jerrythafast op 29-07-2016 15:43 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Lye schreef op vrijdag 29 juli 2016 @ 09:25:
Al zou ik ook geloven dat dit soort quirks heel stil gefixed worden, om de fuckup maar te verbergen.
Als ze dat anders gaan doen gaat waarschijnlijk 99% van alle php scripts kapot, of datcht je dat 'or die('error')' een speciale language construct was?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • +1 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Janoz schreef op vrijdag 05 augustus 2016 @ 15:33:
[...]

Als ze dat anders gaan doen gaat waarschijnlijk 99% van alle php scripts kapot, of datcht je dat 'or die('error')' een speciale language construct was?
PHP:
1
2
($a = false) or die();
$a = (false or die());


doen toch exact hetzelfde? Nouja, de eerste roept die() aan na de assignment, de tweede ervoor, maar dat maakt voor het eindresultaat niet uit.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

hmm ja, daar heb je een punt :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Daos
  • Registratie: Oktober 2004
  • Niet online
Collega van het vele nesten zoals:
C#:
1
2
3
4
5
6
7
8
9
foreach (var item in items)
{
    if (item.ID == id)
    {
        // do something with item

        break;
    }
}


heeft gelukkig LINQ ontdekt:
C#:
1
2
3
4
5
6
7
8
9
10
var res = items.Where(i => i.ID == id);

if (res.Count() < 1)
{
    return;
}

var item = res.ElementAt(0);

// do something with item


maar hij kent nog niet alle functies :P

De if kan ook zo:
C#:
3
if (!res.Any())


maar alles kan ook met 1 functie-aanroep ipv 3:
C#:
1
2
3
4
5
6
7
8
var item = items.FirstOrDefault(i => i.ID == id);

if (item == null)
{
    return;
}

// do something with item

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 15:09
Sowieso is het laatste (FirstOrDefault) preferred. Anders ga je de enumerator meerdere keren uitvoeren (ook met Any).

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Styxxy schreef op donderdag 11 augustus 2016 @ 19:48:
Sowieso is het laatste (FirstOrDefault) preferred. Anders ga je de enumerator meerdere keren uitvoeren (ook met Any).
Afhankelijk van de mate van hardening van je code kun je ook SingleOrDefault gebruiken om een race condition te vermijden/asserten.

 | Mijn joystick / simpit project | Blog | Elite Dangerous CMDR Cataclysm72


  • Damic
  • Registratie: September 2003
  • Laatst online: 06:53

Damic

Tijd voor Jasmijn thee

HEt is nu niet het allerslechte maar echt goed is het nu ook weer niet
Visual Basic .NET:
1
Using objWriter As New StreamWriter(FileToSaveTo, IIf(File.Exists(FileToSaveTo), True, False))
:F

*gelukkig draai ik T/F niet om O-)

[ Voor 12% gewijzigd door Damic op 11-08-2016 22:07 ]

Al wat ik aanraak werk niet meer zoals het hoort. Damic houd niet van zijn verjaardag


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Styxxy schreef op donderdag 11 augustus 2016 @ 19:48:
Sowieso is het laatste (FirstOrDefault) preferred. Anders ga je de enumerator meerdere keren uitvoeren (ook met Any).
Hoe dan? Beiden zullen stoppen zodra er een element is gevonden dat aan het predicaat voldoet. En beiden lopen de gehele collection af als dat element niet bestaat.

[ Voor 9% gewijzigd door .oisyn op 11-08-2016 22:13 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Maar in het geval van Entity Framework zullen er twee queries worden afgevuurd: eentje om te kijken of er iets is wat matcht, en eentje om het object op te halen uit de database.

Met slechts FirstOrDefault wordt er ook maar 1 SQL-quert uitgevoerd.

We are shaping the future


  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 13:21

diondokter

Dum spiro, spero

Alex) schreef op donderdag 11 augustus 2016 @ 22:18:
en eentje om het object op te halen uit de database.
Any returnt een bool hier. Het object wordt dus niet opgehaald.
Ook dit wordt dus maar één keer uitgevoerd.

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
diondokter schreef op donderdag 11 augustus 2016 @ 23:03:
[...]


Any returnt een bool hier. Het object wordt dus niet opgehaald.
Ook dit wordt dus maar één keer uitgevoerd.
Any retourneert inderdaad een boolean, maar er wordt wél een query uitgevoerd in de database. Deze query retourneert dan een boolean die EF weer doorgeeft aan de caller. Afhankelijk van de criteria die zijn opgesteld als Wheres kan dat nog best een zware query zijn ook, de querybuilder van EF is niet altijd even efficiënt namelijk.

Als je vervolgens een method uitvoert die er daadwerkelijk objecten van maakt (FirstOrDefault(), ToList(), enz) wordt er alsnog een query uitgevoerd tegen de database. Dit keer worden de volledige objecten opgehaald, of de velden die zijn opgegeven met Select.

Dit is dus inefficiënt:
C#:
1
2
3
4
5
6
7
8
9
10
var query = dbContext.Products.Where(p => p.Name.Contains("sokken") && p.Colour == "Blue");

if(query.Any()) 
{
    var sokken = query.ToList();
    Console.WriteLine("Ik heb {0} blauwe sokken gevonden!", sokken.Count);
} else
{
    Console.WriteLine("Geen blauwe sokken gevonden, ga naar de winkel!");
}

We are shaping the future


Acties:
  • +1 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Nu online
Waarom wordt altijd EF erbij gehaald als mensen het hebben over LINQ. Leuk dat er een EF provider/implementatie/whatever is, maar dat hoeft hier niet eens van toepassing te zijn. Of het slecht is/preferred is ligt dus heel erg aan de implementatie van de IEnumerable/IObservable/IQueryable/Iwhatever

Verwijderd

Caelorum schreef op donderdag 11 augustus 2016 @ 23:34:
Waarom wordt altijd EF erbij gehaald als mensen het hebben over LINQ. Leuk dat er een EF provider/implementatie/whatever is, maar dat hoeft hier niet eens van toepassing te zijn. Of het slecht is/preferred is ligt dus heel erg aan de implementatie van de IEnumerable/IObservable/IQueryable/Iwhatever
Inderdaad, ik heb werkelijk nog nooit een regel LINQ to Entities geschreven. LINQ to Objects daarentegen :>
Pagina: 1 ... 12 ... 20 Laatste

Let op:
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes. :)