-
03-02-2006, 19:38 #1Member
- 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
-
-
03-02-2006, 19:41 #2Member
- 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
-
03-02-2006, 20:01 #3Member
- 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
-
03-02-2006, 21:11 #4
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
-
04-02-2006, 01:31 #5Member
- 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
-
04-02-2006, 12:44 #6Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
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
-
04-02-2006, 13:04 #7Member
- Registered
- 30/09/02
- Location
- Mariakerke
- Posts
- 554
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/2
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
-
04-02-2006, 13:09 #8Member
- 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
-
05-02-2006, 01:10 #9"If you have a right to respect, that means other people don't have a right to their own opinions."
Thomas Sowellno votes
-
05-02-2006, 04:26 #10
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
-
05-02-2006, 10:52 #11Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
eens kijken of er iets verschijnt als ge this->naam typt
(j/k ze
)
Ooit van find/replace all gehoordAls je het type van een bestaande variabele moet vervangen kan je wel overal de naam gaan veranderen.
? 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 aanpastLast edited by killgore; 05-02-2006 at 11:56.
no votes
-
05-02-2006, 13:44 #12Member
- 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
-
05-02-2006, 14:12 #13Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0

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
-
05-02-2006, 14:41 #14
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
-
05-02-2006, 18:03 #15
Door er een duidelijke naam aan te geven natuurlijk. Ik ga geen double waarde in een variabele genaamd firstName steken.
Die heeft waarschijnlijk een IDE die weergeeft van welk type een variabele is.no votes
