Magyar jelölés
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2017. szeptember 25-én felülvizsgált
verziótól ; az ellenőrzések 19 szerkesztést igényelnek .
A magyar jelölés a programozásban a változók , konstansok és egyéb azonosítók elnevezési konvenciója a programkódban . A magyar jelölés a magyar származású Microsoft programozónak, Charles Simoninak ( Hung . Simonyi Károly ) kapta a nevét , aki még az MS-DOS első verzióinak fejlesztése idején javasolta . Ez a rendszer a Microsoft belső szabványává vált [1] .
A magyar jelölés lényege, hogy az azonosítók neve elé egy vagy több karakterből álló, előre megadott előtag kerül. Ugyanakkor általában sem az előtagok jelenléte, sem azok írása nem feltétele a programozási nyelveknek , és minden programozónak (vagy programozói csapatnak) lehet sajátja.
A használt előtagrendszer számos tényezőtől függ:
- programozási nyelv (minél „liberálisabb” szintaxis, annál nagyobb kontrollra van szükség a programozó részéről, ami azt jelenti, hogy az előtagok rendszere fejlettebb. Ezen túlmenően a saját terminológia használata minden programozási nyelvben funkciókat is bevezet az előtagok kiválasztásához);
- programozási stílus ( az objektum-orientált kód egyáltalán nem igényel előtagokat, míg a „monolitban” gyakran szükség van rájuk az olvashatóság érdekében);
- témakör (például előtagok használhatók mértékegységek rögzítésére);
- rendelkezésre álló automatizálási eszközök ( dokumentációs generátor , kódnavigáció , prediktív szövegbevitel , automatizált refaktorálás stb.).
Példák
Írja be az előtagokat
Előtag |
Rövidítése |
Jelentése |
Példa
|
s |
húr |
vonal |
sClientName
|
sz |
nulla végű karakterlánc |
null-végű karakterlánc |
szClientName
|
n, i |
int |
egész szám változó |
nSize, iSize
|
l |
hosszú |
hosszú egész szám |
lAmount
|
b |
logikai érték |
logikai érték |
bIsEmpty
|
a |
sor |
sor |
aDimensions
|
t, dt |
idő, dátum és idő |
idő, dátum és idő |
tDelivery,dtDelivery
|
p |
mutató |
mutató |
pBox
|
lp |
hosszú mutató |
dupla (távoli) mutató |
lpBox
|
r |
referencia |
link |
rBoxes
|
h |
fogantyú |
leíró |
hWindow
|
m_ |
tag |
tag változó |
m_sAddress
|
g_ |
globális |
globális változó |
g_nSpeed
|
C |
osztály |
Osztály |
CString
|
T |
típus |
típusú |
TObject
|
én |
felület |
felület |
IDispatch
|
v |
üres |
típushiány |
vReserved
|
Amint a fenti példában látható, az előtag összetett is lehet. m_sAddressPéldául az "m_" és az "s" ( )
előtagok kombinációja egy osztály karakterlánc-tagváltozójának elnevezésére szolgál .
Szemantikai előtagok
Pályázatok magyar jelölése :
Előtag |
Rövidítése |
Jelentése |
Példa
|
én |
index |
Index |
int ix; Array[ix] = 10;
|
d |
delta |
Az értékek közötti különbség |
int a, b; ... dba = b - a;
|
n |
szám |
Mennyiség |
size_t nFound = 0;
|
a |
érv |
Érv |
SomeClass::SomeClass(int aX) : x(aX) {}
|
én
|
felület
|
Interfész (típusnévben)
|
interface IFactory {}
|
Pro és kontra
A programozók között egyaránt vannak hívei és ellenzői a magyar jelölés használatának. Az ellenzők azzal érvelnek, hogy ez nehézkes, és csak rontja a kód megértését. A támogatók azzal érvelnek, hogy túl sokan félreértik a fő gondolatot, és rosszul használják a jelölést.
Előnyök
- Ha a beépített gépelési mechanizmus nem elegendő, a magyar jelölés lehetővé teszi egy változó altípusának felírásátint cPrice - ez például azt jelentheti, hogy a változónak nem csak egész típusa van, hanem pénznem ( valuta ). Ezt az előtaghasználatot javasolta Simonyi [2] . Ez jól jöhet:
- Alacsony szintű programozásban (amikor az elérhető típusok halmaza olyan szűk, hogy például egy egész típus nem különbözik a logikai értéktől ).
- Dinamikusan beírt nyelvekben , például PHP - ben , ahol ugyanaz a változó bármilyen típusú értéket tárolhat.
- Mérnöki számításokban (mértékegységek rögzítéséhez). Ez lehetővé teszi, hogy jelentős számú hibától megszabaduljon a méretek egyszerű kiszámításával.
- Más helyeken, ahol az azonos típusú változókat heterogén adatok tárolására szánják – például a számítógépes hacker-védelmi kódokban, az előtag „nyers” és „ megszökött ” adatokat jelezhet ( SQL injekció , XSS ).
- A magyar jelölés kényelmes nagy programok írásához hiányos (modern mércével mérve) szerkesztőkben, automatizált szövegnavigáció nélkül. Valószínűleg ezért vált a WinAPI szabványos kódstílusává .
- A magyar jelölés egy szabványos rövidítési rendszernek tekinthető. Például a keresési beviteli mező és a "Keresés" gomb elnevezése txtSearchés btnSearch; manCountaz emberek száma vagy -vel írható nMen. Ez a gyakorlat lehetővé teszi, hogy a változóneveket rövid és ugyanakkor értelmes legyen.
- Feloldja az azonosító ütközéseket: .Point::Point(int aX, int aY) : x(aX), y(aY) {}
Tréfa
Ezt az elnevezési stílust a Microsoft programozási vezetőjének, Charles Simonyinak a szülőhelye után „magyar” jelölésnek nevezik. (Nem azért, mert használatával a programok úgy néznek ki, mintha magyarul írták volna őket [3] )
A. Golub. Megfelelő hosszúságú kötél.
Hátrányok
- Egyes programozók úgy találják, hogy az előtagok használata kevésbé egyértelművé teszi a változóneveket, és így rontja a kód olvashatóságát. [négy]
- Ha egy előtag nélküli változó neve ismeretlen, néha nehéz visszaállítani az előtagokat.
- Az autodokumentációs rendszer , ha nem érti az előtagrendszert, előtagok szerint rendezi az alfabetikus listát, ami hátrányosan befolyásolhatja a dokumentáció minőségét. A függvénynevek azonban általában nincsenek előtaggal.
- Több előtag rögzítése a nagybetűk és az aláhúzás gyakori használata miatt „tánc a gombon ⇧ Shift” válhat.
- A modern kódszerkesztőkben található navigációs eszközök már lehetővé teszik, hogy megtekintse a változó típusát, és gyorsan ugorjon oda, ahol meghatározásra került - vagyis az előtagok használata felesleges lehet.
- A típus megváltoztatásakor meg kell változtatnia a változó nevét (nem minden kódszerkesztő képes ezt automatikusan megtenni). [négy]
- Más módok is léteznek a változó típusának megadására a nevében: például logikai típus esetén az is , has stb. IsLoggedIn, számláló esetén a count ( RefCount), tömb esetén többes számUserIds ( ). Azokon a nyelveken, ahol a nagybetűk nem egyenértékűek a kisbetűkkel, a kis- és nagybetűk is kódolhatnak valamit.
A magyar jelölés közismert ellenfele Linus Torvalds : „A változó típusának a nevébe való beírása (az ún. magyar jelölés) hibás - a fordító már ismeri a típusokat és tudja ellenőrizni, ez pedig összezavarja a programozót. ” [5] .
Érdekes tények
- A magyar jelölésben használt sz betűkombináció valóban elterjedt a magyarban , és az /s/ hangot jelenti [6] . Tehát a zeneszerző Liszt Ferenc magyarul Liszt .
Lásd még
Jegyzetek
- ↑ Magyar Jelölés . Letöltve: 2022. június 14. Az eredetiből archiválva : 2006. június 10. (határozatlan)
- ↑ Joel Spolsky .
Hogyan lehet rossz kódot hibásnak kinézni Archiválva : 2006. július 19. a Wayback Machine -nél
- ↑ A magyar nyelv , bár latin ábécéje van, a tájékozatlanok számára rendkívül olvashatatlannak számít.
- ↑ 1 2 Inside C++ - Magyar Jelölés . Letöltve: 2008. november 12. Az eredetiből archiválva : 2008. október 30.. (határozatlan)
- ↑ "Linux kernel kódolási stílus" Archiválva : 2005. szeptember 23. . Linux kernel dokumentáció (angol nyelven).
- ↑ A sz digráfról az angol Wikipédián