Maďarská notace

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 25. září 2017; kontroly vyžadují 19 úprav .

Maďarská notace  v programování  je konvence pojmenování proměnných , konstant a dalších identifikátorů v kódu programu . Maďarský zápis získal svůj název díky programátorovi Microsoftu narozenému v Maďarsku Charlesi Simonimu ( maď . Simonyi Károly ), který jej navrhl již v dobách vývoje prvních verzí MS-DOSu . Tento systém se stal interním standardem společnosti Microsoft [1] .

Podstatou maďarské notace je, že před názvy identifikátorů jsou předem specifikované předpony skládající se z jednoho nebo více znaků. Přitom samotná přítomnost prefixů ani jejich zápis zpravidla není požadavkem programovacích jazyků a každý programátor (či tým programátorů) může mít své vlastní.

Použitý systém předpon závisí na mnoha faktorech:

Příklady

Předpony typů

Předpona Zkratka pro Význam Příklad
s tětiva čára sClientName
sz nulou ukončený řetězec řetězec ukončený nulou szClientName
n, i int celočíselná proměnná nSize, iSize
l dlouho dlouhé celé číslo lAmount
b booleovský booleovský bIsEmpty
A pole pole aDimensions
t, dt čas, datum a čas čas, datum a čas tDelivery,dtDelivery
p ukazatel ukazatel pBox
lp dlouhý ukazatel dvojitý (vzdálený) ukazatel lpBox
r odkaz odkaz rBoxes
h Rukojeť deskriptor hWindow
m_ člen členská proměnná m_sAddress
G_ globální globální proměnná g_nSpeed
C třída Třída CString
T typ Typ TObject
rozhraní rozhraní IDispatch
proti prázdnota nedostatek typu vReserved

Jak můžete vidět na výše uvedeném příkladu, předpona může být také složená. m_sAddressNapříklad kombinace předpon "m_" a "s" ( ) se používá k pojmenování řetězcové členské proměnné třídy .

Sémantické předpony

Maďarská notace pro aplikace :

Předpona Zkratka pro Význam Příklad
i index Index int ix; Array[ix] = 10;
d delta Rozdíl mezi hodnotami int a, b; ... dba = b - a;
n číslo Množství size_t nFound = 0;
A argument Argument SomeClass::SomeClass(int aX) : x(aX) {}
rozhraní Rozhraní (v názvu typu) interface IFactory {}

Pro a proti

Mezi programátory se najdou zastánci i odpůrci používání maďarské notace. Odpůrci namítají, že je to těžkopádné a jen zhoršuje pochopení kódu. Zastánci tvrdí, že příliš mnoho lidí nechápe hlavní myšlenku a zneužívá notaci.

Výhody

Žert

Tento styl pojmenování se nazývá „maďarská“ notace podle rodiště programového manažera Microsoftu Charlese Simonyiho, který jej vynalezl. (Ne proto, že jeho použití způsobí, že programy vypadají, jako by byly napsány v maďarštině [3] )

A. Golub. Lano dostatečné délky.

Nevýhody

Známým odpůrcem maďarské notace je Linus Torvalds : „Zápis typu proměnné do jejího názvu (tzv. maďarská notace) je chybný - překladač již typy zná a může je zkontrolovat, což programátora mate “ [5] .

Zajímavosti

Viz také

Poznámky

  1. Maďarská notace . Získáno 14. června 2022. Archivováno z originálu 10. června 2006.
  2. Joel Spolsky . Jak udělat špatný kód, aby vypadal špatně Archivováno 19. července 2006 na Wayback Machine
  3. Maďarský jazyk , přestože má latinskou abecedu, je považován za extrémně nečitelný pro neinformované.
  4. 1 2 Uvnitř C++ – maďarská notace . Získáno 12. listopadu 2008. Archivováno z originálu dne 30. října 2008.
  5. „Styl kódování jádra Linuxu“ Archivováno 23. září 2005. . Dokumentace k linuxovému jádru (v angličtině).
  6. O digrafu sz na anglické Wikipedii