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

Jak dobrze pisać kod? Gdzie znaleźć wzorce projektowe?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
570 wizyt
pytanie zadane 8 marca 2022 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
edycja 9 marca 2022 przez Daaa22

Mam opanowaną dużą ilość teorii, co jaka funkcja robi, jak działają pętle, zmienne, wskaźniki, polimorfizm, ogólnie dużo, ale czasami jak pisze kod spotykam się z tym że nie wiem jakiego rozwiązania użyć albo jak powinny wyglądać wzorce projektowe. Przykładowo ostatnio miałem problem z kodem

while(cośtam)
{
 vector<Line>::iterator skip; //tu mam problem, bo chciałbym żeby ten skip nie miał jakiegoś śmiecia w pamięci (różne skutki to może mieć) tylko jakiś null ale takie coś w iteratorach nie występuje

 for( auto it = Map.begin(); it != Map.end(); it++ )
  for( auto iter = it -> line.begin(); iter != it -> line.end(); iter++ )
  {
   if( iter == skip )
    continue;
   if(jakiś warunek)
   {
    skip = iter;
   }
  }

 //tutaj jakiś kod 
}

trzeba to robić naokoło deklarując jakiś bool skipExist = false; i warunek potem if(skipExist)? Czy są jakieś ładniejsze sposoby na to? Polecacie jakieś źródła wzorców projektowych?

komentarz 9 marca 2022 przez TOM_CPP Pasjonat (22,640 p.)

Zadaj sobie pytanie czy kiedykolwiek możliwe jest aby iteratory skip i iter wskazywały na ten sam element w momencie ich porównywania. Jaki jest sens tego kodu, co chcesz osiągnąć?

komentarz 9 marca 2022 przez Daaa22 Dyskutant (8,250 p.)

jest to możliwe. Ogólnie robiłem program w którym rysowałem figury geometryczne i stawiałem taki laser którego ustawiałem kąt padania i program liczył jak ten laser się będzie odbijał i rysował go na ekranieI gdzieś tam był problem bo jak nie było skip to program czasami sprawdzał czy laser odbija się od ściany od której dopiero co się odbił co było związane chyba z ograniczoną precyzją double więc dodałem ten iterator skip

1 odpowiedź

+1 głos
odpowiedź 9 marca 2022 przez rafal.budzis Szeryf (85,380 p.)
wybrane 9 marca 2022 przez Daaa22
 
Najlepsza

Jeśli chodzi o to że skip może być nullem lub iteratorem a ty nie chcesz dodawać warunków w kodzie to przyda Ci się tak zwany NullObject ;) Chodzi o to że tworzysz specjalny NullIterator który implementuje wszystkie metody ale zwraca na stałe takie wartości jak by był pusty ;) 

https://refactoring.guru/pl/introduce-null-object

Odnośnie stron polecam właśnie refactoring.guru najwięcej przykładów duża cześć po polsku ;) 

 

Podobne pytania

0 głosów
0 odpowiedzi 277 wizyt
pytanie zadane 18 listopada 2021 w C# przez Zaba096 Początkujący (260 p.)
+1 głos
1 odpowiedź 913 wizyt
pytanie zadane 27 września 2019 w Python przez kombin4tor Nowicjusz (130 p.)
0 głosów
3 odpowiedzi 1,182 wizyt
pytanie zadane 11 grudnia 2018 w PHP przez Krzysio4224 Obywatel (1,690 p.)

93,191 zapytań

142,206 odpowiedzi

322,040 komentarzy

62,518 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2817p. - dia-Chann
  2. 2769p. - Łukasz Piwowar
  3. 2759p. - Łukasz Eckert
  4. 2738p. - CC PL
  5. 2704p. - Tomasz Bielak
  6. 2678p. - Łukasz Siedlecki
  7. 2666p. - rucin93
  8. 2536p. - Mikbac
  9. 2485p. - Marcin Putra
  10. 2475p. - Adrian Wieprzkowicz
  11. 2418p. - Michal Drewniak
  12. 2239p. - Michał Telesz
  13. 2156p. - Anonim 3619784
  14. 1733p. - rafalszastok
  15. 1650p. - Mariusz Fornal
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...