Nazewnictwo zmiennych oraz zmiennych przekazywanych do funkcji

0

Cześć

Jest wiele szkół dotyczących nazewnictwa zmiennych, funkcji czy klas. Załóżmy, że jw kodzie mam zmienną typu boolean:

bool displayText = true;

oraz funkcje, do której będę przekazywał wartość zmiennej wyswietlTekst. Ciało funkcji wygląda tak:

void showTextOnTheScreen (bool a)
{
   //kod ciała funkcji
}

Jaką nazwę powinna mieć zmienna bool a przekazywana do funkcji z punktu widzenia najlepszych praktyk i Waszego doświadczenia? Jak za jakiś czas wrócę do kodu to nie będę wiedział co oznacza zmienna bool a przekazywana do funkcji. Można w nazwie argumentu przekazywanego do funkcji użyć nazwy zmiennej, która już występuje w kodzie, czyli void wypiszTekstNaEkranie (bool wyswietlTekst)? Jakie podejście stosujecie w swoich programach?

1
slowbro napisał(a):

Jest wiele szkół dotyczących nazewnictwa zmiennych, funkcji czy klas

I żadna z nich nie mówi o tym, żeby nazewnictwo było pisane w języku polskim ;).

Po co Ci ta zmienna, nie możesz wywoływać funkcji wtedy kiedy będzie potrzebna?

EDIT:

slowbro napisał(a):

Jak za jakiś czas wrócę do kodu to nie będę wiedział co oznacza zmienna bool a przekazywana do funkcji.

możesz sensownie nazwać argument np void wypiszTekstNaEkranie (bool isToDisplay)

Można w nazwie argumentu przekazywanego do funkcji użyć nazwy zmiennej, która już występuje w kodzie, czyli void wypiszTekstNaEkranie (bool wyswietlTekst)?

tak (w tym sensie, że argument ma taką samą nazwę jak zmienna)

0

Nazwy zmienione na j. angielski:) Chodzi mi o generalne podejście do nazewnictwa przekazywanych do funkcji zmiennych w prototypie czy definicji funkcji.

0

Argumenty funkcji/metod najlepiej nazywać tak, by było wiadomo z ich nazwy czym są. Praktyka w zasadzie identyczna do nazewnictwa zmiennych.

Zresztą zajrzyj sobie chociażby do funkcji związanych z potokami - zaraz tam znajdziesz "buffer", "size", "file". To już jest wskazówka co do dobrego zwyczaju.
W przeciwnym wypadku musiałbyś pisać dokumentację każdej funkcji/metody, w której opiszesz co oznaczają poszczególne argumenty. Szczególnie, jeśli masz kilka argumentów tego samego typu i ciężko rozpoznać którą wartość powinieneś gdzie wrzucić do metody aktualizującej np. rekord w bazie.

Także trzymaj się zwięzłego, ale opisowego nazywania argumentów funkcji.

0
void showTextOnScreen(bool show)
0

A czemu metoda show przyjmuje parametr czy ma coś pokazać?oO

1

Moim zdaniem void showTextOnTheScreen(bool show) jest złe, bo nie mogę zrozumieć co to robi.
Jest napisane: "pokaż tekst na ekranie" a argumentem jest bool. Czyli co ma pokazać true albo false? Zapewne nie.
Domyślam się, że ma to włączyć lub wyłączyć drukowanie czegoś w przypadku używania innych metod, więc powinno być tak:

void EnablePrinting(bool show);

Specjalnie pomijam OnTheScree, bo to wygląda mi już na określenie zbyt szczegółowe. Zwykle dązy się do abstrakcji gdzie nie wiadomo, na czym ten napis będzie pokazany. Może to będzie ekran, może plik, a może drukarka. Dla samego problem zapewne jest to nieistotne.

Inne możliwości (zależne od funkcjonalnych szczegółów):

void EnablePrintingLogs(bool showLogs);
void EnablePrintingMessages(bool showMessages);
void EnablePrintingValues(bool showValues);

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