Page 1 of 3 123 Last
  1. #1
    NecroNeo's Avatar
    Registered
    01/06/04
    Location
    Diepenbeek | Potsdam
    Posts
    1,239
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2

    [PROG][c++] Universeel systeem voor naamgeving klassen,functions,variabelen... ?

    Ik ben sinds kort terug begonnen wat te programmeren (en ik hoop binnen enkele weken het resultaat hiervan te kunnen tonen). Maargoed het zit dus zo, ik probeer m'n code zo herbruikbaar mogelijk te maken, en het zou erg handig zijn mocht er een sluitend/consystent systeem zitten in de naamgeving van alle classes, functions, variables, ... Zelf probeer ik mij altijd wel aan een aantal (zelf uitgevonden) regels te houden, maar die zijn meestal toch niet in alle gevallen toepasbaar.

    Ik vroeg me af of er geen min of meer universele afspraken waren hierrond. (ik gebruik C++, hoewel dat hier weinig uitmaakt natuurlijk) (ik heb al ff gegoogled maar niet echt iets gevonden).

    Iemand die zo'n systeem kent of wat tips heeft hiervoor ?
    no votes  

  2. #2

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    in c++ zijn er ondertussen al zoveel gekomen en gegaan
    -hungarian
    -java-like
    -...

    Ik gebruik tegenwoordig een beetje combinatie van java-stijl en hungarian notatie (hoewel sommige die ouderwets, onnuttig en onduidelijk noemen blijf ik ze eigenlijk wel vrij makkelijk en duidelijk vinden).
    no votes  

  3. #3
    NecroNeo's Avatar
    Registered
    01/06/04
    Location
    Diepenbeek | Potsdam
    Posts
    1,239
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2
    oké, dus er is jammer genoeg geen universeel systeem voor handen.

    Zou je een header file kunnen posten? Kan ik eens een kijkje nemen.
    Persoonlijk maak ik nu gebruik van iets wat lijkt op wat er in delphi gebruikt wordt, maar dit is niet altijd even bruikbaar in C++.
    no votes  

  4. #4

    Registered
    30/07/03
    Posts
    626
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by NecroNeo
    This quote is hidden because you are ignoring this member. Show
    oké, dus er is jammer genoeg geen universeel systeem voor handen.

    Zou je een header file kunnen posten? Kan ik eens een kijkje nemen.
    Persoonlijk maak ik nu gebruik van iets wat lijkt op wat er in delphi gebruikt wordt, maar dit is niet altijd even bruikbaar in C++.
    Via Google:
    http://www.google.com/search?hl=en&q=hungarian+C%2B%2B
    http://www.google.com/search?hl=en&l...ion%22+C%2B%2B

    vind je
    http://www.lowter.com/articles/174
    alles
    http://www.yolinux.com/TUTORIALS/Lin...dingStyle.html
    wat je
    http://web.umr.edu/~cpp/common/hungarian.html
    nodig hebt



    Persoonlijk gebruik ik een eigen variant op de Hungarian notatie, maar dankzij jouw post ga ik m'n code binnenkort maar eens wat meer compatible maken
    [LifeIsDigital.net] - Mijn artikels, open source software en projecten!
    no votes  

  5. #5
    NecroNeo's Avatar
    Registered
    01/06/04
    Location
    Diepenbeek | Potsdam
    Posts
    1,239
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/2
    hehe, die hungarian had ik al wel gevonden maar over java-like dan weer niet wat ik zocht.
    no votes  

  6. #6

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by NecroNeo
    This quote is hidden because you are ignoring this member. Show
    hehe, die hungarian had ik al wel gevonden maar over java-like dan weer niet wat ik zocht.
    mja, khebbet zo genoemd omdat dit universele afspraak zowat is onder java-proggers, dunno hoe de officiële stijlnaam luidt:

    methoden & variabelenamen beginnen met kleine letter, klassen met grote letter
    als een naam bestaat uit 2 woorden dan beginnen alle woorden behalve het eerste (zie bovenstaande regel) met een hoofdletter.
    no votes  

  7. #7

    Registered
    30/09/02
    Location
    Mariakerke
    Posts
    554
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/2
    Quote Originally Posted by killgore
    This quote is hidden because you are ignoring this member. Show
    in c++ zijn er ondertussen al zoveel gekomen en gegaan
    -hungarian
    -java-like
    -...

    Ik gebruik tegenwoordig een beetje combinatie van java-stijl en hungarian notatie (hoewel sommige die ouderwets, onnuttig en onduidelijk noemen blijf ik ze eigenlijk wel vrij makkelijk en duidelijk vinden).
    Vind je dat echt duidelijker, die Hungarian methodde? Als je voor je variabelen deftige namen kiest, dan is het meestal toch niet nodig om er ook nog eens het type voor te zetten? Persoonlijk vind ik zo code redelijk onleesbaar, omdat ik altijd over die eerste letters moet kijken, voordat ik echt weet wat de variabele nu juist is.
    no votes  

  8. #8

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    goh, niet altijd, daarom dak ze ook niet de volle 100% gebruik. Maar als je sommige systemen maakt waar je bv. constant tussen datatypes moet veranderen kan het wel zeer handig zijn. Die hungarian notatie is gewoon iets handig om uw type bij te houden.

    Ma in het algemeen ben ik nu meer aan het overgaan zoals ze in java coden ze .
    no votes  

  9. #9
    wlibaers's Avatar
    Registered
    18/07/02
    Posts
    2,279
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by killgore
    This quote is hidden because you are ignoring this member. Show
    goh, niet altijd, daarom dak ze ook niet de volle 100% gebruik. Maar als je sommige systemen maakt waar je bv. constant tussen datatypes moet veranderen kan het wel zeer handig zijn. Die hungarian notatie is gewoon iets handig om uw type bij te houden.

    Ma in het algemeen ben ik nu meer aan het overgaan zoals ze in java coden ze .
    Als je het type van een bestaande variabele moet vervangen kan je wel overal de naam gaan veranderen.
    "If you have a right to respect, that means other people don't have a right to their own opinions."
    Thomas Sowell
    no votes  

  10. #10

    Registered
    30/07/03
    Posts
    626
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Krueger
    This quote is hidden because you are ignoring this member. Show
    Vind je dat echt duidelijker, die Hungarian methodde? Als je voor je variabelen deftige namen kiest, dan is het meestal toch niet nodig om er ook nog eens het type voor te zetten? Persoonlijk vind ik zo code redelijk onleesbaar, omdat ik altijd over die eerste letters moet kijken, voordat ik echt weet wat de variabele nu juist is.
    Je kan niet met naam alleen aanduiden wat een variabele is.

    Voorbeeldjes:
    - Stel je hebt een DeviceId, wat is dat dan?
    Dat kan een int/long/char/string zijn, maar ook een templatized klasse die meer dan dat alleen bevat. Misschien is het een hash, gebaseerd op een van vorige? Kortom: je kan niet altijd aan de naam zien wat het doet of hoe je het kan gebruiken.
    - Device: is dat een pointer(een gewone? reference counted? autopointer?)? Of een referentie? Of gewoon een 'heel' Device object?
    - En hoe weet je of het een member is van de klasse of een van de variabelen die je een 100-tal lijnen code eerder hebt aangemaakt in je functie-member?
    - etc.

    Voor kleine projecten is het niet nodig om een prefix te gebruiken, maar voor grotere projecten is het een must vind ik.
    [LifeIsDigital.net] - Mijn artikels, open source software en projecten!
    no votes  

  11. #11

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Vich
    This quote is hidden because you are ignoring this member. Show
    - En hoe weet je of het een member is van de klasse of een van de variabelen die je een 100-tal lijnen code eerder hebt aangemaakt in je functie-member?
    eens kijken of er iets verschijnt als ge this->naam typt (j/k ze )

    Als je het type van een bestaande variabele moet vervangen kan je wel overal de naam gaan veranderen.
    Ooit van find/replace all gehoord ? Voor de keren dat je dat moet doen ... .
    Sommige IDE's hebben trouwens ook mogelijkheid dat als je een varnaam bij declaratie aanpast dat alle andere refrenties die je getypt hebt ook aanpast
    Last edited by killgore; 05-02-2006 at 11:56.
    no votes  

  12. #12
    forloRn_'s Avatar
    Registered
    23/11/03
    Location
    Landeurp
    Posts
    1,791
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    10/17
    Behoorlijk lelijk en onoverzichtelijk, die Hungarian. Als je zodanig veel variabelen nodig hebt dat je niet kan onthouden welke types er achter die variabelen schuilen, wilt het zeggen dat je functie te lang is, en moet je ze opdelen in subfuncties.
    no votes  

  13. #13

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by forloRn_
    This quote is hidden because you are ignoring this member. Show
    Behoorlijk lelijk en onoverzichtelijk, die Hungarian. Als je zodanig veel variabelen nodig hebt dat je niet kan onthouden welke types er achter die variabelen schuilen, wilt het zeggen dat je functie te lang is, en moet je ze opdelen in subfuncties.


    lelijk, kan ek inkomen, ma wtf bedoelde met onoverzichtelijk? Met hungarian komde zowat alles te weten wa ge moet weten over uw variabele: type & binding in de prefix, doel in de naam...
    en da van zoveel mogelijk opsplitsen is je reinste zever. Ge moet natuurlijk opsplitsen waar mogelijk en vooral nuttig, maar het is niet omdat je code van 500 regels in 1 of in 5 functies zit dat die daarom beter en overzichterlijker is. (k, 500 regels is veel, ma twas om vb te geven )
    Ik zeg niet dat hungarian constant nuttig is, soms is uw code zo beperkt/kort/duidelijk dat hungarian gewoon belachelijk is, maar in iets complexere functies/klassen/berekeningen/lowlev zaken heeft het nog steeds zijn nut hoor.

    Het is gewoon nu een trend om ze af te breken, zoals het vroeger een trend was ze te gebruiken. Persoonlijk haat ik trends .
    Hungarian is niet perfect, noch zoals ze het in java doen (daar heb je soms gewoon te lange namen nodig om iets duidelijk te omschrijven).
    no votes  

  14. #14

    Registered
    30/07/03
    Posts
    626
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by forloRn_
    This quote is hidden because you are ignoring this member. Show
    Behoorlijk lelijk en onoverzichtelijk, die Hungarian. Als je zodanig veel variabelen nodig hebt dat je niet kan onthouden welke types er achter die variabelen schuilen, wilt het zeggen dat je functie te lang is, en moet je ze opdelen in subfuncties.
    Met vele variabelen bedoelde ik niet per se vele variabelen in 1 klasse of vele in 1 functie, maar gewoon vele variabelen in 1 project. Als je 100 klassen of meer hebt en die hebben elk gemiddeld 10 variabelen, dan zit je aan 1000 variabelen in je project. Hoe ga jij bijhouden welke variabele wat is/doet?
    En stel dat je het zelf toch kan onthouden(er zijn altijd zo van die knappe koppen): hoe gaat iemand die jouw project onder de neus krijgt ooit begrijpen wat alles is?

    Ik geef toe dat het niet altijd even netjes staat, maar 't is veel belangrijker dat code duidelijk en leesbaar is. Daar zorgt Hungarian goed voor en dat is (voor mij en vele anderen) veel belangrijker.
    [LifeIsDigital.net] - Mijn artikels, open source software en projecten!
    no votes  

  15. #15
    Ollie's Avatar
    Registered
    27/07/02
    Posts
    644
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Vich
    This quote is hidden because you are ignoring this member. Show
    Hoe ga jij bijhouden welke variabele wat is/doet?
    Door er een duidelijke naam aan te geven natuurlijk. Ik ga geen double waarde in een variabele genaamd firstName steken.

    Quote Originally Posted by Vich
    This quote is hidden because you are ignoring this member. Show
    En stel dat je het zelf toch kan onthouden(er zijn altijd zo van die knappe koppen): hoe gaat iemand die jouw project onder de neus krijgt ooit begrijpen wat alles is?
    Die heeft waarschijnlijk een IDE die weergeeft van welk type een variabele is.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in