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?
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?
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 :)
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.
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ątrz ui
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.
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 nazwie uxFirstName
. Ma to tę dodatkową zaletę, że wszystkie moje nazwane kontrolki są ładnie pogrupowane w moim IDE.
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ństwo systems 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.