Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Hungarian Notation

[es] :: C/C++ programiranje :: Hungarian Notation

[ Pregleda: 5394 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

blaza
n/a

Član broj: 961
Poruke: 743
*.vdial.verat.net



+3 Profil

icon Hungarian Notation17.05.2004. u 22:00 - pre 242 meseci
Pitanje za Relju, Nemanju, itd... ;naravno svaciji odgovor je dobrodosao.
Da li koristite Hungarian Notation u praksi, i zbog cega? Nije li to najgluplja stvar koju je M$ smislio?
O_o
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.microsoft.com



+18 Profil

icon Re: Hungarian Notation17.05.2004. u 22:06 - pre 242 meseci
Prvo da razjasnimo da se Hungarian odnosi samo na C/C++. U C#u je pravilo da se ne koristi (pogledaj design guidelines na MSDNu).

Sto se tice real world koriscenja madjarske notacije, kod mene u timu se to obicno svodi na skracenu verziju: clanovi klasa imaju prefiks m_, a pointeri imaju prefiks p. To je u principu to.

Imaj u vidu da je madjarska notacija primerena vremenu kada je bila smisljenja: u vreme kada intellisense editori (pre svega Visual Studio) nisu postojali. Sa intellisenseom se gubi poenta madjarske notacije.
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Hungarian Notation17.05.2004. u 22:13 - pre 242 meseci
Citat:
blaza:
Pitanje za Relju, Nemanju, itd... ;naravno svaciji odgovor je dobrodosao.
Da li koristite Hungarian Notation u praksi, i zbog cega? Nije li to najgluplja stvar koju je M$ smislio?


Spadam u one „itd“ i rekao bih da je IMHO ta mađarska notacija prilično beskorisna stvar.

Mnogo je uputnije davati ilustrativna imena promenljivama jer program mora da bude ispravan i semantički a ne samo sintaksno.

Mađarska notacija „pomaže“ samo da se upare tipovi, ali ne i namena promenljivih -- zato baš i nije preterano korisna. Npr. ako imamo dve „lpsz“ promenljive, od kojih jedna čuva ime a druga recimo matični broj, nikakva „mađarizacija“ nas neće sprečiti da u programu slučajno matičnom broju dodelimo ime ili obratno. IMHO.

Da ne pominjem da je beskorisna u bilo kom drugom jeziku sem C-a i srodnika (C++, asm).

N.B: ilustrativna imena promenljivih mogu da budu recimo scheduleGraphEditorGUI — ali i samo t, ukoliko se koriste na pravi, i najvažnije konzistentan način. lpszA, lpszB i lpszMyVariable su beskorisne.

f

p.s. Tek sad videh da je odgovorio i Relja - rekao bih i da je MS priznao da mađarska notacija i nije baš neka grozomorna ideja...
 
Odgovor na temu

srdjandakic

Član broj: 11297
Poruke: 430
*.sbb.co.yu



+14 Profil

icon Re: Hungarian Notation17.05.2004. u 22:40 - pre 242 meseci
Uzas :(

Sto rece Relja bilo je korisno dok se program pisao u QEdit-u, TSE, ..., a sada ako stavis warning level 4 obicno te obavesti o pogresno upotrebljenim tipovima. Plus imas intelisense

Ja koristim (i bez ulazenja u raspravu da li je dobro ili ne):

m_ ... za membere
s_ ... za staticke identifikatore
g_ ... za globalne
AFileName ... parametar funkcije OpenFile

Ostalo je sve PrvoSlovoReci veliko osim ako su brojaci (i,j) ili ocigledne stvari tipa dx (DeltaX) i sl.
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com



+4 Profil

icon Re: Hungarian Notation17.05.2004. u 23:49 - pre 242 meseci
Ranije sam uglavnom koristio Pascal konvenciju (koju i Borland propagira), ali zadnjih godinu dana je ceo projekat u Madjarskoj notaciji (skracenoj, naravno).

Nekada mi je smetalo, ali na kraju krajeva, ima koristi od toga. Ne zhelim da chekam kompajler i warninge, a josh manje ugradjeni Intellisense i razbijam sebi koncentraciju. Hungarian je dobar za vizuelnu prepoznatljivost promenljive, pogotovo ako chitash kod drugih programera, i tu dosta pomazhe.

Dodushe, sa VisualAssist plug-inom za VS bilo koja notacija pochinje da gubi smisao (u internoj upotrebi) :)
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..ndg-pm4-2.dialup.nethere.net



+6 Profil

icon Re: Hungarian Notation18.05.2004. u 02:02 - pre 242 meseci
Citat:
blaza:
Da li koristite Hungarian Notation u praksi, i zbog cega?


Ne. Imamo na poslu interni pravilnik o notaciji koji je od Mađara pozajmio samo ono "m_" ispred podataka članova klase. Ja sam bio i protiv toga (pristalica sam notacije koju predlaže Herb Sutter), ali sam bio nadglasan.

Citat:
blaza:
Nije li to najgluplja stvar koju je M$ smislio?


Nije - ima i glupljih ;)
 
Odgovor na temu

DDMM
Dejan D. M. Milosavljevic
Danguba
Gajba, ali ne piva.

Član broj: 2544
Poruke: 89
*.sbb.co.yu

Sajt: www.ddmrm.com


Profil

icon Re: Hungarian Notation18.05.2004. u 12:15 - pre 242 meseci
Ja koristim moju notaciju.
http://www.ddmrm.com/coding/cpp/naming/cpp.naming.main.html
http://www.ddmrm.com/coding/cpp/naming/cpp.naming.rules.html


Sto se tice madjarske notacije mislim da je zastarela, a mozda i gresim. Svejedno.


for( int i=0; i<1000; i++ )
{ cout << "Bilo kakva notacija bila ruzna, lepa, mrzeli je ili ne, je bolja od nikakve!"<< endl; }

To sto postoje intellisense editora ono samo ubrzavaju razvoj.

Lakse mi je i brze da procitam da je neka promenjiva pointer nego da moljakam editor da mi kaze ko, sta je i odakle je.

Ako bas moram jos nesto da saznam onda cu potegnuti misa i priupitati npr. M$VC za misljenje.

Uporedite ova cetiri slucaja,
1. BlaBla
2. pBlaBla
3 m_BlaBla
4. m_pBlaBla
5. m1_pBlaBla // ovaj kec je iz moje kuhije i znaci da je clan protected

Pa pomnozite sa 10k ili vise koliko oci moraju da vide kad analiziraju kod, pogotovo tudju.

U slucaju 1. ne gine pominjanje rodbine.
Slucaj 4. drasticno smanjuje upotrebu misa i tastature. A tek 5..

Sad sam bas skrenuo ( sa teme ) ali sve se svodi na ovo:
Koja notacija "nije" bitno. Bitno da je ima, da ima smisla, da je bogata tj. da pokriva dosta slucajeva.
Treba platiti vremensku cenu za sintezu programa posto analiza ume da bude vremiski ( i zivcano ) bolna.




X
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.et.tudelft.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Hungarian Notation18.05.2004. u 12:33 - pre 242 meseci
Citat:
DDMM:
Uporedite ova cetiri slucaja,
1. BlaBla
2. pBlaBla
3 m_BlaBla
4. m_pBlaBla
5. m1_pBlaBla // ovaj kec je iz moje kuhije i znaci da je clan protected

U slucaju 1. ne gine pominjanje rodbine.


Ako promenljiva ima „informativno“ ime BlaBla, onda ćeš rodbinu pominjati svakako.

Citat:

Koja notacija "nije" bitno. Bitno da je ima, da ima smisla, da je bogata tj. da pokriva dosta slucajeva.


U svetlu gornjeg komentara moram da se polovično složim. Koja tačno notacija, nije bitno. Ali da treba da je bogata, ne slažem se nužno; što bogatija notacija, više će vremena trebati za učenje. IMHO je bolje potrošiti i 5 minuta vremena da bi se smislilo dobro ime i promenljiva nazvala recimo messageEnvelope, nego ubaciti neku notaciju i završiti sa:
lpszM1_temp.

A sad malo nešto produktivno: ako je potrebno da se naglasi da je neka promenljiva članica klase, možda je dobro eksplicitno koristiti this.promenljiva. Na taj način ne samo što je nama jasno da je promenljiva članica klase, nego to sada zna i kompajler. Vredelo bi razmotriti još slučajeva gde bi kompajler umeo da pomogne da se udruže i sintaksa i semantika. Ako koristimo recimo m_, niko nam ne može zabraniti da promenljivu koja nije u toj klasi nazovemo m_nešto. S druge strane this.nešto nikako neće proći.

f
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Hungarian Notation18.05.2004. u 16:27 - pre 242 meseci
Citat:
filmil:
A sad malo nešto produktivno: ako je potrebno da se naglasi da je neka promenljiva članica klase, možda je dobro eksplicitno koristiti this.promenljiva.


To sam ja koristio za funkcije članice dok nismo uveli interni standard.

Inače, da dodam nekoliko stvari iz tog internog standarda koje bih svima preporučio - očigledan je uticaj činjenice da se radi o lingvističkoj kompaniji :)

Nazivi promenljivih su imenice, i to u jednini za "pojedinačne", a u množini za kolekcije (nizovi, itd): npr:

Code:

string word;
string words[50];
vector<string> properNouns;


Nazivi funkcija su glagoli:
Code:

wstring ConvertToUtf16 (const string& text);
string Dictionary::FindNext(const string& headWord)...


Da ne verujete koliko ova prosta pravila poboljšavaju čitljivost koda.
 
Odgovor na temu

NomadSOulX

Član broj: 26435
Poruke: 2
212.200.10.*

Sajt: www.nomadsoulx.xredirect...


Profil

icon Re: Hungarian Notation18.05.2004. u 20:28 - pre 242 meseci
Pre nego sto sam poceo da pisem bilo sta u C/C++ radio sam u Pascal-u gde mi se najcesce javljao problem da ne mogu da se snadem u brdu promenljiva, sto zbog imena, sto zbog prastaraog interfejsa TP7.0 (sto znaci da sam verovatno i los programer cim koristim puno promenljiva). Kasnije sam preso na C/C++ i "savladao" objektno-orijentisano progamiranje koje mi je dosta pomoglo i smanjilo broj promenljivi. I u help-u i u vecini knjiga ljudi su kao posebnu lekciju pominjali madarsku notaciju, sto se meni ucinilo kao suvisno i nepotrebno. Vremenom sam poceo polako da je upotrebljavam i shvatio da ona nije pomagalo nego nesto sto je vise nego potrebno da bi se napravio red u programu.
Definitivno madarska notacija je preko potrebna i savetujem svima da pocnu da je koriste, jer pravi red. Naravno ko voli neka napravi svoju notaciju. Ako njemu dobro sluzi onda OK
 
Odgovor na temu

sspasic
Sasa Spasic

Član broj: 3261
Poruke: 175
212.200.96.*

Jabber: sspasic@elitesecurity.org
ICQ: 35454521


Profil

icon Re: Hungarian Notation18.05.2004. u 22:19 - pre 242 meseci
Kako je ta notacija nastala u vreme K&R C-a, kada C kompajleri nisu proveravali tipove argumenata u pozivima funkcija i nisu radili automatsku konverziju u potreban tip, možda i nije bila tako glupa.

Pre bih rekao da su u pokušaju da smanje greške programera odabrali rešenje koje je postalo loše pre svega zbog razvoja programskih jezika, C++ i ANSI C-a.

E sad, pitanje je zašto i dalje insistiraju na istoj notaciji i posle skoro 15 godina.
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Hungarian Notation18.05.2004. u 22:36 - pre 242 meseci
Citat:
sspasic:
E sad, pitanje je zašto i dalje insistiraju na istoj notaciji i posle skoro 15 godina.


Ubeđen sam da je za to kriva gomila loših knjiga koje je bezrazložno predstavljaju kao „pravu stvar“, MS-ove biblioteke koje su nakrcane parametrima čija su imena upravo mađarski kodovana, i ljudi koji iz nekog razloga misle da je sve što MS koristi bog zna kako dobro odvagano i produhovljeno.

U prilog tvrdnji da je m.n. loša stvar i da je treba zaboraviti i usvojiti nešto bolje, navodim da se a) mađarska notacija ne koristi nigde drugde do u windows C++ programima — prošetajte se po internetu i tamo ćete naći zanemarljivo malo značajnih C++ programa koji je koriste; b) da je čak i „izmišljator“ MS odustao od nje — to što se od te notacije odustalo tek u C# je sasvim nebitno: taj C# se toliko beznačajno sintaksno razlikuje od C++-a da se može očekivati da se u njemu javljaju isti sintaksni obrasci. Tek prelaskom na nove biblioteke je MS konačno mogao da se otarasi sopstvenog izuma.

Uglavnom, u prethodnim porukama ljudi su izneli nekoliko varijanti notacija u programima i u prinicpu svaka od njih je bolja od te mađarske. IMHO treba koristiti bilo koju, ali ako već možete da birate, nemojte baš da izaberete najgoru.

f


 
Odgovor na temu

[es] :: C/C++ programiranje :: Hungarian Notation

[ Pregleda: 5394 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.