Więc idę według tego schematu nazewnictwa Delphi argumentów zaczynających się od A, klasa vars zaczyna się od F, a lokalne vars zaczynają się od M. Czy ten schemat ma nazwę? Widzę to dużo w źródle Delphi Chciałbym przeczytać więcej na ten temat, ale nie jestem pewien, jak to się nazywa.Czy moja konwencja nazywania zmiennych ma nazwę?
Odpowiedz
Ten styl kodowania jest specjalnie zawołał w Object Pascal Style Guide jako nie będącego notacji węgierskiej (z jednym wyjątkiem, enumerated types.)
Określone standardy kodowania mówisz nie ma nazwy, takie jak , o ile mi wiadomo, po prostu piszesz kod zgodny z przewodnikiem stylu CodeGear (stary Borland). Przewodnik nie wydaje się nadawać temu stylowi nazwy.
Powodem, dla którego dużo widzisz w źródle Delphi, jest to, że ten przewodnik oparty jest na stylu kodowania opracowanym przez zespół Delphi!
Dokument ten jest wart przeczytania - nie tylko w odniesieniu do wytycznych kodowych, ale także w przypadku zainteresowania innymi rzeczami, o których wspomina.
WTF? dlaczego zostało to odrzucone? To IMO jest najlepszą odpowiedzią, z pewnością najbardziej poprawną. W rzeczywistości usunąłem odpowiedź, ponieważ ta jest lepsza. –
heh heh, naprawdę muszą usunąć stary adres e-mail Borlanda z serwisu Borland z tego dokumentu. Charlie pracuje teraz dla Microsoft. –
Mimo że odpowiedź jest świetną odpowiedzią (i przegłosowałem ją), za podanie odniesienia do tego, skąd pochodzi styl, dokument taki jak go przeczytałem * nie * nazwał go notacją węgierską, gdy mówi: "Wyjątek od węgierskiej notacji Reguła jest w typach wyliczeniowych. " tj. zwykła konwencja F jest notacją węgierską. – Yishai
Generalnie brzmi to jak węgierska notacja - ale nie określa ona konwencji A, F lub M, a konkretnie tylko poprzedzającej informacji o typie w nazwie.
Myślałem, że węgierskie umieścić informacje typu i zawartości w nim - jak piVar, jeśli var jest wskaźnikiem do int, a także określone zestaw wartości do użycia. Chodzi mi o to, że myślałem, że jest to bardziej szczegółowe niż "przedrostek", ale mogę się mylić. –
Notacja węgierska może być wykonana na różne sposoby, ale z reguły umieszczanie informacji o języku w nazwie zmiennej nazywa się notacją węgierską. Joel słynie z tego, że powinno się go używać w zupełnie inny sposób, ale niezależnie od tego, jak powinno "być", tak to nazywają ludzie. http://www.joelonsoftware.com/articles/Wrong.html – Yishai
Z drugiej strony, system typu Delphi sprawia, że problemy, które "dobry węgierski" Joel rozwiązuje, stają się przestarzałe. Jeśli chcesz mieć specjalny typ liczby całkowitej lub łańcucha, który nie jest zgodny z normami lub zwykłymi ciągami znaków, możesz zadeklarować jeden z nich za pomocą słowa kluczowego "type" w definicji typu i niech kompilator złapie za ciebie te błędy. –
Twój schemat można uznać za formę Hungarian notations (HN). Zazwyczaj HN jest używany do oznaczenia type zmiennej, ale stwierdza, Wikipedia,
zapis jest czasami rozszerzone w C++, aby obejmować scope zmiennej oddzielone podkreślenia. To rozszerzenie jest często również wykorzystywane bez typu specyfikacji węgierski : [..]
powiedziałbym swoją konwencję nazewnictwa naprawdę nie pasuje do notacja węgierska, ale skłania się nieco, aby być bliżej oryginalna węgierska notacja wynaleziona przez Charlesa Simonyi, która stała się znana jako Apps Hungarian
. Ale nie całkiem.
Są właściwie dwa rodzaje notacja węgierska:
- Aplikacje węgierski - Chodziło o to, aby ozdobić identyfikatory nazw oparte na semantycznej informacji o tym, co oni przechowywać, więc w zasadzie zmiennej za Celem:
rwElement - variable represents a row ("rw") colElement - variable represents a columns ("col")
- Sy wynika węgierski - prefiks koduje rzeczywisty typ danych zmiennej.
szName - variable is a zero-terminated string ("sz") lAccount - variable is a long integer ("l")
więc podczas nazewnictwo ma w pewnym sensie reprezentuje jakiś cel, to naprawdę nie jest celem, który odnosi się do Aplikacji węgierski.
Używa on formy węgierskiej, która wskazuje zakres. Nie powiedziałbym, że jest bliższy celu niż typowi. –
Moja racjonalność polegała na tym, że nigdzie nie jest w pobliżu typu danych, ale zakres przy projektowaniu aplikacji ma cel. Oczywiście nie jest to ten sam cel, ale z dwóch jest bliżej bycia takim w jakimś celu. –
Pozdrawiam was w ogólnej klasie konwencji nazw znanych jako Węgierska notacja (w szerszym niż zwykle rozumieniu, że nazwa ma przedrostek opisujący zmienną), ale nie, wasza konwencja nie ma żadnych bardziej szczegółowa nazwa.
Nigdy wcześniej nie widziałem Twojego konkretnego wyboru przedrostków. Najbliższy Widziałem to, co myślę o jak Konwencja Indy, który wykorzystuje A dla argumentów F dla pól, G dla globalnych, L dla mieszkańców, i oczywiście zwykle I dla interfejsów i T dla rekordów i klas. Właściwości i podprogramy nie otrzymują prefiksu.
Czy podałeś tę nazwę z korelacji między Delphi RTL i Indy Source, czy też Borland Programmer rzeczywiście wybrał te rzeczy od Indy'ego w początkach Delphi? Nie mam żadnego źródła wcześniej niż Delphi 7, więc nie widzę różnicy. –
Prefiksy 'F',' I' i 'T' są używane niemal uniwersalnie, a prefiks' A' jest bardzo popularny. Używanie prefiksów na globaliach i miejscowych to coś, co najbardziej kojarzy mi się z Indy; Nie znam żadnych prefiksów "G" lub "L" w kodzie Borlanda. –
- 1. Czy istnieje konwencja Clojure do nazywania prywatnych funkcji?
- 2. Konwencja nazewnictwa zmiennych Pythona
- 3. Wiosna Konwencja Boot dla zmiennych
- 4. Konwencja nazewnictwa dla widgetów Qt
- 5. Konwencja nazewnictwa dla zmiennych publicznych i prywatnych?
- 6. Czy Ruby ma odpowiednik method_missing dla niezdefiniowanych zmiennych instancji?
- 7. W języku Python, jaka jest preferowana konwencja nazywania dla magazynu wewnętrznego właściwości wewnętrznej?
- 8. Konwencja nazw klas w java
- 9. Czy moja aplikacja ASP.NET MVC ma właściwą strukturę?
- 10. Czy moja aplikacja zostanie odrzucona, jeśli ikona ma zaokrąglone rogi?
- 11. Konwencja nazw plików klas ogólnych
- 12. Jaka jest konwencja dla nazw zmiennych w wyrażeniach lambda?
- 13. Pola dat bazy danych - Konwencja nazewnictwa
- 14. Konwencja nazewnictwa Javy dla nazw zmiennych logicznych: writerEnabled vs writerIsEnabled
- 15. Najlepsza praktyka nazywania podklas
- 16. Czy sposób nazywania zmiennej ma wpływ na wykorzystanie pamięci przez aplikację?
- 17. Czy podczas nazywania klejnotem więcej niż jednym słowem należy używać kresek lub podkreśleń?
- 18. ant macrodefs i elementem nazywania
- 19. Czy ta prosta funkcja Haskella ma już znaną nazwę?
- 20. Czy ktoś wie, jak B-Tree ma swoją nazwę?
- 21. Czy ta funkcja C# ma nazwę i co robi?
- 22. Konwencja nazewnictwa JavaScript dla obietnic?
- 23. Python Boolean nazwa nazywania czytelności
- 24. Gdzie zdefiniowana jest konwencja nazewnictwa właściwości JavaBean?
- 25. Czy istnieje wspólna konwencja nazewnictwa pakietów lisp?
- 26. Konwencja nazewnictwa zasobów XAML
- 27. Czy metoda nazywania właściwości getters/setters jest zestandaryzowana w IL?
- 28. Czy moja paczka jest pofragmentowana?
- 29. Programowo sprawdź, czy moja maszyna ma dostęp do Internetu czy nie.
- 30. Stary, gdzie jest moja nitka ?? (lub: zmień nazwę wątku puli wątków .NET - czy jest to możliwe?)
Nazwanie zmiennych globalnych za pomocą 'F' powoduje błąd. 'F' jest konwencją nazw pól, a nie globów. –
Mam na myśli zmienne klasowe, prawie nigdy nie używam globali, więc nazwałem je niewłaściwą rzeczą. –
Skąd wziąłem M? –