[alg] Slechtste programmeervoorbeelden deel 4 Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 89 ... 103 Laatste
Acties:
  • 993.619 views

Acties:
  • 0 Henk 'm!

Verwijderd

Davio schreef op vrijdag 22 juni 2012 @ 12:16:
Toch hoeven we er niet zo streng op te letten.

Laat hem lekker een Inlog en Uitlog-klasse maken en er zelf achterkomen dat het handig is om die samen te voegen.
Dat is ook niet echt een programmeerfout maar kan gezien worden als refactoring ;)

Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

LEDfan schreef op vrijdag 22 juni 2012 @ 13:03:
Oei nog een boek, als ik echt goed wil worden moet ik er nog 5 kopen, de eerste heb ik gelukkig gekregen van men ouders.

Meestal heb ik problemen met men namen doordat ik Engels en Nederlands in de code door elkaar begin te gebruiken. Ik zou eigenlijk alles naar het Engels moeten omzetten. (Nieuwe code ga ik sowieso doen, en een groot deel van de code moet toch nog naar PDO vertaalt worden, dus kan ik evengoed naar Engels omzetten).
Als je echt goed wilt worden zul je er nog wel meer moeten kopen ben ik bang ;-)
Al vind ik zelf dat je een boek zeer goed kan gebruiken voor de basis en vervolgens met verdiepen zul je toch internet gaan gebruiken omdat de boeken verouderd zijn of niet te vinden.

Last.fm | Code Talks


Acties:
  • 0 Henk 'm!

  • LEDfan
  • Registratie: Juni 2012
  • Laatst online: 22:20
Dat is ook zo, heb al wel een paar applicaties gemaakt, maar de basis zoals arrays of zelfs de verschillende data types kende ik niet. (Toch niet in PHP). Deze ga ik natuurlijk wel verbeteren.

Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

afvalzak schreef op vrijdag 22 juni 2012 @ 12:59:
[...]

Dan raad ik je aan het boek Clean Code te lezen. Het komt er eigenlijk op neer dat je je functies / variabellen gewoon beschrijft zoals ze zijn.
En als je dat jezelf aanleert ga je soms weer denken hoe je een naam toch wat korter kan maken omdat hij zo fucking lang is als hij de lading goed moet dekken. :+

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • nathanchunkie
  • Registratie: Januari 2010
  • Laatst online: 07-02 22:53

nathanchunkie

Developer

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <p><b>Jaar:</b> 
    <?php $plusyear = date('Y')+1; $minyear = date('Y')-1; ?>
    <a href="?p=kalender<?php if(isset($_GET['month'])){ echo '&month='.$_GET['month'].'&year='.$minyear;}?>"><?php echo $minyear; ?></a>
    <a href="?p=kalender<?php if(isset($_GET['month'])){ echo '&month='.$_GET['month'].'&year='.date('Y');}?>"><?php echo date('Y'); ?></a>
    <a href="?p=kalender<?php if(isset($_GET['month'])){ echo '&month='.$_GET['month'].'&year='.$plusyear;}?>"><?php echo $plusyear; ?></a>
    <p><b>Maand:</b> 
    <a href="?p=kalender&month=1<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Januari</a> - 
    <a href="?p=kalender&month=2<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Februari</a> - 
    <a href="?p=kalender&month=3<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Maart</a> - 
    <a href="?p=kalender&month=4<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">April</a> - 
    <a href="?p=kalender&month=5<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Mei</a> - 
    <a href="?p=kalender&month=6<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Juni</a> - 
    <a href="?p=kalender&month=7<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Juli</a> - 
    <a href="?p=kalender&month=8<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Augustus</a> - 
    <a href="?p=kalender&month=9<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">September</a> - 
    <a href="?p=kalender&month=10<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">Oktober</a> - 
    <a href="?p=kalender&month=11<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">November</a> - 
    <a href="?p=kalender&month=12<?php if(isset($_GET['year'])){echo '&year='.$_GET['year'];} ?>">December</a>



Pfoeh.

Front-end developer.


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
bwerg schreef op vrijdag 22 juni 2012 @ 15:36:
[...]

En als je dat jezelf aanleert ga je soms weer denken hoe je een naam toch wat korter kan maken omdat hij zo fucking lang is als hij de lading goed moet dekken. :+
Intellisense en CTRL-space dan valt dat wel mee.

Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 23:15
Gelukkig hoef je je niet druk te maken om xss; je gebruikers zijn immers altijd te vertrouwen!

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 22-09 16:01
Daar krijg ik gewoon hoofdpijn van :( . 8)7

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Ik niet: ik ben blij dat ik dat soort zooi niet meer hoef te onderhouden :+

Acties:
  • 0 Henk 'm!

  • LEDfan
  • Registratie: Juni 2012
  • Laatst online: 22:20
Misschien daarvoor een scriptje schrijven? 8)7

[ Voor 8% gewijzigd door LEDfan op 22-06-2012 19:35 ]


Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Davio schreef op vrijdag 22 juni 2012 @ 17:46:
[...]

Intellisense en CTRL-space dan valt dat wel mee.
Meestal wel, niet altijd. Als je gewoon lange berekeningen hebt (natuurkundige simulaties e.d.) met 10 variabelen wordt je gek als elke variable meer dan twee letters lang is.

Maar goed, niet dat de namen x, y, px, py, etc. zo onduidelijk zijn als je de context weet.

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Ik zie dat for-loopjes nog steeds moeilijk te begrijpen zijn? :+

Acties:
  • 0 Henk 'm!

  • nathanchunkie
  • Registratie: Januari 2010
  • Laatst online: 07-02 22:53

nathanchunkie

Developer

//weg weg weg weg

[ Voor 98% gewijzigd door nathanchunkie op 25-06-2012 00:02 ]

Front-end developer.


Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Ik snap niet echt wat je bedoelt nathanchunkie? Hoe slaag jij erin om iemand een link te bezorgen met xss erin, of hoe slaag jij erin om de company name aan te passen?

Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Vind dit net in de source van een app:

C#:
1
if (!isBackup) NeedsToBeSaved = false;

[ Voor 5% gewijzigd door Soundless op 25-06-2012 13:34 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Zo slecht is dat toch niet?

Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Als je alle kleine fouten hier bij elkaar optelt kom je toch heel snel op een blunder.

App zit trouwens vol met bugs.

+ ik wilde gewoon ff posten :p

[ Voor 16% gewijzigd door Soundless op 25-06-2012 14:20 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik vind het toch niet echt goed ...
Wat is er mis met het volgende?

C#:
1
NeedsToBeSaved = isBackup;

Acties:
  • 0 Henk 'm!

  • OKA
  • Registratie: Juni 2005
  • Laatst online: 18:48

OKA

Verwijderd schreef op dinsdag 26 juni 2012 @ 01:48:
[...]


Ik vind het toch niet echt goed ...
Wat is er mis met het volgende?

C#:
1
NeedsToBeSaved = isBackup
Als er een ; achter zou staan, zou het beter, of iig korter zijn.

Acties:
  • 0 Henk 'm!

Verwijderd

OKA schreef op dinsdag 26 juni 2012 @ 02:27:
[...]


Als er een ; achter zou staan, zou het beter, of iig korter zijn.
Uiteraard. Die ";" is iets die ik snel vergeet als ik niet echt aan het programmeren ben. Ik ben nochtans wel gewoon een ";" te zetten als ik aan het programmeren ben (C#, Java, PHP, ...)

Acties:
  • 0 Henk 'm!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

Verwijderd schreef op dinsdag 26 juni 2012 @ 01:48:
Ik vind het toch niet echt goed ...
Wat is er mis met het volgende?

C#:
1
NeedsToBeSaved = isBackup;
Het feit dat dat totaal niet doet wat het originele statement doet?

Acties:
  • 0 Henk 'm!

  • Z-Dragon
  • Registratie: December 2002
  • Laatst online: 05:11
roeleboel schreef op dinsdag 26 juni 2012 @ 09:52:
[...]


Het feit dat dat totaal niet doet wat het originele statement doet?
C#:
1
needsToBeSaved = needsToBeSaved && isBackup;

Maar of dat nou een verbetering is...

^ Wat hij zegt.


Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:04
Juweeltje uit onze codebase:

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
private void bgwSync_DoWork(object sender, DoWorkEventArgs e)
{
    while (true) // constantly run
    {
        if (Properties.Settings.Default.BackgroundSyncEnabled && !IsInitializing)
        {
            try
            {
                Invoke
                (
                    RunSyncAsDelegate()
                );

                Thread.Sleep(Properties.Settings.Default.BackgroundSyncTime);

            }
            catch { }
        }
        else
        {
            Thread.Sleep(1000);
        }
    }
}


bgwSync is dus een BackgroundWorker die dus op de achtergrond draait en vervolgens op de GUI thread gaat synchroniseren 8)7 :?

Hail to the king baby!


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Och, ik zat meer te kijken naar de lege catch waarna vervolgens weer keurig verder gegaan wordt (en dan zelfs zonder sleep)

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!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
roeleboel schreef op dinsdag 26 juni 2012 @ 09:52:
[...]


Het feit dat dat totaal niet doet wat het originele statement doet?
Wel dus..

Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 22:23
Oh?

Afbeeldingslocatie: http://tweakers.net/ext/f/clFU9uI0mVQXQnPjZcgTTXvx/full.png

Heb even geen zin een RML table te gaan klussen, dan maar zo :P Het doet dus in 75% van de gevallen hetzelfde, in 25% geeft het de verkeerde uitkomst :)

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Niet dus, bij de combinatie isBackup = true en NeedsToBeSaved = false.
code:
1
if (!isBackup) NeedsToBeSaved = false;

Nu is NeedsToBeSaved nog steeds false, maar bij:
code:
1
NeedsToBeSaved = isBackup;

krijgt NeedsToBeSaved de waarde true. Of die combinatie nodig of zelfs zinnig is, is een tweede, maar de code doet zeker niet hetzelfde.


@Paul :(

[ Voor 4% gewijzigd door CodeCaster op 26-06-2012 10:37 ]

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


Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Excuus, mijn fout, de code is niet compleet. Er staat ergens bovenaan de method NeedsToBeSaved = true;

Acties:
  • 0 Henk 'm!

  • roeleboel
  • Registratie: Maart 2006
  • Niet online

roeleboel

en zijn beestenboel

ja lap, wat hierboven dus allemaal staat :-)
(ik en mijn af & toe trage verstand typskills ook weer)

[ Voor 57% gewijzigd door roeleboel op 26-06-2012 10:56 ]


Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
Ik kwam deze bug tegen in oude macrocode. Ik werk op z/OS, en we hebben bovenop de assembler een eigen macrotaal gebouwd.

De code die ik wilde draaien loopte oneindig lang:
code:
1
2
3
4
5
6
         DATA WORK
INDEX    DS X
         ENDDATA ,
         DO (INDEX,FROM,0,TO,255)
           ..
         ENDDO ,


De DS (DataStore) X is een unsigned byte.

De code genereerde aan het begin van de lus de instructies voor de "TO,255" als "verlaat de lus als INDEX >= 256" :9

[ Voor 14% gewijzigd door Sendy op 26-06-2012 18:48 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Soundless schreef op dinsdag 26 juni 2012 @ 10:38:
Excuus, mijn fout, de code is niet compleet. Er staat ergens bovenaan de method NeedsToBeSaved = true;
Dus? Misschien is er halverwege tussen die code wel een andere reden afgeleid waarom er niet opgeslagen hoeft te worden. Dat dat nu misschien weg is maakt de code nog niet fout. NOFI, maar als dit al als een bug gezien wordt dan vraag ik me af of het huidige team niet meer bugs zal gaan veroorzaken...

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!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
komt idd beetje in de buurt van het 'not build here'-syndroom waarbij het credo is: 'ik snap het niet dus we bouwen het om'

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Janoz schreef op dinsdag 26 juni 2012 @ 16:31:
[...]

Dus? Misschien is er halverwege tussen die code wel een andere reden afgeleid waarom er niet opgeslagen hoeft te worden. Dat dat nu misschien weg is maakt de code nog niet fout. NOFI, maar als dit al als een bug gezien wordt dan vraag ik me af of het huidige team niet meer bugs zal gaan veroorzaken...
Nu ga je zelf van dingen uit. Ik plaats hem hier dus niet omdat er tussenin code wordt veranderd maar omdat het apart is dat je zoiets doet terwijl je dus gewoon NeedsToBeSaved = isBackup; kan doen (en ja dat kan dus echt in dit geval)

Ik heb ook nergens beweerd dat dit als bug wordt gezien. Wordt dan ook niks aan gedaan, dit blijft gewoon staan...

We hebben genoeg bugs om te fixen en dit is er geen :)

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
If it ain't broken, don't try to refactor. :9

[ Voor 3% gewijzigd door Davio op 27-06-2012 09:07 ]


Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Davio schreef op woensdag 27 juni 2012 @ 09:07:
If it ain't broken, don't try to refactor. :9
Precies :P
Alles werkt echt net op het puntje dus elke kleine wijziging kan fataal zijn :P

Nadat we van de grootste bugs af zijn, kunnen we wel gaan refactoren (hoop ik :X )

Gaan we niet een beetje offtopic?

[ Voor 21% gewijzigd door Soundless op 27-06-2012 09:32 ]


Acties:
  • 0 Henk 'm!

  • com2,1ghz
  • Registratie: Oktober 2004
  • Laatst online: 22-09 13:41
Soundless schreef op woensdag 27 juni 2012 @ 09:31:
[...]


Precies :P
Alles werkt echt net op het puntje dus elke kleine wijziging kan fataal zijn :P

Nadat we van de grootste bugs af zijn, kunnen we wel gaan refactoren (hoop ik :X )

Gaan we niet een beetje offtopic?
Dan werk je met Italiaanse pasta. Denk maar eens zo. Stel dat er een bug is. Hoe ga je het dan oplossen? Werk je dan ook overal omheen?

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Lekker :Y)

De hoeveelheid WTF's valt hier de laatste tijd eigenlijk wel mee. Of ik begin gewend te raken aan de code, dat kan natuurlijk ook. :+

We are shaping the future


Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 23:35
Davio schreef op woensdag 27 juni 2012 @ 09:07:
If it ain't broken, don't try to refactor. :9
Afbeeldingslocatie: http://i.imgur.com/wGUTG.gif

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Soundless schreef op woensdag 27 juni 2012 @ 08:42:
[...]


Nu ga je zelf van dingen uit. Ik plaats hem hier dus niet omdat er tussenin code wordt veranderd maar omdat het apart is dat je zoiets doet terwijl je dus gewoon NeedsToBeSaved = isBackup; kan doen (en ja dat kan dus echt in dit geval)

Ik heb ook nergens beweerd dat dit als bug wordt gezien. Wordt dan ook niks aan gedaan, dit blijft gewoon staan...

We hebben genoeg bugs om te fixen en dit is er geen :)
Is dat werkelijk zo. je vervangende code betekend:

"Of er opgeslagen moet worden is equivalent aan of het een backup is."

De originele code heeft meer als betekenis:

"Als het geen backup is, dan hoeft er ook niet opgeslagen te worden."

De uitwerking is misschien hetzelfde, maar het zijn wel twee fundamenteel andere dingen. Ik vraag mij dan ook terecht af of de code door die aanpassing beter wordt.

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!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
com2,1ghz schreef op woensdag 27 juni 2012 @ 09:47:
[...]

Dan werk je met Italiaanse pasta. Denk maar eens zo. Stel dat er een bug is. Hoe ga je het dan oplossen? Werk je dan ook overal omheen?
Bij de kleinere bugs momenteel wel.
Er is een sectie die vol zit met bugs. Grootste gedeelte van de bugs heeft daarmee te maken. Ik denk er over om heel die sectie te herschrijven maar ik wil dit graag eerst bespreken met een collega (ben nog nieuw in deze afdeling :P)
Janoz schreef op woensdag 27 juni 2012 @ 09:59:
[...]

Is dat werkelijk zo. je vervangende code betekend:

"Of er opgeslagen moet worden is equivalent aan of het een backup is."

De originele code heeft meer als betekenis:

"Als het geen backup is, dan hoeft er ook niet opgeslagen te worden."

De uitwerking is misschien hetzelfde, maar het zijn wel twee fundamenteel andere dingen. Ik vraag mij dan ook terecht af of de code door die aanpassing beter wordt.
Zoals ik al zei heb ik hier niks aan aangepast. Dus die ifje staat er nog. Ben het ook niet van plan aan te passen.

[ Voor 18% gewijzigd door Soundless op 27-06-2012 10:17 ]


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Ach, als je duidelijke (unit) tests hebt, dan zal je het best kunnen herschrijven omdat je dan makkelijker kunt controleren of de output nog klopt.

Als je die niet hebt, wordt het al een stuk lastiger natuurlijk.

Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Davio schreef op woensdag 27 juni 2012 @ 11:43:
Ach, als je duidelijke (unit) tests hebt, dan zal je het best kunnen herschrijven omdat je dan makkelijker kunt controleren of de output nog klopt.

Als je die niet hebt, wordt het al een stuk lastiger natuurlijk.
Dat dus :P
Er zijn geen unit tests.
Maar dat is nog niet alles!
Het is een van de main applicaties van het bedrijf en er is geen documentatie. Er is maar 1 ontwikkelaar die weet hoe het in elkaar zit en dat is omdat hij het heeft gebouwd.
Als hij vertrekt, moet het bedrijf waarschijnlijk 3/4 van de werknemers ontslaan om niet failliet te gaan...

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46

Acties:
  • 0 Henk 'm!

  • Intru
  • Registratie: November 2001
  • Laatst online: 09-09 09:31
com2,1ghz schreef op woensdag 27 juni 2012 @ 09:47:
[...]
Dan werk je met Italiaanse pasta.
Lasagne code?

Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 22-09 15:24
Hahaha, dat plaatje heeft m'n dag gemaakt! :D
Zo treffend.

Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Dat gelukkig niet. Hij heeft redelijke variabelnamen. :9

Acties:
  • 0 Henk 'm!

  • cpf_
  • Registratie: Februari 2011
  • Laatst online: 20-07-2022
Nieuwtje:

Java:
1
2
3
4
    public void setStatus(Character value) {
        if(status == null) this.status = null;
        else this.status = status.toString();
    }

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Mooi gebruik van je parameter. :)

Acties:
  • 0 Henk 'm!

  • cpf_
  • Registratie: Februari 2011
  • Laatst online: 20-07-2022
Davio schreef op donderdag 28 juni 2012 @ 10:36:
Mooi gebruik van je parameter. :)
Vond ik er ook van! Iemand die een refactor erdoor heeft gejaagd zonder erbij na te denken.

Bleek daarboven nog eens dat dit stukje niet gedekt was door enige unit tests, of uberhaupt niet gebruikt werd (momenteel andere tests aan het draaien om dat te controleren) -> Weghalen is de boodschap.

Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
cpf_ schreef op donderdag 28 juni 2012 @ 10:39:
[...]

Vond ik er ook van! Iemand die een refactor erdoor heeft gejaagd zonder erbij na te denken.

Bleek daarboven nog eens dat dit stukje niet gedekt was door enige unit tests, of uberhaupt niet gebruikt werd (momenteel andere tests aan het draaien om dat te controleren) -> Weghalen is de boodschap.
Wat voor tests zijn dat?

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Find in Files-tests.

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


Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
lol ok :p

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
In Visual Studio: CTRL-K, R.

Acties:
  • 0 Henk 'm!

  • Jegorex
  • Registratie: April 2004
  • Laatst online: 03-09 23:24
In Eclipse: Ctrl +Shift + G

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Of natuurlijk gewoon: De methode verwijderen en kijken of je nog kunt builden. :)

Acties:
  • 0 Henk 'm!

  • Soundless
  • Registratie: November 2008
  • Laatst online: 24-07 14:19
Davio schreef op donderdag 28 juni 2012 @ 10:56:
[...]

In Visual Studio: CTRL-K, R.
CTRL-K, R opent bij mij de Repo explorer

CTRL+Shift+F = Find in Files

Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 22-09 13:01
Eén van de slechtste programmeervoorbeelden die ik heb gezien heb ik ooit zelf geschreven. Typisch gevalletje 'test-code in productie'.

Het achtergrond verhaal: Externe leverancier had zonder goede waarschuwing een API veranderd, waardoor ik in een haastklus de nieuwe API moest implementeren om file informatie te tonen. Natuurlijk moest ik dit 's ochtends vroeg doen terwijl er 250+ KM file stond, en ik wilde m'n code nog even testen voor het geval er geen files/waarschuwingen zijn.

Het resultaat op productie (geen copy paste, maar de situatie uit het hoofd even snel opnieuw getypt):

M'n viewscript:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<? unset($traffic); ?>

<li>
<? foreach ($traffic['jams'] as $trafficjam): ?>
     <!-- Toon file -->
<? endforeach; ?>
</li>

<li>
<? foreach ($traffic['warnings'] as $warning): ?>
    <!-- Toon waarschuwing -->
<? endforeach; ?>
</li>


De echte code was iets anders opgezet en toonde geen notices op het moment dat de traffic array niet bestond, maar regel 1 had dus niet in productie mogen komen :). Wijze les: Als je gebruik maakt van externe API's en je cached de boel toch al in je eigen database.... manipuleer dan de data in je database ipv deze oplossing die uit pure luiheid is ontstaan :).

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Soundless schreef op donderdag 28 juni 2012 @ 11:13:
[...]


CTRL-K, R opent bij mij de Repo explorer

CTRL+Shift+F = Find in Files
Hmm, CTRL-K, R is bij mij Find Symbol Results waar ik op doelde.

Acties:
  • 0 Henk 'm!

  • cpf_
  • Registratie: Februari 2011
  • Laatst online: 20-07-2022
Davio schreef op donderdag 28 juni 2012 @ 11:05:
Of natuurlijk gewoon: De methode verwijderen en kijken of je nog kunt builden. :)
Wat een reacties. Deze test heb ik iig al gedaan
CTRL+R G had ik ook al gedaan.

Nu hebben we ook Integration Tests, die niet getoont worden in onze sonar: Daar kan ik dus niet vlug zien of het al dan niet nog ergens stiekem gebruikt wordt. Deze draaien (met success) kan daar dan klaring over geven.

Acties:
  • 0 Henk 'm!

  • JohnStaakke
  • Registratie: Oktober 2007
  • Laatst online: 21-09 09:58

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 20:48

Patriot

Fulltime #whatpulsert

XyritZz schreef op donderdag 28 juni 2012 @ 11:18:Wijze les: Als je gebruik maakt van externe API's en je cached de boel toch al in je eigen database.... manipuleer dan de data in je database ipv deze oplossing die uit pure luiheid is ontstaan :).
Wat heeft dat in hemelsnaam te maken met het unsetten van een variabele? :+

Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 22-09 13:01
Patriot schreef op donderdag 28 juni 2012 @ 13:03:
[...]


Wat heeft dat in hemelsnaam te maken met het unsetten van een variabele? :+
Het unsetten van de variabele was om te testen hoe de code zich zou gedragen wanneer er geen files/waarschuwingen zijn. Ik had beter de gecachte data in de database kunnen manipuleren om deze situatie na te bootsen omdat er dan geen risico zou zijn om per ongeluk testcode te committen en naar productie te pushen :).

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • BramT
  • Registratie: Oktober 2001
  • Laatst online: 20:20

BramT

Rule #1

afvalzak schreef op dinsdag 19 juni 2012 @ 15:19:
[...]
Heel leuk maar als dit zijn eerste stukje OOP PHP is wat neem ik aan voor zichzelf is zou ik me daar niet te druk over maken.
Hier wil ik toch wel even op terugkomen (ja het is een paar pagina's geleden). Maar zeker voor beginnende programmeurs is het juist erg belangrijk om je je te realiseren waarom je nu OOP toepast. Die realisatie, dat inzicht, is van onschatbare waarde en wordt achteraf steeds moeilijker om in te zien.

Het probleem is dat er snel een "het werkt dus het is goed" gedachte gaat sluimeren. Iedereen in deze wereld kent wel iemand die hard roept dat hij OO programmeert maar in feite alleen z'n functies aan het categoriseren is. En probeer iemand die dat al 10 jaar doet maar 's uit te leggen dat hij/zij er geen bal van snapt.... :'(

Als een beginnende programmeur dus dit begint te doen onder de noemer van OO mag wat mij betreft alles aan de kant gelazerd worden. De hoe & waarom van OO echt snappen is een enorm belangrijke en solide basis voor iedere programmeur die professioneel gezien verder wil komen.

You are the all-dancing, all-singing crap of the world - Jack


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Een pareltje van m'n werk. Iets dat (toevallig) alleen maar boven kwam drijven als ze runnen met het nieuwe filesystem (gemaakt door moi) dus vingers wezen naar mij. Op basis van de callstack zei ik al dat het vrij onwaarschijnlijk was dat het er ook maar iets mee te maken had, maar people insisted.

Stuitte ik uiteindelijk op:
C++:
1
2
3
4
      if (m_streamState == kDestroyed)
            delete this;

      return m_next;

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!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Eerst jezelf verwijderen en dan returnen? Mag dat?

En waarom werkte het eerst wel??

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Davio schreef op vrijdag 29 juni 2012 @ 15:22:
Eerst jezelf verwijderen en dan returnen? Mag dat?
Natuurlijk mag dat. 't Gaat alleen fout als je daarna nog members aan gaat spreken op 'this', zoals 'm_next'.
En waarom werkte het eerst wel??
Het heeft nooit gewerkt, alleen door bepaalde racecondities kwam hij nooit in dat codepath terecht. En in final builds clearen we geen memory dat net vrijgegeven is waardoor members meestal nog wel de goede waarde hebben als er geen allocatie tussendoor plaatsvindt

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!

Verwijderd

Onder het motto: slechte implementatievoorbeelden.

Men neme een XML document

XML:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<products>

 <foo>1</foo>
 <foo>2</foo>

 <bar>3</bar>

</products>

(extra enters voor de duidelijkheid)

Men neme powershell 2.0, en leest dat document in
PowerShell:
1
$xml = [xml](get-content -en utf8 file.xml)


code:
1
($xml.products.foo).count

Returnt 2. Klopt toch?

code:
1
($xml.products.bar).count

Returnt... helemaal niets 8)7

edit: in powershell 3.0 doet hij wel wel netjes. Ik was toch al van plan om over te gaan op windows 8 zodra de RTM uitkomt...

[ Voor 16% gewijzigd door Verwijderd op 02-07-2012 09:51 ]


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Ik werk nu aan een C# project waar warnings as errors aanstaat, en er warnings staan ingesteld op het ontbreken van commentaar voor publieke members. Dat levert dit soort mooi commentaar op (thingy is mijn poging tot anoniemisering):

C#:
1
2
3
4
5
6
7
8
9
10
11
12
        /// <summary>
        /// Gets the global thingy status view.
        /// </summary>
        /// <value>The global thingy status view.</value>
        /// <CreatedBy>JCD 4 NOV 2010</CreatedBy>
        /// <HistoryOfChanges></HistoryOfChanges>
        /// <CreatedBy>JCD 4 NOV 2010</CreatedBy>
        /// <HistoryOfChanges></HistoryOfChanges>
        public IEnumView GlobalThingyStatusView
        {
            get { return mThingyStatus; }
        }

En dat dus voor elke method, property enzovoort. Ik heb nog geen enkel commentaar gezien dat ook maar 1% waarde toevoegt t.o.v. de functienaam 8)7
Dit is gelukkig code die ergens anders is ontwikkeld en nu is overgenomen, dus ik ga het voorstel inschieten om ten eerste die warning uit te zetten, en ten tweede het overbodige commentaar te verwijderen.

[ Voor 10% gewijzigd door MBV op 04-07-2012 09:44 ]


Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 21-09 16:06
Nou bedankt dat je dit met ons wilde delen. Je kunt er ook fatsoenlijk commentaar neerzetten zodat er onder jou initialen wel commentaar staat.

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Tja, ik heb ooit een keer zo'n autocommenter van GhostDoc eroverheen gegooid en al die waardeloze comments ben ik nu handmatig weer aan het verwijderen.

9 vd 10 keer is een goede methodenaam al voldoende.
Zeker een parameterloze constructor behoeft eigenlijk geen comment.

// Creates a new instance of Foo

No shit, Sherlock!

[ Voor 3% gewijzigd door Davio op 04-07-2012 10:21 ]


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 22:53
Ik doe tegenwoordig nooit meer aan comments, ik kies altijd goede namen. Bespaart een hoop tijd, en onderhoud. Ik verbaas me echter wel als ik terug kijk naar oude code van mij hoe ontzettend netjes en overzichtelijk dat is vergeleken met de (commentloze) code die ik nu schrijf :P

En dan heb ik het over code van iets meer dan een half jaar geleden 8)7

Acties:
  • 0 Henk 'm!

  • Harribo
  • Registratie: Augustus 2002
  • Laatst online: 20:02
code:
1
2
3
4
5
6
7
if x=1 then y=1
elsif x=2 then y=1
elsif x=3 then y=1
elsif x=4 then y=1
elsif x=5 then y=1
elsif x=6 then y=1
end

:)

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 20:50

Sebazzz

3dp

Davio schreef op donderdag 28 juni 2012 @ 11:05:
Of natuurlijk gewoon: De methode verwijderen en kijken of je nog kunt builden. :)
Niet helemaal. Reflection kan een hoop verknallen :P

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


Acties:
  • 0 Henk 'm!

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Davio schreef op woensdag 04 juli 2012 @ 10:20:
Zeker een parameterloze constructor behoeft eigenlijk geen comment.

// Creates a new instance of Foo

No shit, Sherlock!
Dat is volgens mij niet het doel van documentatie, volgens mij moet je niet "Creates a new instance of Foo" maar uitleggen wat Foo doet.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Dat hoort dan juist niet bij de constructor, maar als class commentaar.

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!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
jip_86 schreef op woensdag 04 juli 2012 @ 10:04:
Nou bedankt dat je dit met ons wilde delen. Je kunt er ook fatsoenlijk commentaar neerzetten zodat er onder jouw initialen wel commentaar staat.
Welk nuttig commentaar wil je bij een parameterloze constructor toevoegen? Wat voor klasse het is staat bovenaan bij de klasse, wat voor wijzigingen er zijn doorgevoerd staat in versiebeheer, en verder krijg je inderdaad 'create new instance of Foo' als nuttige summary. Dat volgt al uit de declaratie... Het enige effect is dat je je een ongeluk scrollt, en snel het overzicht kwijt raakt waar je nu weer zit. Als er verschillende constructors zijn kan het wel nuttig zijn, dan komt er zoiets als 'This is similar to Foo(42, SomeDefault)'

Uiteraard ga ik mezelf niet verbieden om nuttig commentaar alsnog toe te voegen, maar het verplichte spelletje 'herschrijf de functienaam' doe ik liever niet.
Avalaxy schreef op woensdag 04 juli 2012 @ 10:23:
Ik doe tegenwoordig nooit meer aan comments, ik kies altijd goede namen. Bespaart een hoop tijd, en onderhoud. Ik verbaas me echter wel als ik terug kijk naar oude code van mij hoe ontzettend netjes en overzichtelijk dat is vergeleken met de (commentloze) code die ik nu schrijf :P

En dan heb ik het over code van iets meer dan een half jaar geleden 8)7
Ik zie hier 2 tegenstrijdigheden:
- code zonder comments is vaak overzichtelijker, omdat er meer in 1 scherm past
- bespaart een hoop onderhoud, maar je snapt nu al niet meer wat je code van een half jaar geleden doet. Dat kost dus een hoop extra onderhoud :?

Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 22:00
En als je nu eens standaard instelt dat je commentaar ingeklapt is? :)

Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 21-09 16:06
MBV schreef op woensdag 04 juli 2012 @ 10:46:
[...]

Welk nuttig commentaar wil je bij een parameterloze constructor toevoegen?
Ehm, wat er gebeurd in die constructor. Stel je al bepaalde dingen in in die constructor of moet ik zelf nog wat doen ten opzichte van een constructor die wel parameters heeft? Die variant met drie slashes word ook meegenomen in je IntelliSense en scheelt je bijv weer een keer f12 om naar je constructor te springen.

Change history is inderdaad nutteloos. Zoveel regels extra regels is niet nodig.

[ Voor 7% gewijzigd door jip_86 op 04-07-2012 11:48 ]


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 22:53
MBV schreef op woensdag 04 juli 2012 @ 10:46:
[...]

Ik zie hier 2 tegenstrijdigheden:
- code zonder comments is vaak overzichtelijker, omdat er meer in 1 scherm past
- bespaart een hoop onderhoud, maar je snapt nu al niet meer wat je code van een half jaar geleden doet. Dat kost dus een hoop extra onderhoud :?
Nee, je begrijpt hem verkeerd. Ja, er past meer code op het scherm zonder comments, dan is het dus JUIST onoverzichtelijker in mijn ogen :P Dan heb je namelijk één groot massief blok code, in plaats van blokjes die duidelijk gescheiden zijn met comments (die in Visual Studio in een andere kleur zijn). Qua code oogt het dus veel rustiger.

En ik snap wel wat de code doet hoor, ik weet niet waar je dat vandaan haalt :)

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
Inzoomen dus, dan zie je minder code :D

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:49
jip_86 schreef op woensdag 04 juli 2012 @ 11:10:
[...]

Ehm, wat er gebeurd in die constructor. Stel je al bepaalde dingen in in die constructor of moet ik zelf nog wat doen ten opzichte van een constructor die wel parameters heeft? Die variant met drie slashes word ook meegenomen in je IntelliSense en scheelt je bijv weer een keer f12 om naar je constructor te springen.
Ja, ik heb het boek van Robert C gelezen genaamd clean code

Code moet zichzelf uit kunnen leggen! Als een constructor dermate ingewikkeld is dat je er comments bij moet gaan zetten dan zou ik eens nadenken over of die constructor niet een beetje teveel aan het doen is en of die functionaliteit niet kan worden opgedeeld in kleinere functies.

Immers commentaar moet worden aangepast als de functie wordt aangepast en dat gebeurt niet altijd even netjes en dus is je commentaar fout..

[ Voor 8% gewijzigd door Webgnome op 04-07-2012 11:58 ]

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
wsitedesign schreef op woensdag 04 juli 2012 @ 11:04:
En als je nu eens standaard instelt dat je commentaar ingeklapt is? :)
Als je commentaar zo nuttig is dat je het het liefste niet ziet, wat is dan het nut van commentaar? 8)7 :'(
Het is wel een oplossing voor het onderhoud aan deze code natuurlijk.
jip_86 schreef op woensdag 04 juli 2012 @ 11:10:
[...]

Ehm, wat er gebeurd in die constructor. Stel je al bepaalde dingen in in die constructor of moet ik zelf nog wat doen ten opzichte van een constructor die wel parameters heeft? Die variant met drie slashes word ook meegenomen in je IntelliSense en scheelt je bijv weer een keer f12 om naar je constructor te springen.
Er staat bij elke constructor "Create new instance of Foo" zonder verdere informatie. Als ik zelf een niet-triviale constructor schrijf zal ik het er zeker bij zetten, maar juist voor die 90% van de gevallen waarbij de constructor er vooral voor de vorm staat kan je het commentaar ook weglaten.
oh ja, in C# is het nergens voor nodig om een lege constructor neer te zetten. Misschien de volgende keer dat ook maar weglaten.
Webgnome schreef op woensdag 04 juli 2012 @ 11:55:
[...]


Ja, ik heb het boek van Robert C gelezen genaamd clean code

Code moet zichzelf uit kunnen leggen! Als een constructor dermate ingewikkeld is dat je er comments bij moet gaan zetten dan zou ik eens nadenken over of die constructor niet een beetje teveel aan het doen is en of die functionaliteit niet kan worden opgedeeld in kleinere functies.
Dit gaat gedeeltelijk over iets anders: uit je commentaar voor zo'n constructor wordt ook je documentatie en intellisense informatie gehaald. Als je dus Foo(), Foo(int count), en Foo(int count, MyEnum whatever) hebt is het wel handig om te weten welke van de 3 je nodig hebt zonder naar de code te kijken. "Create new instance of Foo without arguments" voegt dan niks toe, maar "Create instance of foo with index set to 0, and whatever set to Bar" wel.

Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 21-09 16:06
Webgnome schreef op woensdag 04 juli 2012 @ 11:55:
[...]


Code moet zichzelf uit kunnen leggen!
Ah ja, met dit excuus is zo ongeveer heel ons pakket niet voorzien van commentaar op plekken waar dit het leven toch wel een stuk makkelijker zou maken.

[ Voor 10% gewijzigd door jip_86 op 04-07-2012 14:15 ]


Acties:
  • 0 Henk 'm!

  • Zeebonk
  • Registratie: Augustus 2005
  • Laatst online: 30-07 20:50
Het is niet wel of niet overal comments, ook niet in boeken als Clean Code. Het is: gebruik comments zo min mogelijk omdat deze over het algemeen niet worden onderhouden en denk 2x na voordat je een comment gebruikt, kan je het niet oplossen met betere naamgeving/opsplitsen van functionaliteit?

Edit: het lijkt alsof ik nu zeg dat het zo MOET, maar dat is niet zo, ik wilde er op wijzen dat de "overal comments" vs. "nerges comments" regels niet werken, wat al wordt aangetoond met voorbeelden.

[ Voor 25% gewijzigd door Zeebonk op 04-07-2012 14:33 ]


Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Ik voeg eigenlijk overal commentaar toe. Veelal laat ik me hierbij helpen door GhostDoc, maar ik pas het commentaar wel aan. "Gets or sets the name of the first." is niet echt logisch als de klasse Person heet, bijvoorbeeld. :')

Waarom? Enerzijds om gedrag te documenteren, anderzijds omdat ik graag zo veel mogelijk consistente code heb. Alle properties en methods voorzien van documentatie komt op mij iets professioneler over. Al moet ik zeggen dat het niet altijd lukt, i.v.m. tijdsdruk enzo.

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 21:49
Zeebonk schreef op woensdag 04 juli 2012 @ 14:25:
Het is niet wel of niet overal comments, ook niet in boeken als Clean Code. Het is: gebruik comments zo min mogelijk omdat deze over het algemeen niet worden onderhouden en denk 2x na voordat je een comment gebruikt, kan je het niet oplossen met betere naamgeving/opsplitsen van functionaliteit?

Edit: het lijkt alsof ik nu zeg dat het zo MOET, maar dat is niet zo, ik wilde er op wijzen dat de "overal comments" vs. "nerges comments" regels niet werken, wat al wordt aangetoond met voorbeelden.
Eensch. Anyways , is geen echt slecht code voorbeeld maar wel een grappig gebruik van namen. Ben nu bezig met een lotus notes database voor uren registratie.. Kom ik een veldje tegen 'TimeTravelHours'. Ik ben alleen nog aan het zoeken naar de 'Start warpdrive' knop _O-

[ Voor 17% gewijzigd door Webgnome op 04-07-2012 15:01 ]

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Code kan nog zo duidelijk en leesbaar zijn, maar als er meerdere manieren zijn om iets te doen kan het soms ook heel handig zijn om even in een comment te zeggen dat je die manieren wel hebt overwogen.

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • Jeldert
  • Registratie: Juni 2001
  • Niet online

Jeldert

Rozijntjes

PiepPiep schreef op woensdag 04 juli 2012 @ 14:59:
Code kan nog zo duidelijk en leesbaar zijn, maar als er meerdere manieren zijn om iets te doen kan het soms ook heel handig zijn om even in een comment te zeggen dat je die manieren wel hebt overwogen.
Daar heb je dan weer een architectuurdocument voor :)

Commentaar is vooral leuk als het niet (meer) met de code overeenkomt. Welke van de 2 spreekt dan de waarheid :?

Juist


Acties:
  • 0 Henk 'm!

  • XyritZz
  • Registratie: Augustus 2003
  • Laatst online: 22-09 13:01
Zeebonk schreef op woensdag 04 juli 2012 @ 14:25:
Het is niet wel of niet overal comments, ook niet in boeken als Clean Code. Het is: gebruik comments zo min mogelijk omdat deze over het algemeen niet worden onderhouden en denk 2x na voordat je een comment gebruikt, kan je het niet oplossen met betere naamgeving/opsplitsen van functionaliteit?

Edit: het lijkt alsof ik nu zeg dat het zo MOET, maar dat is niet zo, ik wilde er op wijzen dat de "overal comments" vs. "nerges comments" regels niet werken, wat al wordt aangetoond met voorbeelden.
Bij elke method uitgebreid beschrijven wat code doet hoeft voor mij ook niet, zeker niet als je niet verder komt dan "Insert data into database" boven een functie die insertData heet...

Echter vind ik het wel zeer prettig als op z'n minst param types en return types gedocumenteerd zijn. Niet in de laatste plaats omdat ik veel PHP schrijf en IDE's de types in de comments nodig hebben voor autocompletion.

I think there is a world market for maybe five computers. - Thomas Watson (1874-1956), Directeur van IBM (1943)


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 21:04
Dat is in C# niet van toepassing, aangezien een functie-argument altijd getypeerd moet zijn (of mag 'var' daar ook?). "int index" heeft geen documentatie nodig bij een array, toch?

Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:17
MBV schreef op woensdag 04 juli 2012 @ 15:42:
Dat is in C# niet van toepassing, aangezien een functie-argument altijd getypeerd moet zijn (of mag 'var' daar ook?). "int index" heeft geen documentatie nodig bij een array, toch?
var niet, dynamic wel.
Zelf vind ik het ook belangrijker dat de intentie van de method wordt beschreven in de comments, dan wat het daadwerkelijk doet. Dat laatste maak ik wel op uit de code. De intentie van een methode of klasse verandert ook wat minder snel. Eigenlijk hoort die zelfs niet te veranderen, maak dan een nieuwe aan en markeer de oude als obsolete (als die dat is).

[ Voor 9% gewijzigd door Caelorum op 04-07-2012 15:52 ]


Acties:
  • 0 Henk 'm!

  • Keeper
  • Registratie: Juni 2001
  • Niet online

Keeper

<3 Ruby

Jeldert schreef op woensdag 04 juli 2012 @ 15:11:
Commentaar is vooral leuk als het niet (meer) met de code overeenkomt. Welke van de 2 spreekt dan de waarheid :?
Code spreekt natuurlijk altijd de waarheid, dat is namelijk wat wordt uitgevoerd ;-).

Daarnaast kan je dan in je versiebeheer kijken welke van de 2 out-of-date is, mocht het belangrijk zijn.

Acties:
  • 0 Henk 'm!

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 02:20
Mbt commentaar:
Weet niet meer wie:
"If it was hard to write, it should definitively be hard to read"
>:)

Roomba E5 te koop


Acties:
  • 0 Henk 'm!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Ik vind dat alle programmeurs een keer een programma moeten schrijven dat een moeilijk natuurkundig probleem oplost, dan hoor je nooit meer dat gezeur over dat alle code voor zichzelf moet kunnen spreken. :+
MBV schreef op woensdag 04 juli 2012 @ 13:59:
[...]

Als je commentaar zo nuttig is dat je het het liefste niet ziet, wat is dan het nut van commentaar? 8)7 :'(
Het is wel een oplossing voor het onderhoud aan deze code natuurlijk.
Nou, als het bijvoorbeeld gaat over javadoc is het nut dat je code gedocumenteerd is, wil je een methode aanroepen dan laat je IDE mooi die documentatie zien... Dat ga ik echt niet ergens in de betreffende code opzoeken als het niet hoeft.

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

bwerg schreef op woensdag 04 juli 2012 @ 21:21:
Ik vind dat alle programmeurs een keer een programma moeten schrijven dat een moeilijk natuurkundig probleem oplost, dan hoor je nooit meer dat gezeur over dat alle code voor zichzelf moet kunnen spreken. :+
Ik zou graag doodles en andere handgeschreven 'comments' kunnen attachen in de comments in code, dat zou mijn 3d intersection library ook enorm helpen :P

De enige comments die ik meestal schrijf zijn aannames en waarom iets gedaan wordt.

[ Voor 9% gewijzigd door .oisyn op 04-07-2012 21:25 ]

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!

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Ja, of een foto van mijn kladblok met pagina's vol gekrabbel, tekeningetjes en wiskundige afleidingen. En dan onderaan als resultaat een lompe formule die dus in de code gezet is. En dat is dan nog maar in 2D (oke, ik was wel zo puberaal om per sé elastische botsingen te willen, wat veel te moeilijk is en dus faalde :P).

Heeft geen speciale krachten en is daar erg boos over.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 21:38

RayNbow

Kirika <3

.oisyn schreef op woensdag 04 juli 2012 @ 21:24:
[...]


Ik zou graag doodles en andere handgeschreven 'comments' kunnen attachen in de comments in code, dat zou mijn 3d intersection library ook enorm helpen :P
Tijd voor een IDE waarin de editor ook een canvas is? :p Misschien een Visual Studio Surface editie voor de Surface Pro? :+

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
bwerg schreef op woensdag 04 juli 2012 @ 21:21:
Ik vind dat alle programmeurs een keer een programma moeten schrijven dat een moeilijk natuurkundig probleem oplost, dan hoor je nooit meer dat gezeur over dat alle code voor zichzelf moet kunnen spreken. :+
Tja, dat is nu eenmaal de dunne scheidslijn.

Bij prive projectjes heb ik over het algemeen zoiets van : als ik erover na moet denken heb ik comments nodig.
Maarja, dat heeft me in het verleden al meerdere keren opgebroken (na 3 dagen natuurkundige problemen ploep ik op de 4e dag er zomaar wat dingen uit zonder na te denken die ik een half jaar later niet meer 1-2-3 begrijp)

Acties:
  • 0 Henk 'm!

  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 22-09 15:24
Debug comments gebruik ik bijna niet, maar API documentatie zet ik bij zowat alles deel uit maakt van een publieke API. Als ik ergens een enorme hekel aan heb, dan is het wel een publieke API die niet gedocumenteerd is. Absoluut een veel voorkomend manco bij (Java) open-source projecten. En ik vind de source van een 3rd party library doorspitten geen alternatief voor API documentatie.
Pagina: 1 ... 89 ... 103 Laatste

Dit topic is gesloten.

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. :)