Używanie notacji węgierskiej jest ogólnie uważane za złą praktykę , ale często można znaleźć formanty GUI o nazwach userNameTextBox
i userNameLabel
.
Czy podajesz typ kontrolki w nazwie? Czy to nie jest rodzaj węgierskiego zapisu?
language-agnostic
coding-style
gui
notation
Jader Dias
źródło
źródło
Odpowiedzi:
Tak jak mówisz. Ogólnie notacja węgierska jest złą praktyką. Lubię trzymać moje nazwy tak blisko domeny, jak to możliwe, ale czasami próbujesz powiedzieć, że to jest pole tekstowe, a to etykieta .
Zobacz odpowiedź Kramiiego na inne pytanie, aby dowiedzieć się, dlaczego nadal używa języka węgierskiego w pewnych sytuacjach.
Podobnie jak w przypadku całego kodu, kluczem jest spójność i samoocena. Jeśli ty i twój zespół uzgadniacie, w jaki sposób różne kontrolki GUI są oznaczone i jakie elementy wymagają etykiet, wszystko będzie dobrze :)
źródło
Właściwie używam notacji węgierskiej, tylko do kontroli GUI. Używam czegoś takiego jak lblText, rbGroup1, lvTable itp. Do etykiet, przycisków opcji i widoków listy.
I tak nigdy się nie zmieniają i jasne jest, która zmienna jest formantem GUI, a co nie.
Ponieważ jednak używam WPF z możliwościami wiązania, tak naprawdę wcale nie jest konieczne nazywanie ich, ponieważ jest on powiązany z właściwością C #.
Przy okazji, nie popełnij błędu, nazywając kontrolkę lvListViewPersons, co czasami widzę. Jeśli zmienna jest poprzedzona lv, możesz zobaczyć, że jest to już widok listy.
źródło
Nasz zespół używa notacji węgierskiej do kontroli GUI, a nie do reszty kodu.
Typowy przykład, etykieta, po której następuje pole tekstowe:
Ponadto ułatwia znalezienie pola tekstowego, wystarczy wpisać „txt”, a intellisense zrobi resztę.
źródło
Używam notacji węgierskiej dla elementów GUI. To naprawdę jest ból po zamknięciu QtDesigner, otwórz Visual Studio i kiedy chcesz ustawić tekst na przycisku, jeśli masz pole tekstowe nazwane
username
,password
itp Podczas korzystania z Qt, nie jest to duży problem, ponieważ wszystkie elementy GUI są owinięte wewnątrzui
obiektu (ui.username
), ale kiedy korzystam z formularzy Windows Forms, pole tekstowe o nazwie nazwa użytkownika powoduje jedynie powiększenie przestrzeni nazw.W takim przypadku
txtUsername
,btnLogin
,lblStatus
, itd. Są wyraźnie lepsze opcje.źródło
Unikam używania węgierskiej notacji dla kontrolek GUI - unikałbym nazwania formantu takiego jak `lblFirstName ', ponieważ tak naprawdę nie obchodzi mnie, że jest to etykieta - z punktu widzenia powiązania danych jest to po prostu coś do wiązania.
W przypadku formantów, które wymagają nazwy, zwykle dodam prefiks
ux
„user experience”. To wyjaśnia, że przedmiot jest przeznaczony tylko dla użytkownika do interakcji. Na przykład mój model widoku może mieć właściwość o nazwie,FirstName
a widok może mieć kontrolę o nazwieuxFirstName
. Ma to tę dodatkową zaletę, że wszystkie moje nazwane kontrolki są ładnie pogrupowane w moim IDE.źródło
ux
sam prefiks nie jest notacją węgierską? Może inny rodzaj (nie pamiętam nazwisk dwóch), który wskazuje znaczenie, a nie typ, ale wciąż jest formą węgierską ;-)apps hungarian
przeciwieństwosystems hungarian
. Węgierskie aplikacje nie są uważane za tak szkodliwe jak systemy, ale myślę, że znaczenie ``ux '' może być zbyt wysokie, by nawet uznać je za aplikacje.Wiem, że ludzie nie znoszą ogólnie węgierskiej notacji, ale nadal uważam ją za bardzo przydatną w wielu miejscach. W przypadku GUI używam przynajmniej prefiksu wnd.
Problem niestosowania węgierskiej notacji jest prosty: po opuszczeniu gładkich wód MSVS nawigacja nurkuje. Widzisz coś
SomeValue = SomeOtherValue
i nie masz pojęcia, co się dzieje, chyba że spojrzysz na każdą cholerną rzecz. Dzięki grep lub staremu staremu wyszukiwaniu, które zwykle zabija produktywność właśnie tam, IDE inne niż QT i MSVS są naprawdę kiepskie w wyszukiwaniu.źródło