User Tools

Site Tools


dydaktyka:cprog:clean_code

This is an old revision of the document!


Jak uczynić Twój program czytelnym?

Nadawaj rozsądne identyfikatory

Stosuj identyfikatory, które oddające rolę danej zmiennej, cel działania funkcji itp.

Dokumentuj kod

Używaj komentarzy tam, gdzie to wskazane.

Używaj odstępów i pustych linii

Język C to język swobodnej postaci, czyli kompilator po prostu pomija takie znaki niedrukowane.

Odpowiedz sobie na pytanie, co bardziej czytelne:

int a=3;int b=2;int c,d;

czy

int a = 3;
int b = 2;
int c, d;

Umieszczaj każdą instrukcję w osobnej linii kodu

Język C dopuszcza zarówno umieszczanie wielu instrukcji w jednej linii, jak też rozbicie jednej instrukcji na wiele linii (co jednak zmniejsza czytelność).

Kod zbyt “rozwleczony”:

int
a
=
3;

zamiast

int a = 3;

Kod zbyt ,,ściśnięty'':

if (a) { printf("Niewskazane.") }

zamiast

if (a) {
    printf("OK.");
}

"Złota zasada"

Pamiętaj – obecnie, w dobie szybkich komputerów i dużej ilości dostępnej pamięci operacyjnej, głównym celem programisty staje się napisanie działającego, czytelnego kodu. Optymalizacje i “sztuczki” zazwyczaj nie popłacają…

Wcięcia

Jedną z zasad tworzenia czytelnego kodu jest umiejętne stosowanie wcięć (indent), które oznaczają “poziom zagłębienia” kodu.
Choć kompilator C pomija znaki białe (a więc m.in. wcięcia i znaki nowej linii), to jednak dla człowieka taki kod byłby ciężki do odczytania.

Zasada brzmi:

  • początek nowego bloku instrukcji oznacza zwiększenie ilości wcięć o jeden poziom
  • koniec bloku instrukcji oznacza zmniejszenie ilości wcięć o jeden poziom

Zazwyczaj stosuje się wcięcie szerokości jednego tabulatora bądź czterech spacji.

Przykład:

int main () {
--->if (1) {
--->--->printf("Hello");
--->--->printf("World!\n");
--->}
}

:!: Kwestia formatowania to rzecz umowna – istnieją różne szkoły formatowania, a programiści toczą o to nieustanne “święte wojny”. Najważniejsza zasada brzmi: Stosuj reguły konsekwentnie!

Autoformatowanie kodu z użyciem IDE

Całą tą “czarną robotę” związaną z formatowaniem może za Ciebie wykonać IDE (tu: CodeBlocks).

Aby automatycznie sformatować kod, kliknij prawym przyciskiem myszy na oknie edytora tekstu i wybierz z menu kontekstowego opcję Format use AStyle.

Aby zmienić ustawienia autoformatowania wejdź w Settings → Editor… i z listy z ikonami po lewej wybierz Source formatter.
W przykładach na zajęciach stosuję następujące opcje formatowania:

  • zakładka Style
    • Bracket style: K&R
  • zakładka Indentation
    • (bez zmian)
  • zakładka Formatting
    • Pad empty lines around header blocks (e.g. 'if', 'while'…) – zaznaczone
    • Insert space padding around operators – zaznaczone
    • (pozostałe opcje odznaczone)
dydaktyka/cprog/clean_code.1475431615.txt.gz · Last modified: 2020/03/25 11:46 (external edit)