ok, de benaming "officiele" was misschien ietsje overdreven, maar ik verwees hiermee inderdaad naar K&R. Dit wordt door de meeste programmeurs tochwel als "de standaard" gezien. (ikzelf houd me er ook niet aanquote:.oisyn schreef op zondag 13 juli 2008 @ 17:18:
[...]
Officiele C regels? Kom op zeg. Er is K&R style, maar er zijn geen officiele regels voor C.
Vind jij dat ook niet ?
Sterker nog, wat is de uitkomst van deze expressie:quote:fleppuhstein schreef op zondag 13 juli 2008 @ 13:58:
[...]
In deze lijn kan ook snel de volgende fout gemaakt worden:
PHP:
1
2
3
4
5
6
7<?php
if (0 == "") {
echo "This is wrong!";
}
?>
PHP:
| <?php
|
Dit is een (versimpelde) versie van wat wij vandaag tegenkwamen in een stuk code. In PHP gaat dit dus compleet mis:
PHP:
| <?php
|
Reg. datum: 13 augustus 2005
Visual Basic:
1 | iAantalArchief = 0
|
Het RecordSet hierboven wordt gevuld door deze SQL:
SQL:
1 | if (@iTabsel=1)
|
Heeft blijkbaar nog nooit van een COUNT gehoord
En ook deze (Kon 'm zo snel niet meer vinden, maar het kwam hierop neer):
Visual Basic:
1 | while (conditie<10)
|
Liberate tutame ex inferis.
"De programma’s die we gebruiken zijn eigenlijk zo ontworpen dat ze allemaal onze aandacht opeisen als een stel dreinende peuters."
"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977
Reg. datum: 28 april 2000
Tja mischie heeft na de controle in de while een andere thread conditie wel veranderdquote:Yeroon1986 schreef op dinsdag 15 juli 2008 @ 15:00:
Visual Basic:
1
2
3
4
5while (conditie<10)
if (conditie<10) then
'code hier
end if
wend
To be, or not to be, those are the parameters
Reg. datum: 13 december 2005
Dan zou die thread dat ook na de if controle kunnen doenquote:rwb schreef op dinsdag 15 juli 2008 @ 16:22:
[...]
Tja mischie heeft na de controle in de while een andere thread conditie wel veranderd
Zyppora wijzigde dit bericht 15-07-2008 16:44 (6%)
Zyppora - 80 Warlock
Reg. datum: 08 juli 2008
Niet al binnen die loop wordt gewacht op input of als de loop wordt gebroken op een bepaalde value van de conditie of wat dan ook. Hoe vaak ik al nietquote:Haan schreef op dinsdag 15 juli 2008 @ 17:04:
[...]
Als er verder niets meer met condition gebeurt, heb je ook een mooie endless loop
code:
1
2
3
4
5
| while True:
if condition == 0:
break
if condition == 1:
continue |
Heb meegemaakt
-- edit
goedemorgen, als er inderdaad niks mee gebeurd is ie endless
simonkey wijzigde dit bericht 15-07-2008 17:11 (20%)
Reg. datum: 13 augustus 2005
Dat voorbeeld is imho ook vrij ranzige codequote:simonkey schreef op dinsdag 15 juli 2008 @ 17:08:
[...]
Niet al binnen die loop wordt gewacht op input of als de loop wordt gebroken op een bepaalde value van de conditie of wat dan ook. Hoe vaak ik al niet
code:
1 2 3 4 5while True: if condition == 0: break if condition == 1: continue
Heb meegemaaktDaarbij kan de loop gebroken worden met een exception of andersoortige interventie. Als dit binnen een thread draait kan de thread gewoon gesloten worden etc etc etc.
specs | Kater? Eerst water, de rest komt later
Reg. datum: 28 april 2000
Ach als er wel thread gebruikt werden zou het nog net zo fout zijn.quote:Yeroon1986 schreef op woensdag 16 juli 2008 @ 09:07:
haha, er worden geen threads gebruikt. Bestaat ook niet in ASP (VBscript dus) voor zover ik weet! In de while-loop wordt wel wat met die conditite gedaan, Ik liet het voorbeeld zien om dat er een dubbele check werd gedaan die volstrekt overbodig is.
To be, or not to be, those are the parameters
Wat denk je dat hier uit komt?quote:chris schreef op maandag 14 juli 2008 @ 15:32:
[...]
Sterker nog, wat is de uitkomst van deze expressie:
PHP:
1<?php
in_array("hello", array(0,1,2));
?>
Dit is een (versimpelde) versie van wat wij vandaag tegenkwamen in een stuk code. In PHP gaat dit dus compleet mis:
PHP:
1
2<?php
0 == "hi";
0 == "test";
?>
PHP:
| <?php
|
13" MacBook black / 20" Cinema Display / 3.5" iPhone 3G Wit / last.fm
code:
1
2
3
4
5
6
7
8
| if (tblZoek.Visible == false)
{
// Doe iets
}
else if (tblZoek.Visible == true)
{
// Doe iets anders
} |
C#:
1 | if (!tblZoek.Visible){
|
Heb nu een Animated PNG icon. Werkt in alle moderne browsers (Firefox en Opera).
Dan zou ik er eerder
C#:
1 | if (tblZoek.Visible){
|
van maken. De negatie zie je snel over het hoofd.
@super-muffin:
Soms wordt in de code-guidelines opgegeven dat je niet met een negatie mag werken om de reden die ik hierboven noem. Dan krijg je inderdaad dergelijke constructies. Echt fout zou ik ze niet willen noemen (tenzij het een gevolg is van een ontwikkelaar die helemaal geen negatie kent)
Ik zou echter wel een stukje commentaar in het lege blok opnemen. Iets als '\\do nothing'.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Reg. datum: 22 januari 2004
Gereserveerd voor toekomstige uitbreidingenquote:super-muffin schreef op woensdag 16 juli 2008 @ 10:21:
Of deze
code:
1 2 3 4 5 6 7if (expression) { } else { doeIets(); }
En dan ook geen stukje commentaar of iets.
Ook leuk:
PHP:
| <?php
|
Whereas Europeans generally pronounce my name the right way ('Nick-louse Veert'), Americans invariably mangle it into 'Nickel's Worth.' This is to say that Europeans call me by name, but Americans call me by value - Niklaus Wirth
Vind jij dat ook niet ?
En wat als tblZoek.Visible Null is?quote:Mozin schreef op woensdag 16 juli 2008 @ 10:06:
Kwam ik tegen in een van onze projecten, het is niet echt fout, maar wel een beetje omslachtig.
code:
1 2 3 4 5 6 7 8if (tblZoek.Visible == false) { // Doe iets } else if (tblZoek.Visible == true) { // Doe iets anders }
Currently Reading | Ik los geen problemen op, ik maak ze alleen...
Reg. datum: 22 januari 2004
Nee, dit is een voorbeeldquote:Niekk schreef op woensdag 16 juli 2008 @ 10:29:
Stond daar letterlijk "code die nooit uitgevoerd wordt" of wat moet ik me er van voorstellen ?
Icelus wijzigde dit bericht 16-07-2008 10:37 (7%)
Whereas Europeans generally pronounce my name the right way ('Nick-louse Veert'), Americans invariably mangle it into 'Nickel's Worth.' This is to say that Europeans call me by name, but Americans call me by value - Niklaus Wirth
Reg. datum: 05 juni 2005
C#:
1 | private static bool IsBool( string arg )
|
Dat moet toch eenvoudiger kunnen
Is op zich wel slim. De method ToBoolean geeft een boolean, die je in principe direct kan returnen, maar vergeet de ConversionException niet.quote:Tedkees schreef op woensdag 16 juli 2008 @ 11:32:
Ik kwam zojuist een mooie tegen:
C#:
1
2
3
4
5
6
7
8
9
10
11
12private static bool IsBool( string arg )
{
try
{
Convert.ToBoolean(arg);
return true;
}
catch
{
return false;
}
}
Dat moet toch eenvoudiger kunnen
2*2Ghz, 2GB, 20 centimeter.
Nope. de functie is IsBool. Er word dus alleen gecontrolleerd of the waarde een boolean of waarde die geconverteerd kan worden naar boolen bevat.quote:Geqxon schreef op woensdag 16 juli 2008 @ 11:41:
[...]
Is op zich wel slim. De method ToBoolean geeft een boolean, die je in principe direct kan returnen, maar vergeet de ConversionException niet.
Als bedoeling zou zijn om waarde van de boolean terug te geven, dan is de functie fout en werkt hij niet correct.
Currently Reading | Ik los geen problemen op, ik maak ze alleen...
