• 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?

VPS Starter Arubacloud
0 głosów
300 wizyt
pytanie zadane 22 czerwca 2022 w C i C++ przez Daaa22 Dyskutant (8,250 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 2022 przez j23 Mędrzec (194,920 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 2022 przez Oscar Nałogowiec (29,290 p.)
edycja 24 czerwca 2022 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 2022 przez tangarr Mędrzec (154,780 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 2022 przez Daaa22 Dyskutant (8,250 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 2022 przez j23 Mędrzec (194,920 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 2022 przez Oscar Nałogowiec (29,290 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 2022 przez Wiciorny Ekspert (269,120 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 408 wizyt
pytanie zadane 18 marca 2018 w C i C++ przez DominikWłodarczyk Początkujący (320 p.)
0 głosów
1 odpowiedź 173 wizyt
pytanie zadane 7 sierpnia 2015 w PHP przez makoso Mądrala (7,380 p.)
0 głosów
3 odpowiedzi 1,558 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...