Jakich konwencji nazewniczych używacie?

0

Witam,
Pol offtop, a mianowicie jakich konwencji nazewniczych uzywacie? Przykladowo jezyk c++ nie narzuca ograniczen i jest troche do wyboru.

Ktorej konwencji sie trzymacie w nazywaniu zmiennych, klas, funkcji itd?

  1. mojafunkcja();
  2. mojaFunkcja();
  3. MojaFunkcja();
  4. moja_funkcja();

Czytalem o tym iz dobrego programiste cechuje trzymanie sie jednego typu nazywania i troche sie z tym zgadzam.

Wiem, ze to forma gustu, ale tak z ciekawosci pytam, przykladowo do mnie przemawia 2 oraz 4.

1

Mówię teraz o C++.
(1) jest zupełnie bez sensu
(3) samo w sobie nie jest złe, ale jest częściej spotykane w C#
Najczęściej się spotkałem i stosuję (2), przy czym biblioteka standardowa C++ stosuje (4) i o dziwo to się jakoś nie gryzie.

1

W Javie 3 wersja.
edit: pomyliłem się i bzdury napisałem. Oczywiście chodziło o 2 wersję w Javie, 3 wersja w C# jak wspomniał @grzesiek51114

1

To zależy do jakiego języka. Zazwyczaj camelCase, czyli (2). Czasami (4) (PL/SQL, stałe w Javie).

5

Takiej, jaka obowiązuje w danym języku - nie ma co wymyślać koła na nowo i tym samym utrudniać życia innym;)

0

Z racji języków w których piszę to do funkcji używam tylko i wyłącznie 4).

0

2.) ALE np. stale pisze duzymi literami etc. Do tego zalozenie jesli wchodze do nowego projektu, to trzeba trzymac przyjeta konwencje, chyba ze zastajemy smietnik to wtedy trzeba sie na cos zdecydowac i powoli sprzatac.

0

Pisze zgodnie z polityka Coding Standards w mojej firmie, ktora z kolei jest zgodna z oficjalnymi konwencjami .NET, ze szczegolnym naciskiem na C#. Tak jak juz ktos wspomnial nie ma potrzeby wymyslac kola na nowo. Poza tym nie stosowanie sie do oficjalnych konwencji w wieloosobowym projekcie jest moim zdaniem egoistyczne.

0

Jestem zaskoczony tym, że niektórzy tutaj piszą inaczej niż pod numerem 3.)
Nawet w C++ tak pisałem.

Rozumiem, że konwencje w javie, czy turbo pascalu ( :) ) są / były inne, ale jednak według mnie numer 3 to standard powszechny i najczęściej stosowany.

8

Jestem zaskoczony tym, że niektórzy tutaj piszą inaczej niż pod numerem 3.)

Jestem zaskoczony, że niektórzy wciąż uważają, że istnieje jeden słuszny i prawidłowy sposób nazewnictwa...

0
Pijany Krawiec napisał(a):

według mnie numer 3 to standard powszechny i najczęściej stosowany.

Śmieszne, bo ja z tych wyżej wymienionych najrzadziej widuję właśnie 1) i 3).

0
  1. nie spotkałem nigdzie poza C#, 4) używam w SQLu, tak to zawsze camelCase. Jakoś czytelniejsze się to wydaje gdy wielkie litery są zarezerwowane dla klas.
0

W Androidzie forsowany jest sposób 2, co mnie osobiście bardzo drażni bo bym wolał 3. Forsowany, czyli mam na myśli to, że standardowe funkcje api z Android SDK stosują konwencję 2, tak samo jak chyba wszystkie dodatkowe biblioteki. Więc głupio by wyglądało gdybym w moim kodzie stosował zapis numer 3, chociaż osobiście to ten preferuję od zawsze.

2
Pijany Krawiec napisał(a):

Rozumiem, że konwencje w javie, czy turbo pascalu ( :) ) są / były inne, ale jednak według mnie numer 3 to standard powszechny i najczęściej stosowany.

Przecież w Turbo Pascalu był właśnie nr 3.

0
caer napisał(a)
  1. nie spotkałem nigdzie poza C#

Najwyraźniej nie pisałeś w innym języku niż C#;

Nawiązując do postu @Azariena - numerek 3. to podstawa, jeśli chodzi o identyfikatory procedur, fukncji i metod we wszystkich językach i dialektach wywodzących się ze starego Pascala;


Wychodzę z założenia, że opracowana konwencja dla danego języka to najlepszy możliwy sposób pisania kodu - i to się sprawdza; Jeśli chodzi o dialekty pascalowskie to:

  • zawsze i wszęcie PascalCase (nie dotyczy tylko stałych),

  • nazwy typów poprzedzone prefiksem T,

  • nazwy argumentów poprzedzone prefiksem A (nawet VCL/LCL nie trzyma w całości tej zasady),

  • nazwy typów wskaźnikowych poprzedzone prefiksem P,

  • stałe pisane wyłącznie wielkimi literami z separatorem _, np. FOO_BALD_BAR;
    Dodatkowe zasady:

  • notacja węgierska + PascalCase dla zmiennych lokalnych, np. ptCursorPos,

  • konstruktory i destruktory klas jako Create i Destroy,

  • konstruktory i destruktory obiektów (starych obiektów) jako Init i Done;
    Wszystkiego nie ma sensu wymieniać.

0

Tylko że w Pascalu czy Delphi to nie ma znaczenia i tak bo chyba jako jedyny mi znany ignoruje wielkość liter

0

@mały Kot - jak to rozumieć? Czy wielkość liter jest ignorowana czy nie jest - konwencja nazewnictwa jest bardzo przydatna, bo wymusza jednolitość, używanie jednego stylu; Dzięki temu bez znaczenia jest to kto kod napisał, bo wszystkie będą w tym samym stylu.

0

No tak to rozumieć, że w Delphi konwencje 1,2,3 zlewaja się w jedno, tzn kompilator to przepuści, bo nie rozróżnia ich

3

Ale tu nie chodzi o to, co przepuszcza kompilator, tylko o konwencję. Jeśli przyjmuje się w danym projekcie jakąś konwencję, to należy się jej trzymać, nawet, jeśli kompilator pozwala to omijać.

2

No dobrze, dla kompilatora oznaczają to samo; Co nie zmienia faktu, że używa się jednej konwencji, jednej z tych czterech, przy czym każda z nich jest inna (dla człowieka, nie kompilatora) i należy wybrać jedną, najlepiej tę zalecaną.

0

3/2 w zależności od języka.

0

Żadnych, byle kod działał i byle bym ja go rozumiał. To wcale nie jest egoistyczne, bo zapewniam prace refaktororzystom.

8
Pijany Krawiec napisał(a):

Jestem zaskoczony tym, że niektórzy tutaj piszą inaczej niż pod numerem 3.)
Nawet w C++ tak pisałem.

Ale takie cuda przechodzą tylko w polskich korpo, tych na C albo A.

Używanie swojej ulubionej konwencji, która jest niezgodna z tą, którą stosują twórcy języka, powoduje powstanie wielkiej, brzydkiej i cuchnącej kupy.

0

W Javie połączenie notacji węgierskiej z camel case (na przykład StringTokenizer stringTokenizer), w Pythonie wytyczne świętych ksiąg PEP (a dokładniej rozdział Naming Conventions w PEP8)

0

Nie mam żadnej jednej ustalonej konwencji. W jednym projekcie zawsze używam zamiennie wszystkich przedstawionych. Wg mnie to nie ma znaczenia, skoro kompilator dopuszcza to nie będę się ograniczał.

Jak komu się nie podoba to jego problem nie mój. Chcą niech zmieniają. I nie uznaję żadnych testów pisania. To strata czasu, wystarczy ze napiszę kod. Nie zawracam sobie głowy pierdołami.

0

Używam wszędzie CamelCase, oprócz typów danych i nazw plików gdzie robię PascalCase. Styl 4) upper case do nazw w preprocesorze. Styl 1) moim zdaniem jest bez sensu. Stylu 4) nie trawię (Boost łaj? Bjarne łaj?).

1 użytkowników online, w tym zalogowanych: 0, gości: 1