[Ogólne programowanie] Konwencja zapisu zmiennych kontrolek


(Marcin Obala) #1

Witam

Chciałbym zapytać jak nazywacie kontrolki w swoich aplikacjach okienkowych? Ja zazwyczaj robię to w ten sposób:

TextBox PrzeznaczenieKontrolkiTextBox;

Ale zastanawiam się czy nie lepszy zapis byłby taki:

TextBox TextBoxPrzeznaczenieKontrolki.

W pierwszym przypadku jak np. mam GroupBox a w nim label, textBox i button to podpowiedzi pokażą mi tylko kontrolki w danych groupboxie. Jednak z drugiej strony chciałbym się odwołać do jakiegoś pola i żeby nie wchodzić w formę bo akurat mi wypadło z głowy jak się ona nazywa to wpisuję TextBox i dopełnia mi informacje na temat wszystkich TextBoxów w kodzie.

A Wy jakiego zapisu używacie?


(mktos) #2

Używam prefiksów, właśnie aby móc sobie szybko dojść do wszystkich kontrolek tego samego typu. Ale nie pełnych, tylko skrótów, np.:

tbCośtam

Podobnie btnButton (lub bButton), gGrid, lLabel itp.


(Grzelix) #3

@mktos to co zaprezentowałeś nazywa się Hungarian notation

@Marcin511 zarówno notacja którą używasz jak i pokazana przez @mktos są poprawne. Nie można też stwierdzić która jest gorsza, która lepsza. Wydaje mi się Hungarian notation jest bardziej rozpowszechniona, ale od predyspozycji osoby piszącej tylko i wyłącznie zależy jakiej notacji będzie używać.

Jedynie w przypadku gdy na projektem pracuje więcej osób to trzeba ustalić jakiej notacji się używa, ponieważ najważniejsza zasada to nie jakiej notacji się używa, tylko aby wybranej notacji używać w całym projekcie żeby zachować zgodność.


(Tomek Matz) #4

Zgadzam się z tym co napisał grzelix (no może poza tym, że notacja węgierska jest bardziej rozpowszechniona - jakieś źródło do tej informacji?). Konsekwencja w stosowaniu w danym projekcie jest najważniejsza.

Jak piszę cały kod samodzielnie to używam pierwszego zaprezentowanego przez Ciebie podejścia (takie samo stosowane jest w generatorach kodu Microsoft-u), bo tak mi jest wygodniej. Nie mam jednak nic przeciwko drugiemu podejściu.


(Krystian Rosinski) #5

Witam,

Nazewnictwo jest w pewnym sensie związane z językiem programowania i opiera się na pewnych oficjalnych lub umownych zasadach. Tak na prawdę wszystko zależy od programisty, ale zdecydowanie łatwiej czyta się kod, który "wygląda znajomo". Ja piszę przede wszystkim w Pythonie i zgodnie z konwencją słowa w nazwach klas wyróżniam wielkimi literami alfabetu (np. MyClass), natomiast słowa w nazwach funkcji, metod, zmiennych zapisuję małymi słowami rozdzielonymi symbolem _ (np. my_method). Pierwszy ze sposobów znany jest jako CamelCase. Ten typ nazewnictwa stosowany jest również do kontrolek tkinter, np.:

apple = Menu(menubar, name='apple')

help = Menu(menubar, name='help')

menubar.add_cascade(menu=apple)

menubar.add_cascade(menu=help)

Nieco inaczej przedstawia się sytuacja w przypadku GUI pisanym w PyQt. Tu Designer domyślnie proponuje dla kontrolek regułę lowerCamelCase, czyli np.

self.ui.pushButtonGetText()

self.ui.pushButtonSetText()

Jest to w pewnym sensie niekonsekwencja w stosunku do zasad obowiązujących w pythonowym kodzie, ale ma też pewną zaletę -- od razu widać gdzie w kodzie pojawiają się kontrolki Qt.


(somekind) #6

Nazwy kontrolek, to właśnie jedyny przypadek, w którym widzę sens używania notacji węgierskiej, bo poza tym, to jej nie cierpię (delikatnie mówiąc :wink:). Stosuję trzyliterowe prefiksy: "txt", "cmb", "chk", "lbl", "dgv", itd.

W przypadku, gdy kontrolki mam automatycznie wygenerowane przez IDE i są one zbindowane z jakimś obiektem, to nie mam potrzeby bezpośredniego z nich korzystania, więc nie zmieniam ich nazw.

A w ogóle, to najlepiej tworzyć oprogramowanie bez kontrolek, wtedy tego problemu nie ma. :wink:


([alex]) #7

Popieram, po kiego użytkownikom te kontrolki, niech wprowadzają dane telepatyczne wprost w kodzie binarnym i odczytują w ten sam sposób. :smiley:

A tak na serio zawsze ta praca ciekawsza gdzie jest mniej interfejsu z użytkownikiem, więc naprawdę popieram.