Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Styl programowania

Ostatnio zmodyfikowano 2015-08-16 09:43
Autor Wiadomość
Gibas11
Temat założony przez niniejszego użytkownika
Styl programowania
» 2015-07-24 18:51:06
Witam wszystkich, chciałbym się zapytać o kilka spraw związanych z programowaniem samym w sobie:

1.)Czy macie jakieś wskazówki dotyczące stylu programowania (poza dodawaniem komentarzy), by kod był bardziej przejrzysty?
2.)Jak sprawnie uniknąć używania zmiennych globalnych?
3.)Czy podczas tworzenia klas przejmować się "private:" i "public:", czy może wystarczy ostrożnie obchodzić się z obiektami?

Z góry dziękuję za wszystkie odpowiedzi i pozdrawiam! :)
P-135154
pekfos
» 2015-07-24 18:56:41
1. Robić wcięcia, dobrze nazywać zmienne. Tu masz przykład (trochę ścisłych, ale jednak) wytycznych http://geosoft.no/development​/cppstyle.html
2. Nie używać ich w ogóle.
3. Po to to jest, by tego używać. Jeśli potrzebujesz, by wszystko było publiczne, to już się nie obchodzisz ostrożnie.
P-135155
C-Objective
» 2015-08-05 10:31:00
Ex 1
Stałe i #define - Wielką literą.
Wskaźniki - Zacznij od p lub lp.
Zmienne - Każdy człon z wielkiej litery nie licząc pierwszego (ex.
int dIleLiczbPierwszych = 0;
).
Nazwy metod - tak samo jak zmienne.
Nazwy klas i plików źródłowych [.c] - Z wielkiej litery. (ex.
class Singer {...};
nazwy plików nagłówkowych [.h, brak ex.
iostream
] z małej.

Zmienna long int - Zacznij od małego l.
Zmienna long long int - Zacznij od ll.
Zmienna int - Zacznij od i lub d.
Zmienna void - Zacznij od n.
Zmienna unsigned int - zacznij od u.
Zmienna float/double - zacznij od f.
Znak - Zacznij od c.
Ciąg znaków - Zacznij od s.

Tyle. Dokładniej zobacz sobie w 1 i 5 tabeli na tej stronce: http://www.cplusplus.com​/reference/cstdio/printf/

Ex 2. Przekazywanie przez return/argumenty.
Ex 3. Ma znaczenie. Pisz tak jak powinno się pisać. Możesz sobie obciąć tylko słowo private, ale public musisz już pisać.
P-135737
pekfos
» 2015-08-05 10:38:39
Tyle. Dokładniej zobacz sobie w 1 i 5 tabeli na tej stronce: http://www.cplusplus.com​​/reference/cstdio/printf/
Pierwsze słyszę, by robić notację po printfie. Nie chodziło o to..?
https://pl.wikipedia.org/wiki​/Notacja_w%C4%99gierska
Poza tym, taka notacja jest uciążliwa, więc jestem daleki od polecania jej. By zmienić typ, trzeba zmienić nazwę zmiennej, inaczej notacja będzie wprowadzać w błąd, a wtedy lepsza jest żadna notacja niż taka. Do tego, jakie prefiksy zaproponowałbyś, jeśli typ został utworzony przez typedef? To bardzo częsty przypadek i sprawia, że zmienna np typu int nie jest oznaczona jako takiego typu. Oznaczenie jest pomysłem jeszcze gorszym, bo albo ta informacja będzie ogólna i nic nie będzie znaczyć, albo będzie konkretna i z czasem może wprowadzać w błąd. IDE podpowiadają typy, więc wprowadzanie sobie kolejnej rzeczy do utrzymania traci sens. Już istotniejszy od typu jest zasięg, a ten nie zawsze jest widoczny, a bardzo często potrzeba go znać. Można więc wymyślić trywialną i prostą w utrzymaniu notację:
C/C++
int m_zmienna; // składowa klasy
int s_zmienna; // statyczna składowa klasy
int g_zmienna; // zmienna globalna
int cokolwiek; // zmienna lokalna

Zmienna void - Zacznij od n.
Co to jest zmienna void..? Jeśli dobierasz typy po argumentach printf(), to n jest wskaźnikiem na int, a nie void.
P-135740
MrPoxipol
» 2015-08-05 10:39:51
@C-Objective Notacja węgierska..worst idea ever.
P-135741
C-Objective
» 2015-08-05 10:41:06
Tak? n Nothing printed. Pisze że przyjmuje uint ale to chyba bez znaczenia.
@up Można w ten sposób zapisać wiele zmiennych o podobnej nazwie ;)
C/C++
char * sZmienna;
int dZmienna;
P-135742
MrPoxipol
» 2015-08-05 10:47:01
@up Można w ten sposób zapisać wiele zmiennych o podobnej nazwie ;)
Nie wydaje mi sie, zeby bylo to takie przydatne/dobre.

A co do pytania o styl: https:/​/google-styleguide.googlecode.c​om​/svn/trunk/cppguide.html
P-135745
pekfos
» 2015-08-05 11:01:45
@up Można w ten sposób zapisać wiele zmiennych o podobnej nazwie ;)
C/C++
char * sZmienna;
int dZmienna;
C/C++
int a, aa, aaa, aaaa, aaaaa;
int b1, b2, b3, b4, b5;
int e, f, g, h, i;
Wiele zmiennych o podobnej nazwie.

Tak? n Nothing printed. Pisze że przyjmuje uint ale to chyba bez znaczenia.
Ma znaczenie.
Nothing printed.
The corresponding argument must be a pointer to a signed int.
The number of characters written so far is stored in the pointed location.
Jeśli nie po argumentach ta notacja, to po wypisywanych informacjach..? Wtedy chcesz nazywać zmienne od sposobu ich wyświetlania..? Prefiksy f, F, e, E, g, G, a, A dla jednego typu..? A czym będzie twoje 'nothing printed'? Nie ma zmiennych typu void.
P-135748
« 1 » 2 3
  Strona 1 z 3 Następna strona