[alg] Slechtste programmeervoorbeelden deel 5 Vorige deel Overzicht

Pagina: 1 ... 11 ... 20 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Ik heb dit topic vandaag pas gevonden, terwijl ik toch al minstens 15 jaar slechte programmeervoorbeelden zie langsfloepen. Ik merk dat ik nog eventjes mijn plaats moet vinden en niet gelijk overal op moet reageren als een lompe hork.

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


Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
Waar ik pukkels van krijg zijn javaScript if statements op single line en niet alleen maar van kort format zoals dit voorbeeld maar echt zo breed dat ik horizontaal moet scrollen:

if (bla === true) doeIets() else doeWatAnders()


Of 3 diepe array for loops die bijna niet te ontcijferen zijn terwijl met filters hetzelfde met minder code en beter leesbaar te bereiken is.

Acties:
  • 0 Henk 'm!

  • Ryur
  • Registratie: December 2007
  • Laatst online: 12:22
matty___ schreef op dinsdag 16 februari 2016 @ 12:52:
Waar ik pukkels van krijg zijn javaScript if statements op single line en niet alleen maar van kort format zoals dit voorbeeld maar echt zo breed dat ik horizontaal moet scrollen:

if (bla === true) doeIets() else doeWatAnders()


Of 3 diepe array for loops die bijna niet te ontcijferen zijn terwijl met filters hetzelfde met minder code en beter leesbaar te bereiken is.
Niet alleen JavaScript. Mijn (ex)collega's deden dat ook in Obj-C (BAH!)

Acties:
  • 0 Henk 'm!

  • ongewoongewoon
  • Registratie: Augustus 2013
  • Laatst online: 06-08-2024
Kwam deze vandaag tegen (php pseudo code):
code:
1
2
3
4
5
6
7
if(empty($e)){
    if(!empty($e){
      // doe iets
    }else{
      // redirect
    }
}

[ Voor 6% gewijzigd door ongewoongewoon op 16-02-2016 18:37 ]


Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
ongewoongewoon schreef op dinsdag 16 februari 2016 @ 18:37:
Kwam deze vandaag tegen (php pseudo code):
code:
1
2
3
4
5
6
7
if(empty($e)){
    if(!empty($e){
      // doe iets
    }else{
      // redirect
    }
}
Je weet het maar nooit met die $e. Misschien dat die toch nog snel veranderd :+

Acties:
  • +1 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 17-09 19:11
matty___ schreef op dinsdag 16 februari 2016 @ 22:05:
[...]

Je weet het maar nooit met die $e. Misschien dat die toch nog snel veranderd :+
Bij PHP zou het me op zich dan weer niet verbazen als er situaties zouden kunnen zijn waarin een variabele half empty of half vol kan zijn afhankelijk van je gezichtspunt :P

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
matty___ schreef op dinsdag 16 februari 2016 @ 22:05:
[...]

Je weet het maar nooit met die $e. Misschien dat die toch nog snel veranderd :+
Multithreading? :+

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
code:
1
2
3
4
5
//make really really really sure $e is good
if($e && $e && $e && $e) 
{
   ...
}

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


Acties:
  • 0 Henk 'm!

  • D4NG3R
  • Registratie: Juli 2009
  • Laatst online: 16:55

D4NG3R

kiwi

:)

RobV schreef op woensdag 17 februari 2016 @ 13:16:
code:
1
2
3
4
5
//make really really really sure $e is good
if($e && $e && $e && $e) 
{
   ...
}
Zo fout dat het goed is. _/-\o_

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


Acties:
  • +1 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
RobV schreef op woensdag 17 februari 2016 @ 13:16:
code:
1
2
3
4
5
//make really really really sure $e is good
if($e && $e && $e && $e) 
{
   ...
}
En dan bij een manager claimen dat je software redundant is opgebouwd d:)b

Acties:
  • 0 Henk 'm!

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 10:36
matty___ schreef op dinsdag 16 februari 2016 @ 22:05:
[...]

Je weet het maar nooit met die $e. Misschien dat die toch nog snel veranderd :+
Heeft empty geen side effects dan?

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nee, want het had eigenlijk isEmpty() moeten heten. :)

Of is_empty(), afhankelijk van de windrichting tijdens het schrijven van php features. :+

[ Voor 46% gewijzigd door Voutloos op 17-02-2016 19:14 ]

{signature}


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Voutloos schreef op woensdag 17 februari 2016 @ 19:12:
Nee, want het had eigenlijk isEmpty() moeten heten. :)

Of is_empty(), afhankelijk van de windrichting tijdens het schrijven van php features. :+
Eigenlijk is heel PHP een slecht programmeervoorbeeld, maar dat ter zijde ;w

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


Acties:
  • 0 Henk 'm!

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

Janoz

Moderator Devschuur®

!litemod

Het patroon is trouwens niet vreemd. Bij het lazy initialiseren van een singleton wordt in Java vaak code lijkend op het volgende gebruikt:
Java:
1
2
3
4
5
6
7
8
9
10
public SomeSingleton getInstance() {
    if (instance == null) {
        synchronized(semaphore) {
            if (instance == null) {
                instance = new SomeSingleton();
            }
        }
    }
    return instance;
}


Maar goed, dat is (zoals ray-t al aangeeft) relevant bij multi-threading. Daar is bij php natuurlijk sowieso geen sprake van.

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


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 14:54
Deze verdient hier ook wel een plekje... Pseudocode, maar het maakt toch niet veel uit om het te begrijpen of niet...

code:
1
2
3
4
5
6
fetch all data from table A between dates x & y
for each row in A:
    fetch data for parent from table B
    fetch bool from table C where user is given user and parent id = parent id
    if query for table C returns true:
        // Display something


JOIN, wat is dat? :+

Eventjes getest met de data-range die standaard gebruikt wordt in de applicatie: 263 queries naar de database ipv 1 8)7

Acties:
  • 0 Henk 'm!

  • gekkie
  • Registratie: April 2000
  • Laatst online: 17-09 19:11
azerty schreef op zondag 21 februari 2016 @ 16:11:
Deze verdient hier ook wel een plekje... Pseudocode, maar het maakt toch niet veel uit om het te begrijpen of niet...

code:
1
2
3
4
5
6
fetch all data from table A between dates x & y
for each row in A:
    fetch data for parent from table B
    fetch bool from table C where user is given user and parent id = parent id
    if query for table C returns true:
        // Display something


JOIN, wat is dat? :+

Eventjes getest met de data-range die standaard gebruikt wordt in de applicatie: 263 queries naar de database ipv 1 8)7
Ach het hoofdstuk SELECT en de WHERE clause zijn in iedergeval wel blijven hangen .. 't kon nog minder _/-\o_

Acties:
  • 0 Henk 'm!

  • BugBoy
  • Registratie: November 2002
  • Laatst online: 13-09 09:01
Ooit eens gezien bij iemand die koud van school kwam:

code:
1
2
3
4
5
6
  int strlen(const char* pText)
  {
    if (!*pText)
      return 0;
    return strlen(pText+1)+1;
  }


Blijkbaar iets teveel opgelet bij de les recursie en iets te weinig bij het onderwerp dat over stacks gaat :)

The miracle isn't that I finished. The miracle is that I had the courage to start.


Acties:
  • 0 Henk 'm!

  • Jerrythafast
  • Registratie: September 2012
  • Laatst online: 17-09 17:14
BugBoy schreef op zondag 21 februari 2016 @ 16:41:
Ooit eens gezien bij iemand die koud van school kwam:

code:
1
2
3
4
5
6
  int strlen(const char* pText)
  {
    if (!*pText)
      return 0;
    return strlen(pText+1)+1;
  }


Blijkbaar iets teveel opgelet bij de les recursie en iets te weinig bij het onderwerp dat over stacks gaat :)
Op regel 3 gaat het al mis als pText een null pointer is :>

Acties:
  • 0 Henk 'm!

  • BugBoy
  • Registratie: November 2002
  • Laatst online: 13-09 09:01
Jerrythafast schreef op zondag 21 februari 2016 @ 16:44:
Op regel 3 gaat het al mis als pText een null pointer is :>
Volgens de specificatie hoeft strlen ook niet op NULL te controleren. Dat is dus niet het probleem. De belabberde snelheid, hoge stackgebruik en kans op stack overflows des te meer...

The miracle isn't that I finished. The miracle is that I had the courage to start.


Acties:
  • 0 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Tail recursion, een beetje compiler maakt hier gewoon een jump van ipv een call :)

.edit: Oh nee wacht de +1 gooit roet in het eten.

[ Voor 24% gewijzigd door .oisyn op 21-02-2016 17: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.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

BugBoy schreef op zondag 21 februari 2016 @ 16:41:
Ooit eens gezien bij iemand die koud van school kwam:

code:
1
2
3
4
5
6
  int strlen(const char* pText)
  {
    if (!*pText)
      return 0;
    return strlen(pText+1)+1;
  }


Blijkbaar iets teveel opgelet bij de les recursie en iets te weinig bij het onderwerp dat over stacks gaat :)
Is dit beter dan? :+
C:
1
2
3
4
5
6
7
8
9
10
11
12
int strlen(const char* pText)
{
    return strlen_acc(pText, 0);
}

int strlen_acc(const char* pText, int length)
{
    if (!*pText)
        return length;
    else
        return strlen_acc(pText + 1, length+1);
}

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Het zijn allemaal goede voorbeelden... van hoe het niet moet.

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


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

RobV schreef op zondag 21 februari 2016 @ 18:11:
Het zijn allemaal goede voorbeelden... van hoe het niet moet.
Wat is het probleem met de tailrecursive versie dan? :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • dragon2
  • Registratie: Juni 2008
  • Niet online
gr8-jen schreef op zaterdag 13 februari 2016 @ 22:07:
Bij mijn eerste bedrijf waar ik kwam werken hadden ze software opgekocht die ik mocht gaan onderhouden. Ik vond meerdere stukken slechte code maar dit blijft me altijd bij:

if (bla...bla....)
{
// do nothing
} else
{
*code die iets doet*
}

Waar ik het meeste mee zat was het comentaar //do nothing......
Zo heb ik ook leren programmeren, De reden: de code wordt beter leesbaar/debugbaar omdat de if altijd eerst 'positief' is. Oldskool COBOL FTW

Standaard dus:
if x=6
:ok
else
*code die iets doet
endif

I.p.v.

if x !=6
*code die iets doet
endif

[ Voor 6% gewijzigd door dragon2 op 21-02-2016 18:35 ]


Acties:
  • 0 Henk 'm!

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

F.West98

Alweer 16 jaar hier

dragon2 schreef op zondag 21 februari 2016 @ 18:32:
[...]


Zo heb ik ook leren programmeren, De reden: de code wordt beter leesbaar/debugbaar omdat de if altijd eerst 'positief' is. Oldskool COBOL FTW

Standaard dus:
if x=6
:ok
else
*code die iets doet
endif

I.p.v.

if x !=6
*code die iets doet
endif
Ik vind het soms andersom toch zeker handiger. Bijvoorbeeld bij inputvalidatie:
C#:
1
2
if(!User.Exists(id)) throw new HttpResponseException(...);
if(!User.HasRights(id)) throw new HttpResponseException(...);

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!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
F.West98 schreef op zondag 21 februari 2016 @ 18:45:
[...]

Ik vind het soms andersom toch zeker handiger. Bijvoorbeeld bij inputvalidatie:
C#:
1
2
if(!User.Exists(id)) throw new HttpResponseException(...);
if(!User.HasRights(id)) throw new HttpResponseException(...);
Dit zijn guard statements en bedoeld om de input te valideren. In dezelfde categorie als asserts() en preconditions. Die staan buiten de 'expected flow of events' en zijn (althans volgens mij) zonder problemen op deze manier te gebruiken. Maar een lege 'if' om een else te kunnen schrijven, daar krijg ik echt rillingen van.

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


Acties:
  • 0 Henk 'm!

  • gr8-jen
  • Registratie: Juni 2011
  • Laatst online: 15:14
dragon2 schreef op zondag 21 februari 2016 @ 18:32:
[...]


Zo heb ik ook leren programmeren, De reden: de code wordt beter leesbaar/debugbaar omdat de if altijd eerst 'positief' is. Oldskool COBOL FTW

Standaard dus:
if x=6
:ok
else
*code die iets doet
endif

I.p.v.

if x !=6
*code die iets doet
endif
Ik hoop wel dat je bedoelt dat je het volgende apprecieert :


If (true) {
Doe überhaupt iets
}

Ipv

Een commentaar met de tekst doe niets

WP: ME SUZ-SWM80VA + ERST20D-VM2D || PV: 4500Wp ZWW || BENG, Rc6 rondom, tripple glas, WTW, 165m2 verwarmd || Gasloos sinds sep 2023


Acties:
  • +1 Henk 'm!

  • Stoney3K
  • Registratie: September 2001
  • Nu online

Stoney3K

Flatsehats!

gr8-jen schreef op zondag 21 februari 2016 @ 18:51:
[...]


Ik hoop wel dat je bedoelt dat je het volgende apprecieert :


If (true) {
Doe überhaupt iets
}

Ipv

Een commentaar met de tekst doe niets
Soms is het voor de leesbaarheid van de code of voor bepaalde code reviews erg nuttig om "expliciet" aan te geven dat er op dat moment niks gebeurt.

Bijvoorbeeld, als je veiligheidskritieke systemen programmeert en een reviewer vereist dat je elke mogelijke situatie die voor kan komen in je code hebt staan... ook als daar geen actie op is vereist. Zo hou je je code zo deterministisch mogelijk.

Zet het daar maar neer! -- It's time to party like it's 1984 -- Soundcloud


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:29
Dat zou ik in een regel commentaar voor de if-statement zetten, of in een else-statement als je dat echt graag wilt.

Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
JavaScript
code:
1
2
3
if (level === 0 ) return "green.svg";
if (level === 1 ) return "orange.svg";
return "red.svg";

[ Voor 5% gewijzigd door matty___ op 24-02-2016 14:22 ]


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 15:48
matty___ schreef op woensdag 24 februari 2016 @ 14:22:
JavaScript
code:
1
2
3
if (level === 0 ) return "green.svg";
if (level === 1 ) return "orange.svg";
return "red.svg";
Wat is hier precies mis mee afgezien dat je het beter als switch had kunnen schrijven en je natuurlijk als je het zo oplost er een variabel van had kunnen maken dat je op het eind returned?

Strava | AP | IP | AW


Acties:
  • +1 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
Webgnome schreef op woensdag 24 februari 2016 @ 14:23:
[...]


Wat is hier precies mis mee afgezien dat je het beter als switch had kunnen schrijven en je natuurlijk als je het zo oplost er een variabel van had kunnen maken dat je op het eind returned?
Je geeft zelf al voorbeelden. Je zou ook een object of array kunnen gebruiken. Vind 3 keer return beetje storend maar dat is mijn tik.

Edit: Als ik er verder over na denk is de verwijzing naar een harde filename in de functie ook niet juist. Dit zijn configuratie parameters en zouden op een centrale plek moeten staan of via CSS en regel je daar maar de styling in.

[ Voor 20% gewijzigd door matty___ op 24-02-2016 14:46 ]


Acties:
  • +1 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:29
Je hebt gelijk, het verdient geen schoonheidsprijs, eerder het cijfer 5,5. Maar dit is topic gaat vaak over de code die een 2 verdient voor totaal onverwacht gedrag ;)

Acties:
  • 0 Henk 'm!

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

DieVeenman

.NET Gekkie

Net dit stukje gezien:

Visual Basic .NET:
1
2
3
4
5
6
7
For Each Company As Company In MyCompanies
                If Company.Activated = True Then
                    ' Doe iets
                                Else
                                  Continue For 
                End If
            Next

[ Voor 67% gewijzigd door DieVeenman op 16-03-2016 17:19 ]

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


Acties:
  • +1 Henk 'm!

  • Damic
  • Registratie: September 2003
  • Laatst online: 17:07

Damic

Tijd voor Jasmijn thee

Lol :p

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


Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
De regel met else heeft zich al bewezen, dus zonde als je later een gloedjenieuwe regel in je versioning moet gooien als je weer een else nodig hebt. :+

{signature}


Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
Is de else niet een overblijfsel van een refactor slag?

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 15:48
DieVeenman schreef op woensdag 16 maart 2016 @ 17:16:
Net dit stukje gezien:

Visual Basic .NET:
1
2
3
4
5
6
7
For Each Company As Company In MyCompanies
                If Company.Activated = True Then
                    ' Doe iets
                                Else
                                  Continue For 
                End If
            Next
Vind dit soort voorbeelden nou niet bepaald heel erg WTF. Zoals al aangegeven door iemand anders. Is dit niet gewoon een overblijfsel van een refactor slag. Zonder context is hier niet te bepalen of dat dit wenselijk gedrag is.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Het is alleen wel zo dat ook die if niet eens nodig is (VB.NET syntax ken ik niet, dus in C#)
C#:
1
2
3
4
foreach (var company in myCompanies.Where(c => c.Activated))
{
    // doe iets
}

Kater? Eerst water, de rest komt later


Acties:
  • +1 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

DieVeenman schreef op woensdag 16 maart 2016 @ 17:16:
Net dit stukje gezien:

Visual Basic .NET:
1
2
3
4
5
6
7
For Each Company As Company In MyCompanies
                If Company.Activated = True Then
                    ' Doe iets
                                Else
                                  Continue For 
                End If
            Next
De indentation is hier de echte wtf, neem ik aan? Er is een speciaal plekje in de hel voor dit soort mensen.

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!

  • Edwin88
  • Registratie: Januari 2005
  • Laatst online: 12-09 16:01
kenneth schreef op donderdag 17 maart 2016 @ 09:26:
[...]

De indentation is hier de echte wtf, neem ik aan? Er is een speciaal plekje in de hel voor dit soort mensen.
Zo zie je maar weer hoe veel werk een goede editor werk kan besparen of versimpelen. Als ik rare indents maak of teveel }'s neerzet dan gaat ie piepen dat t niet klopt.

Acties:
  • 0 Henk 'm!

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

F.West98

Alweer 16 jaar hier

|:(
SQL:
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
SELECT COUNT(*) NumberOfRecords
        FROM vw_User
        INNER JOIN OrganisationRole 
            on vw_User.UserID = OrganisationRole.[UserId]
    WHERE 
         OrganisationRole.[OrganisationID] = @OrganisationID
    AND
        OrganisationRole.[RoleID]=@RoleID;
            
WITH usersFound AS  (
    SELECT vw_User.*
    FROM vw_User
        INNER JOIN OrganisationRole 
            on vw_User.UserID = OrganisationRole.[UserId]
    WHERE 
         OrganisationRole.[OrganisationID] = @OrganisationID
    AND
        OrganisationRole.[RoleID]=@RoleID
),
users as (
    SELECT ROW_NUMBER() OVER (ORDER BY LastName) AS rowNumber,*
    FROM usersFound
)

SELECT * 
FROM users
WHERE rowNumber BETWEEN (((@Page -1) * @PageSize) + 1 ) AND (@Page * @PageSize)
ORDER BY rowNumber

Zéér efficient... (onderdeel van een stored procedure)

[ Voor 12% gewijzigd door F.West98 op 28-03-2016 23:29 ]

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:
  • +1 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:29
Het stuk wel/niet efficient (je probleem is zeker: zoek alles op, en filter daarna pas op paginanummer?) vind ik minder belangrijk dan het stuk wel/niet leesbaar... Wat doet het? Ik heb hem nu 5x verkeerd geinterpreteerd, dacht dat hij een aantal gebruikers bij een role-id zocht.

Mijn gok: zoek een OrganizationRole dat voldoet aan argumenten @OrganisationId en @RoleID, zoek alle users die daarbij horen, en filter ze op het regelnummer om steeds 1 pagina te krijgen. Maar in welke database-taal kan OrganisationRole.UserId matchen met meerdere users? :X

Acties:
  • 0 Henk 'm!

  • jbdeiman
  • Registratie: September 2008
  • Nu online
F.West98 schreef op zondag 21 februari 2016 @ 18:45:
[...]

Ik vind het soms andersom toch zeker handiger. Bijvoorbeeld bij inputvalidatie:
C#:
1
2
if(!User.Exists(id)) throw new HttpResponseException(...);
if(!User.HasRights(id)) throw new HttpResponseException(...);
Ik vind dit vaak duidelijker dan werken met het !

C#:
1
2
if(User.Exists(id) == false) throw new HttpResponseException(...);
if(User.HasRights(id)  == false) throw new HttpResponseException(...);


je kan ook de "verwachte uitkomst" vooraan zetten:

C#:
1
2
if(false == User.Exists(id)) throw new HttpResponseException(...);
if(false == User.HasRights(id)) throw new HttpResponseException(...);


(je kunt natuurlijk als het echt altijd een boolean is met === werken, maargoed.

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 15:29
Als het echt altijd een boolean is, wat is dan de toegevoegde waarde van ===? true==true, false==true, null==true geeft exact hetzelfde resultaat als met 3 =-tekens.
Ik ben dan direct heel benieuwd wat C# doet als het geen boolean is, Java geeft een syntax error :)

Acties:
  • 0 Henk 'm!

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

F.West98

Alweer 16 jaar hier

MBV schreef op dinsdag 29 maart 2016 @ 12:48:
Het stuk wel/niet efficient (je probleem is zeker: zoek alles op, en filter daarna pas op paginanummer?) vind ik minder belangrijk dan het stuk wel/niet leesbaar... Wat doet het? Ik heb hem nu 5x verkeerd geinterpreteerd, dacht dat hij een aantal gebruikers bij een role-id zocht.

Mijn gok: zoek een OrganizationRole dat voldoet aan argumenten @OrganisationId en @RoleID, zoek alle users die daarbij horen, en filter ze op het regelnummer om steeds 1 pagina te krijgen. Maar in welke database-taal kan OrganisationRole.UserId matchen met meerdere users? :X
Wellicht dat het geoptimaliseerd wordt, maar:
- Zoek alles op en tel het
- Zoek nogmaals alles op en sla het lokaal op
- Sorteer alles
- Filter x resultaten

Wat het doet: Opzoeken in de koppeltabel OrganisationRole (koppeling tussen Organisation en User) welke users in een bepaalde organisation een bepaalde role hebben. Heet ook GetUsersByRoleAndOrganisation. Maargoed, je hebt dus naast de OrganisationRole-koppeltabel ook nog de UserOrganisation-koppeltabel. Met dezelfde informatie, alleen niet welke role die user heeft. Zéér efficiënt ook.

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!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Ik ben niet heel erg thuis in Java, maar ik heb zo'n vermoeden dat dit korter kan:
Java:
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
switch (b) {
    case 0:
        return ("0");
    case 1:
        return ("1");
    case 2:
        return ("2");
    case 3:
        return ("3");
    case 4:
        return ("4");
    case 5:
        return ("5");
    case 6:
        return ("6");
    case 7:
        return ("7");
    case 8:
        return ("8");
    case 9:
        return ("9");
    case 10:
        return ("a");
    case 11:
        return ("b");
    case 12:
        return ("c");
    case 13:
        return ("d");
    case 14:
        return ("e");
    case 15:
        return ("f");
}

Acties:
  • 0 Henk 'm!

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

F.West98

Alweer 16 jaar hier

C#:
1
int pageCount = (Int32)Math.Floor(Decimal.Divide(ItemCount, pageSize));

Tja. Hè. Wat moet je hier nou weer mee.

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!

  • Giesber
  • Registratie: Juni 2005
  • Laatst online: 16-09 11:02
mcDavid schreef op woensdag 30 maart 2016 @ 00:17:
Ik ben niet heel erg thuis in Java, maar ik heb zo'n vermoeden dat dit korter kan:
Java:
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
switch (b) {
    case 0:
        return ("0");
    case 1:
        return ("1");
    case 2:
        return ("2");
    case 3:
        return ("3");
    case 4:
        return ("4");
    case 5:
        return ("5");
    case 6:
        return ("6");
    case 7:
        return ("7");
    case 8:
        return ("8");
    case 9:
        return ("9");
    case 10:
        return ("a");
    case 11:
        return ("b");
    case 12:
        return ("c");
    case 13:
        return ("d");
    case 14:
        return ("e");
    case 15:
        return ("f");
}
Zonder te weten wat b precies is ben ik daar nog niet zo zeker van. Dit zou je al beter kunnen doen met een enum, en als het hier om een hexadecimaal getal gaat lijkt
code:
1
Integer.toHexString(b);
mij iets overzichtelijker.

Acties:
  • +1 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
b is een byte tussen 0 en 15 en moet inderdaad omgeschreven worden naar een hex-string ;)

Sterker nog, zit nu verder te lezen en er zit nog deze code voor:
Java:
1
2
3
4
5
6
public static String byte2Asc(byte b) {
    String          s = nibble2Asc((byte )((b & 0xf0) >>> 4));

    s += nibble2Asc((byte )(b & 0x0f));
    return (s);
}

Waarbij nibble2Asc voorgaande switch bevat.

Beide functies hadden samengevat kunnen worden met Integer.toHexString(b);

Acties:
  • 0 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Java:
1
2
if (b >= 0 && b <= 15)
    return new String("0123456789abcdef"[b]);


.edit: oh je kunt geen String constructen van een char in Java. Nou ja, deze code is toch inefficient, beter maak je gewoon een statische array van 16 strings.

[ Voor 73% gewijzigd door .oisyn op 30-03-2016 13:00 ]

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.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

.oisyn schreef op woensdag 30 maart 2016 @ 12:57:
.edit: oh je kunt geen String constructen van een char in Java.
String String::valueOf(char)?

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

I know, mijn punt was dat mijn code niet compilet, en ik had geen zin om hem aan te passen :P

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.


Acties:
  • 0 Henk 'm!

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 05-08 09:21

Not Pingu

Dumbass ex machina

Nou heb ik al heel wat ellenlange stukken code gezien, gemaakt door mensen die echt geen verstand hadden van OO, maar hier viel mijn mond wel van open :D

107765 regels. 7(8)7

Het spelletje zelf ziet er eigenlijk nog wel OK uit.

Certified smart block developer op de agile darkchain stack. PM voor info.


Acties:
  • +2 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 08:44

Saven

Administrator

Not Pingu schreef op vrijdag 08 april 2016 @ 09:28:
Nou heb ik al heel wat ellenlange stukken code gezien, gemaakt door mensen die echt geen verstand hadden van OO, maar hier viel mijn mond wel van open :D

107765 regels. 7(8)7

Het spelletje zelf ziet er eigenlijk nog wel OK uit.
code:
1
2
3
4
5
6
7
            //CHANGE THIS
            sfxExplosion = Content.Load<SoundEffect>("AllSounds/boom2Boss");  

//FUCKING CHANGE THIS
            //CHANGE THIS HOLY SHIT

            playStageMusic = new PlayStageMusic(1, stageBGM);

:')

Acties:
  • 0 Henk 'm!

  • cytherea
  • Registratie: Oktober 2003
  • Laatst online: 12-09 10:22
Oh my, lijkt op de eerste java opdracht op het HBO. Ook alles in één class, toen nog geen idee dat dat niet handig is..

Acties:
  • 0 Henk 'm!

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

Douweegbertje

Wat kinderachtig.. godverdomme

Not Pingu schreef op vrijdag 08 april 2016 @ 09:28:
Nou heb ik al heel wat ellenlange stukken code gezien, gemaakt door mensen die echt geen verstand hadden van OO, maar hier viel mijn mond wel van open :D

107765 regels. 7(8)7

Het spelletje zelf ziet er eigenlijk nog wel OK uit.
haha ik mag die gast wel.

Waarschijnlijk zijn eerste game, het is een zootje geworden maar hij heeft wel doorgezet. Op de één of andere manier waardeer ik dan zoiets uiteindelijk wel :)

Het eindresultaat is prima, meer dan menig persoon bereikt dus ja.. wat moet je er van zeggen. :+

Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 14:33

P_Tingen

omdat het KAN

Douweegbertje schreef op vrijdag 08 april 2016 @ 13:22:
[...]
haha ik mag die gast wel.

Waarschijnlijk zijn eerste game, het is een zootje geworden maar hij heeft wel doorgezet. Op de één of andere manier waardeer ik dan zoiets uiteindelijk wel :)

Het eindresultaat is prima, meer dan menig persoon bereikt dus ja.. wat moet je er van zeggen. :+
En als je die gast helemaal over de zeik wil hebben, vraag dan even of hij er <vul willekeurige feature> bij in wil bouwen }) . Dit is zo'n groot copy-paste verhaal geworden dat het een drama moet zijn om er ook maar iets bij te knutselen. Wel respect idd voor zijn doorzettingsvermogen.

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • Tribits
  • Registratie: Augustus 2011
  • Laatst online: 17:25

Tribits

Onkruid vergaat niet

Not Pingu schreef op vrijdag 08 april 2016 @ 09:28:
Nou heb ik al heel wat ellenlange stukken code gezien, gemaakt door mensen die echt geen verstand hadden van OO, maar hier viel mijn mond wel van open :D

107765 regels. 7(8)7

Het spelletje zelf ziet er eigenlijk nog wel OK uit.
Kan me herinneren dat iemand hier ook nog eens een spelletje heeft gepubliceerd in een showcase topic. Kwam ongeveer op hetzelfde neer. Ik kreeg er wel gemengde gevoelens bij. Aan de ene kant knap dat je iets werkends neer weet te zetten, maar aan de andere kant kennelijk niet (voldoende) verdiept in de materie bij aanvang en ook gaandeweg het ontwikkelen niet nagedacht over eventuele aanpassingen die het beter onderhoudbaar zouden maken door een betere structuur. Zat in eerste instantie te kijken naar de mogelijkheid om het hele verhaal te refactoren als oefening voor mezelf, maar heb dat idee maar snel naast me neer gelegd omdat het effectief een complete rewrite zou worden. In de praktijk toch de programmeurs die je liever niet in je team hebt tenzij ze hun kennis op bepaalde gebieden flink bijschaven.

Overigens dan ook wel weer het omgekeerde gezien. Een pakket met teleurstellend weinig functionaliteit, een enorm aantal regels code en gebruik makend van ongeveer ieder denkbaar design pattern. Ook gemengde gevoelens. Je kan er niet echt iets slechts over zeggen maar echt vrolijk werd ik er nou ook weer niet van.

Master of questionable victories and sheer glorious defeats


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 15:48
heb nog een leuke gevonden. Als je op http://www.amstel.nl/agecheck een datum kiest van bijv 1900 dan krijg je een 'te jong' melding.. Als je voor 1800 kiest dan werkt het script helemaal niet (ook niet een melding)
Tribits schreef op zondag 10 april 2016 @ 16:39:
[...]
...
Overigens dan ook wel weer het omgekeerde gezien. Een pakket met teleurstellend weinig functionaliteit, een enorm aantal regels code en gebruik makend van ongeveer ieder denkbaar design pattern. Ook gemengde gevoelens. Je kan er niet echt iets slechts over zeggen maar echt vrolijk werd ik er nou ook weer niet van.
Heet dat dan niet gewoon overengineren. En daar is genoeg slechts over te zeggen. Zoals daar zijn onderhoudbaarheid en/of begrijpbaarheid. Als je miljoen miljard regels code nodig hebt om een paar knopjes te renderen dan kan het er technisch misschien wel mooi uitzien maar dat wil je dan daarna nooit meer aanpassen. Simpelweg omdat je de gevolgen daar niet meer van kunt overzien.

[ Voor 65% gewijzigd door Webgnome op 17-04-2016 14:12 ]

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • page404
  • Registratie: November 2009
  • Nu online

page404

Website says no

P_Tingen schreef op vrijdag 08 april 2016 @ 13:35:
[...]

En als je die gast helemaal over de zeik wil hebben, vraag dan even of hij er <vul willekeurige feature> bij in wil bouwen }) . Dit is zo'n groot copy-paste verhaal geworden dat het een drama moet zijn om er ook maar iets bij te knutselen. Wel respect idd voor zijn doorzettingsvermogen.
Ik ben zelf Swift aan het leren en merk dat ik regelmatig opnieuw begin met apps en stukken code omdat ik er achter kom dat ik bepaalde patterns helemaal niet goed gebruikt heb. Ondertussen leer ik wel een boel veel :P

ZIPper: Zelfstandig Interim Professional


Acties:
  • 0 Henk 'm!

  • Tribits
  • Registratie: Augustus 2011
  • Laatst online: 17:25

Tribits

Onkruid vergaat niet

Webgnome schreef op zondag 17 april 2016 @ 14:04:

Heet dat dan niet gewoon overengineren. En daar is genoeg slechts over te zeggen. Zoals daar zijn onderhoudbaarheid en/of begrijpbaarheid. Als je miljoen miljard regels code nodig hebt om een paar knopjes te renderen dan kan het er technisch misschien wel mooi uitzien maar dat wil je dan daarna nooit meer aanpassen. Simpelweg omdat je de gevolgen daar niet meer van kunt overzien.
Laat ik het anders zeggen: het is een discussie die ik doorgaans maar liever uit de weg ga. Over slechte programmeervoorbeelden is iedereen het doorgaans wel eens, maar wanneer er sprake is van overengineering is veel minder absoluut. Er is altijd wel een reden en een oorzaak aan te wijzen en dus zijn er ook altijd wel argumenten voor de doorgeslagen ontwerpkeuzes. En aangezien die keuzes doorgaans gemaakt zijn door iemand met een nog al uitgesproken visie op software engineering zal dat zelden een gemakkelijke discussie worden. Ik heb nog eens gewerkt aan een systeem dat ooit begonnen was op een 386 en dat in de nieuwste versie na talloze 'verbeteringen' zelfs op de nieuwste hardware niet vooruit te branden was. Desondanks wilde de ontwerper van het systeem niet accepteren dat de structuur te complex was geworden.

Ik wilde nog even een simpel voorbeeldje toevoegen van een geval waar in mijn ogen sprake is van overengineering, maar ik realiseerde me dat de meeste lezers het hier waarschijnlijk als 'best practice' zouden bestempelen. Het blijft allemaal vrij subjectief.

Master of questionable victories and sheer glorious defeats


Acties:
  • 0 Henk 'm!

  • Edwin88
  • Registratie: Januari 2005
  • Laatst online: 12-09 16:01
Webgnome schreef op zondag 17 april 2016 @ 14:04:
heb nog een leuke gevonden. Als je op http://www.amstel.nl/agecheck een datum kiest van bijv 1900 dan krijg je een 'te jong' melding.. Als je voor 1800 kiest dan werkt het script helemaal niet (ook niet een melding)
[...]
http://www.amstel.nl/framework/modules/agecheck2/js/agecheck.js

Het is zeker weten wel een stukje monstercode voor een simpele age check....

JavaScript:
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
var checkDate = function(day, month, year) {
    var result;

    // all vars present to make a date
    if (!day || !month || !year) return false;

    // month within bounds
    month = month - 1;
    if (month < 0 || month > 11) return false;

    var date = new Date(year, month, day);

    // day exceeds month's bounds
    if (month != date.getMonth()) return false;

    // year within bounds
    if (date.getFullYear() < minYear) return false;

    if (date == 'Invalid Date' || (new Date() - date < 0)) {
        return false;
    } else {
        var d = '0' + date.getDate();
        var m = '0' + (date.getMonth() + 1);
        return [d.substr(d.length - 2, d.length), m.substr(m.length - 2, m.length), date.getFullYear()];
    }
};


Volgens mij zijn er minstens 100 libraries en methodes om te bepalen hoe oud iemand is vanuit een datum, die direct je datum checkt. Dat je handmatig je 'month within range' moet gaan checken 8)7

[ Voor 47% gewijzigd door Edwin88 op 18-04-2016 13:54 ]


Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
Edwin88 schreef op maandag 18 april 2016 @ 13:52:
[...]


http://www.amstel.nl/framework/modules/agecheck2/js/agecheck.js

Het is zeker weten wel een stukje monstercode voor een simpele age check....

JavaScript:
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
var checkDate = function(day, month, year) {
    var result;

    // all vars present to make a date
    if (!day || !month || !year) return false;

    // month within bounds
    month = month - 1;
    if (month < 0 || month > 11) return false;

    var date = new Date(year, month, day);

    // day exceeds month's bounds
    if (month != date.getMonth()) return false;

    // year within bounds
    if (date.getFullYear() < minYear) return false;

    if (date == 'Invalid Date' || (new Date() - date < 0)) {
        return false;
    } else {
        var d = '0' + date.getDate();
        var m = '0' + (date.getMonth() + 1);
        return [d.substr(d.length - 2, d.length), m.substr(m.length - 2, m.length), date.getFullYear()];
    }
};


Volgens mij zijn er minstens 100 libraries en methodes om te bepalen hoe oud iemand is vanuit een datum, die direct je datum checkt. Dat je handmatig je 'month within range' moet gaan checken 8)7
moment.js _/-\o_

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Ja, die moeten er een hoop users hebben bijgekregen sinds Globalize.js ineens framework-aspiraties kreeg. Moment.js is een fijne library.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Edwin88
  • Registratie: Januari 2005
  • Laatst online: 12-09 16:01
Ik vind het vooral gek dat een groot bedrijf als amstel dit soort code op zijn site heeft staan. Het ziet er niet echt professioneel uit als je site niet eens goed werkt.

Enfin, zal wel een goedkope oplossing geweest zijn en lang geleden gemaakt. En op zich werkt het prima genoeg.

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 15:48
Edwin88 schreef op maandag 18 april 2016 @ 14:47:
Ik vind het vooral gek dat een groot bedrijf als amstel dit soort code op zijn site heeft staan. Het ziet er niet echt professioneel uit als je site niet eens goed werkt.

Enfin, zal wel een goedkope oplossing geweest zijn en lang geleden gemaakt. En op zich werkt het prima genoeg.
Een bedrijf als amstel zal het echt een r... zorg zijn hoe de code eruit ziet. Als het maar .. oh ja wacht. En om heel eerlijk te zijn wie gaat er nu serieus 1900 invullen als jaartal? Dit is waarschijnlijk gewoon niet getest.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Webgnome schreef op maandag 18 april 2016 @ 14:48:
[...]


Een bedrijf als amstel zal het echt een r... zorg zijn hoe de code eruit ziet. Als het maar .. oh ja wacht. En om heel eerlijk te zijn wie gaat er nu serieus 1900 invullen als jaartal? Dit is waarschijnlijk gewoon niet getest.
Boardroom: wat? €80k voor een website? Ik vraag het wel aan mijn neefje. Die zit ook wel eens op internet.

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


Acties:
  • 0 Henk 'm!

  • Jerrythafast
  • Registratie: September 2012
  • Laatst online: 17-09 17:14
RobV schreef op maandag 18 april 2016 @ 15:52:
[...]

Boardroom: wat? €80k voor een website? Ik vraag het wel aan mijn neefje. Die zit ook wel eens op internet.
Daar moet ik ze dan wel gelijk in geven. Ze hadden alleen beter even de skills van dat neefje kunnen checken.

Volgens mij is er in deze tijd altijd wel iemand in een bedrijf die (iemand kent die) wel een eenvoudig dingetje als dit op een website op een goede manier kan implementeren. En daar geen €80k voor vraagt.

Acties:
  • +2 Henk 'm!

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

ajakkes

👑

Jerrythafast schreef op maandag 18 april 2016 @ 19:15:
[...]

Daar moet ik ze dan wel gelijk in geven. Ze hadden alleen beter even de skills van dat neefje kunnen checken.

Volgens mij is er in deze tijd altijd wel iemand in een bedrijf die (iemand kent die) wel een eenvoudig dingetje als dit op een website op een goede manier kan implementeren. En daar geen €80k voor vraagt.
Er waren wel 5 werknemers die hun neefje hebben voorgedragen als oplossing bij de board. Allemaal hadden ze al 5 websites in de lucht die er prachtig uit zagen en iets moois lieten zien. Het goedkoopste neefje kreeg de opdracht. Het ziet er toch prima uit?

De board was happy, tot de wereld het echt ging uittesten. De volgende keer betalen ze weer 80k.

👑


Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 16-09 13:49

Patriot

Fulltime #whatpulsert

Edwin88 schreef op maandag 18 april 2016 @ 14:47:
Ik vind het vooral gek dat een groot bedrijf als amstel dit soort code op zijn site heeft staan. Het ziet er niet echt professioneel uit als je site niet eens goed werkt.
Naar wie niet? Die paar mensen die weten hoe HTML en javascript werken én die weten hoe het beter moet? Verder gaat het alleen maar om mensen die de agecheck gebruiken, en die werkt verder prima. Het is een mooi voorbeeld voor dit topic, maar het is het laatste waar Amstel zich druk om moet maken.

EDIT: Ik denk eerlijk gezegd ook niet dat het het werk van een neefje is. Genoeg bedrijven met wat zakelijke mensen en een paar designers die ook nog wel een beetje wegwijs zijn in javascript.

[ Voor 14% gewijzigd door Patriot op 18-04-2016 19:35 ]


Acties:
  • +1 Henk 'm!

  • Mercatres
  • Registratie: September 2009
  • Laatst online: 12:40
/

[ Voor 98% gewijzigd door Mercatres op 19-04-2016 09:45 . Reden: Verkeerde topic :/ ]


Acties:
  • +1 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Het is wel een eerlijke vacature, in tegenstelling tot de gouden bergen die de meeste recruiters beloven.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 10:13

glashio

C64 > AMIGA > PC

code:
1
2
3
4
5
6
7
8
<tr>
    <td width="50%" align="center">
        <SCRIPT LANGUAGE="JavaScript">
            if (window.print)
                document.write('<a href=javascript:window.print()><input type="button" value="$strButtonPrinten" onclick="javascript:window.print()"></a>')
        </SCRIPT>
    </td>
</tr>
Kwam het tegen in codebase :') (Firefox, IE liep verschillende keren vast bij PC's)

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Acties:
  • 0 Henk 'm!

  • matty___
  • Registratie: Augustus 2005
  • Laatst online: 14-09 19:36
glashio schreef op maandag 02 mei 2016 @ 09:42:
code:
1
2
3
4
5
6
7
8
<tr>
    <td width="50%" align="center">
        <SCRIPT LANGUAGE="JavaScript">
            if (window.print)
                document.write('<a href=javascript:window.print()><input type="button" value="$strButtonPrinten" onclick="javascript:window.print()"></a>')
        </SCRIPT>
    </td>
</tr>
Kwam het tegen in codebase :') (Firefox, IE liep verschillende keren vast bij PC's)
Blijkbaar is printen wel erg belangrijk.

Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

Unit tests die checken op een specifieke tekst in een exception.. En dan ook nog in het Nederlands, zodat het op mijn Engelstalige OS en op de build servers sowieso faalt |:(

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • NESFreak
  • Registratie: December 2009
  • Laatst online: 10:36
Haan schreef op maandag 02 mei 2016 @ 10:49:
Unit tests die checken op een specifieke tekst in een exception.. En dan ook nog in het Nederlands, zodat het op mijn Engelstalige OS en op de build servers sowieso faalt |:(
Andersom: software uit de USA. XML met de hand printen, maar geen locale meegeven. Vervolgens faalt de xml importer op in nederland gegenereerde data omdat er kommas als decimaal scheidingsteken gebruikt zijn.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Decimale getallen in XML moeten naar mijn mening altijd in Amerikaans formaat zijn. Overigens verwacht XSD validatie dat ook als je de ingebouwde XSD datatypes gebruikt.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

C#:
1
2
3
4
5
public void Foo(bool? flag)
{
    bool myFlag = (flag.GetValueOrDefault(false) == true);
    CallAnotherMethodWithFlag(myFlag);
}

Onthutsend om te zien hoeveel overbodige zaken je in één regel code kan stoppen :/

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 16:59
Sebazzz schreef op maandag 02 mei 2016 @ 12:52:
Decimale getallen in XML moeten naar mijn mening altijd in Amerikaans formaat zijn. Overigens verwacht XSD validatie dat ook als je de ingebouwde XSD datatypes gebruikt.
Decimalen moeten helemaal niet volgens het Amerikaanse formaat zijn. Die moeten volgens een standaard gaan. Het SI-voorvoegsel gebruikt een comma voor decimalen (het Franse SI-formaat, wat meer gebruikt wordt dan het Engelse). ISO 80000-1:2009 wat gaat over Quantities en Units gebruikt ook een comma. Ons systeem is afgeleid van het Arabische systeem, wat ook een comma gebruikt; dat is de historische reden waarom veel Europese landen een comma gebruiken. Het is gewoon totaal onlogisch om een punt te gebruiken, behalve als je bent van de rare systemen waar ze in Amerika goed in zijn (Fahrenheit, Imperial units, ed.)

Acties:
  • 0 Henk 'm!

  • Xiphalon
  • Registratie: Juni 2001
  • Laatst online: 12:16
ThomasG schreef op woensdag 04 mei 2016 @ 10:35:
[...]
Decimalen moeten helemaal niet volgens het Amerikaanse formaat zijn. Die moeten volgens een standaard gaan. Het SI-voorvoegsel gebruikt een comma voor decimalen (het Franse SI-formaat, wat meer gebruikt wordt dan het Engelse). ISO 80000-1:2009 wat gaat over Quantities en Units gebruikt ook een comma. Ons systeem is afgeleid van het Arabische systeem, wat ook een comma gebruikt; dat is de historische reden waarom veel Europese landen een comma gebruiken. Het is gewoon totaal onlogisch om een punt te gebruiken, behalve als je bent van de rare systemen waar ze in Amerika goed in zijn (Fahrenheit, Imperial units, ed.)
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.

Acties:
  • 0 Henk 'm!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

ThomasG schreef op woensdag 04 mei 2016 @ 10:35:
Het is gewoon totaal onlogisch om een punt te gebruiken
Dat slaat nergens op. Er zit geen enkele logica achter het gebruik van een punt danwel komma; het is louter gebaseerd op historie.

Als je echter kijkt naar het gebruik van dezelfde symbolen in overig taalgebruik, dan vind ik de komma wel logisch als scheidingsteken, en dan kom je in de knoei als de komma ook wordt gebruikt als decimaalteken. Daarom zie je de puntkomma vaak in gebruik als scheidingsteken in regio's waar ze de komma geburiken als decimaalteken, maar taaltechnisch is dat niet logisch.

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.


Acties:
  • 0 Henk 'm!

  • page404
  • Registratie: November 2009
  • Nu online

page404

Website says no

Haan schreef op woensdag 04 mei 2016 @ 10:17:
C#:
1
2
3
4
5
public void Foo(bool? flag)
{
    bool myFlag = (flag.GetValueOrDefault(false) == true);
    CallAnotherMethodWithFlag(myFlag);
}

Onthutsend om te zien hoeveel overbodige zaken je in één regel code kan stoppen :/
Als zijn doel was "code obfuscation", dan is hij flink op weg. Pluim daarvoor _/-\o_

ZIPper: Zelfstandig Interim Professional


Acties:
  • 0 Henk 'm!

  • CurlyMo
  • Registratie: Februari 2011
  • Laatst online: 16:36
Ik vond deze op StackOverflow wel komisch.

De vraag is: "Check if object is a number or boolean" (in python)

De antwoorden:
Python:
1
isinstance(x[0], (int, float))


Python:
1
2
import types
type(x) == types.BooleanType


Mijn antwoord:
Python:
1
type(x) == type(True)


Het gaat om het commentaar van de lezers:
A little bit hacky but no imports, so +1
:p



Aanvullend:
Python:
1
2
3
4
print(type(0) == type(False));
print(type(1) == type(True));
print(type(0) == type(1));
print(type(1) == type(0));

Geeft netjes:
Python:
1
2
3
4
False
False
True
True





Of iemand moet mij betrappen op een programmeerfout, maar volgens mij is het toch echt zo simpel :)

http://stackoverflow.com/...ct-is-a-number-or-boolean

Sinds de 2 dagen regel reageer ik hier niet meer


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Haan schreef op woensdag 04 mei 2016 @ 10:17:
C#:
1
2
3
4
5
public void Foo(bool? flag)
{
    bool myFlag = (flag.GetValueOrDefault(false) == true);
    CallAnotherMethodWithFlag(myFlag);
}

Onthutsend om te zien hoeveel overbodige zaken je in één regel code kan stoppen :/
Wauw, wat ondoorzichtig. Zo wazig dat ik twijfel aan mijn eigen interpretatie. Het is toch equivalent aan:

C#:
1
2
3
4
public void Foo(bool? flag)
{
    CallAnotherMethodWithFlag(flag ?? false);
}

:?

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!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:15

Haan

dotnetter

kenneth schreef op woensdag 04 mei 2016 @ 13:42:
[...]

Wauw, wat ondoorzichtig. Zo wazig dat ik twijfel aan mijn eigen interpretatie. Het is toch equivalent aan:

C#:
1
2
3
4
public void Foo(bool? flag)
{
    CallAnotherMethodWithFlag(flag ?? false);
}

:?
Of
C#:
1
CallAnotherMethodWithFlag(flag.GetValueOrDefault());

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
kenneth schreef op woensdag 04 mei 2016 @ 13:42:
[...]

Wauw, wat ondoorzichtig. Zo wazig dat ik twijfel aan mijn eigen interpretatie. Het is toch equivalent aan:

C#:
1
2
3
4
public void Foo(bool? flag)
{
    CallAnotherMethodWithFlag(flag ?? false);
}

:?
Dat vind ik wel de mooiste oplossing _/-\o_

Met een hele kleine aanpassing in de semantiek van de aanroep (software architect voorrecht), geen nieuwe functie maken/verzinnen, maar een overload gebruiken en de default specificeren in de argumentenlijst. Maar ik vermoed zo dat de originele bouwer meer wil doen dan enkele een functie aanroepen met een optional boolean. Ook kan het zijn dat de functie specifiek moet werken met een nullable bool.

C#:
1
2
3
4
public void CallAnotherMethodWithFlag(bool flag = false)
{
    CallAnotherMethodWithFlag(flag);
}


Maar eerlijk gezegd is de originele stelling zo ongelofelijk beroerd, dat iedere aanpassing leidt naar een verbetering :X

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


Acties:
  • +2 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 16:59
RobV schreef op woensdag 04 mei 2016 @ 14:02:
[...]


Maar eerlijk gezegd is de originele stelling zo ongelofelijk beroerd, dat iedere aanpassen leidt naar een verbetering :X
Nee hoor, dat kan vast nog slechter:
C#:
1
2
3
4
5
6
7
8
9
10
11
public void Foo(bool? flag) {
    string result;
    if (flag.HasValue)
        if (flag.Value)
            result = bool.TrueString;
        else
            result = bool.FalseString;
    else
        result = bool.FalseString;
    return CallAnotherMethodWithFlag(bool.Parse(result));
}

Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
ThomasG schreef op woensdag 04 mei 2016 @ 14:22:
[...]
Nee hoor, dat kan vast nog slechter:
C#:
1
2
3
4
5
6
7
8
9
10
11
public void Foo(bool? flag) {
    string result;
    if (flag.HasValue)
        if (flag.Value)
            result = bool.TrueString;
        else
            result = bool.FalseString;
    else
        result = bool.FalseString;
    return CallAnotherMethodWithFlag(!result.Equals("false"));
}
Geavanceerder kan ook,dmv Reflection.Emit() haha

Edit: ik ken mensen die hier voor de zekerheid een try/catch omheen hadden gezet, met een logging stack.

[ Voor 10% gewijzigd door RobV op 04-05-2016 14:25 ]

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

How was this ever supposed to work? :?
C#:
1
2
3
4
5
6
7
8
9
10
private Foo _SomeFoo;
internal string SomeFooStringRepresentation { get; set; }
public Foo SomeFoo {
    get {
        return _SomeFoo;
    }
    set {
        SomeFooStringRepresentation = value?.ToString();
    }
}

Private field heeft maar één usage, de getter in de property verderop...

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!

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

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zo kwam ik vandaag ook iets vaags tegen in onze codebase waar een nieuwere versie van Clang ineens over klaagde:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
class SomeClass
{
public:
    bool operator==(const SomeClass& other) const
    {
        // some equality test
    }

    bool operator!=(const SomeClass& other) const
    {
        return operator!=(other);
    }
};

8)7

Blijkbaar heeft iemand een SomeClass nooit op ongelijkheid hoeven testen :P

[ Voor 9% gewijzigd door .oisyn op 09-05-2016 22:53 ]

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.


Acties:
  • 0 Henk 'm!

  • qlum
  • Registratie: Mei 2010
  • Laatst online: 15-09 13:53
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
strong {
    font-weight: bold;
}
strong {
    font-weight: bold;
}
strong, b {
    font-weight: bold;
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    border: 0 none;
    font-family: inherit;
    font-size: 100%;
    font-style: inherit;
    font-weight: inherit;
    margin: 0;
    outline: 0 none;
    padding: 0;
    vertical-align: baseline;
}


Kwam dit tegen in firebug, de bovenste twee regels staan overigens in een ander stylesheet maar goed daar staan dan weer wel alle twee in.

Acties:
  • 0 Henk 'm!

  • Robicide
  • Registratie: Maart 2016
  • Nu online
Misschien mis ik een enorm obscuur geval waarin dit nuttig zou zijn, maar:

C#:
1
2
3
4
if (result.Data != null && result.Data != null)
{
    // do a thing
}


Check, dubbelcheck? :9

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

Robicide schreef op vrijdag 03 juni 2016 @ 16:25:
Misschien mis ik een enorm obscuur geval waarin dit nuttig zou zijn, maar:

C#:
1
2
3
4
if (result.Data != null && result.Data != null)
{
    // do a thing
}


Check, dubbelcheck? :9
Het zou zo maar kunnen dat tussen de evaluatie van de eerste subexpressie en de evaluatie van de tweede een of andere thread wat heeft lopen prutsen? :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • RobV
  • Registratie: Juni 2013
  • Niet online

RobV

Welcome to the grid, Program.

(overleden)
Robicide schreef op vrijdag 03 juni 2016 @ 16:25:
Misschien mis ik een enorm obscuur geval waarin dit nuttig zou zijn, maar:

C#:
1
2
3
4
if (result.Data != null && result.Data != null)
{
    // do a thing
}


Check, dubbelcheck? :9
Of iets heel heel heel engs zoals neveneffecten op de getter.

code:
1
2
3
4
5
6
7
8
9
public string Data
{
   get
   {
      this.flipper = !this.flipper;
      return this.flipper ? "Tekst" : null;
   }
}
[

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


Acties:
  • 0 Henk 'm!

  • SBTweaker
  • Registratie: November 2011
  • Laatst online: 31-08 21:16
F.West98 schreef op woensdag 30 maart 2016 @ 00:21:
C#:
1
int pageCount = (Int32)Math.Floor(Decimal.Divide(ItemCount, pageSize));

Tja. Hè. Wat moet je hier nou weer mee.
Ik zie het volgens mij over mijn hoofd, wat is er mis mee?

Acties:
  • 0 Henk 'm!

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

F.West98

Alweer 16 jaar hier

SBTweaker schreef op vrijdag 03 juni 2016 @ 23:12:
[...]

Ik zie het volgens mij over mijn hoofd, wat is er mis mee?
Beetje onhandige manier om gewoon te schrijven
C#:
1
int pageCount = ItemCount / pageSize;

Naast dat dit veel sneller is omdat dit een integer division is en er geen types gecast hoeven te worden enzo is het ook veel duidelijker :+

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!

  • SBTweaker
  • Registratie: November 2011
  • Laatst online: 31-08 21:16
F.West98 schreef op vrijdag 03 juni 2016 @ 23:23:
[...]

Beetje onhandige manier om gewoon te schrijven
C#:
1
int pageCount = ItemCount / pageSize;

Naast dat dit veel sneller is omdat dit een integer division is en er geen types gecast hoeven te worden enzo is het ook veel duidelijker :+
Ik ken het decimal type niet als het een float is met 2 getallen achter de comma en je voert een float in met 4 getallen zou hij anders afgerond worden.

Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 09-09 17:48
Daarnaast zou je in dit geval Math.Ceil() willen gebruiken, anders mis je de pagina voor de laatste paar items.

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Nu online

RayNbow

Kirika <3

mcDavid schreef op zaterdag 04 juni 2016 @ 08:05:
Daarnaast zou je in dit geval Math.Ceil() willen gebruiken, anders mis je de pagina voor de laatste paar items.
Ach, off-by-one is een feature, geen bug. :+

Ipsa Scientia Potestas Est
NNID: ShinNoNoir

Pagina: 1 ... 11 ... 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. :)