• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

W jaki sposób lepiej pisać kod?

0 głosów
84 wizyt
pytanie zadane 22 czerwca w C i C++ przez Daaa22 Dyskutant (7,740 p.)
Lepiej napisać kod łatwiejszy, bardziej czytelny i prostszy w zrozumieniu, czy taki który będzie zajmował trochę mniej pamięci, działał minimalnie szybciej, ale był skomplikowany i trochę chaotyczny. Mam na myśli gdy na przykład potrzebuje 2 zmiennych 2 bitowych i zamiast robić 2 zmienne typu char to zrobię jedną, i będę używał połowy bitów jako jednej zmiennej, a połowy jako drugiej zmiennej. Ogólnie czy takie minimalne oszczędzanie pamięci kosztem czytelności kodu jest dobrym czy złym nawykiem?

Edit: I przy okazji powiedzcie mi czy używanie goto w celu wyjścia z zagnieżdżonych pętli to dobra rzecz czy unikać tego
1
komentarz 22 czerwca przez j23 Mędrzec (175,240 p.)

Ogólnie czy takie minimalne oszczędzanie pamięci kosztem czytelności kodu jest dobrym czy złym nawykiem?

Jeśli nie piszesz na jakieś mikrokontrolery z absurdalnie małą ilością RAM-u lub nie upakowujesz danych w celu np. wysłania ich siecią, to jest to zły nawyk. Zbędne komplikowanie kodu.

1
komentarz 24 czerwca przez Oscar Nałogowiec (26,110 p.)
edycja 24 czerwca przez Oscar

@Daaa22, Tak dla ściśłości, jeśli potrzebujesz upchać bity w bajtach to w C jest coś takiego jak pola bitowe.

struct dwie_zmienne
{
     int pierwsza : 4;
     int druga : 4;
};

Jest to nawet czytelne, ale chyba nie ma standardu, które bity będą MSB a które LSB. Ogólnie to mało dopracowany feature C.

Niestety będzie wolniejsze niż operowanie na dwóch oddzielnych zmiennych - bo za każdym razem trzeba maskować, składać, przesuwać itp.

 

 

1 odpowiedź

0 głosów
odpowiedź 22 czerwca przez tangarr VIP (138,360 p.)
W programowaniu najważniejsza jest czytelność kodu. W pierwszej kolejności skup się na napisaniu funkcjonalności. Jeżeli robisz jakieś sprytne optymalizacje to zostaw sobie komentarz, żebyś rozumiał kod jak do niego wrócisz po dłuższej przerwie.

Jak najbardziej możesz przerywać skomplikowane pętle używając goto. Ewentualnie możesz wyeksportować zagnieżdżone pętle do osobnej funkcji i przerywać je returnem.
komentarz 22 czerwca przez Daaa22 Dyskutant (7,740 p.)
Czyli albo czytelny kod, albo nieczytelny, ale z dużą ilością dokładnych komentarzy?

Lepiej używać goto do wychodzenia z takich zagnieżdżonych pętli, czy zrobić funkcje typu void i tam returna używać? Czy wywołanie funkcji typu void kosztuje jakąś pamięć albo moc obliczeniową?
komentarz 22 czerwca przez j23 Mędrzec (175,240 p.)

Kosztuje, ale jak napisał @tangarr, najpierw piszesz kod, który ma działać, a później zastanawiasz się, czy koszt wywołań funkcji ma jakieś znaczenie. Jeśli nie, to nie bawisz się w mikro-optymalizacje.

Jest niewiele dziedzin, gdzie liczenie taktów ma naprawdę znaczenie. Liczy się przede wszystkim algorytm.

komentarz 23 czerwca przez Oscar Nałogowiec (26,110 p.)
Dodam, że mikrooptymalizacje kompilator zrobi i tak lepiej od ciebie (zależnie oczywiście na ile mu pozwolisz). Optymalizacja samego algorytmu - tak, ale jeśli będzie to potrzebne, optymalizacja jakiś prostych operacji - nie. Jak już uruchomisz program możesz włączyć optymalizację. Ona troszkę się wyklucza z debuggowaniem, bo silna optymalizacja może powywalać zmienne, pozamieniać kolejność operacji itp.
1
komentarz 23 czerwca przez Wiciorny Ekspert (222,610 p.)

@Daaa22, komentarze sa zla praktyką powinno sie je minimalizowac, generalnie nawet nie powinno ich byc, nie mowa tu o sygnaturze jako dokumentacji.
Kod powinien byc pisany w zrozumialy sposób, zalezenie od tego jakie jest flow projektowe. 

Tzn. osoba nie majaca pojecia o implementacji, o tym co sie dzieje- powinna czytajac kod byc w stanie zrozumiec, co metody realizuja, za co odpowiadaja klasy itp. 
Kod powininien byc pisany jak to sie mowi "proza" czyli i najczesciej deklaratywne 

Podobne pytania

0 głosów
2 odpowiedzi 339 wizyt
pytanie zadane 18 marca 2018 w C i C++ przez DominikWłodarczyk Początkujący (320 p.)
0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 7 sierpnia 2015 w PHP przez makoso Mądrala (7,380 p.)

88,400 zapytań

137,011 odpowiedzi

305,796 komentarzy

58,656 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...