Wpis z mikrobloga

@Zendemion: empty nie jest dla pisania krótszego kodu, tylko po to że size() może w szczególnym przypadku mieć nawet inna złożoność obliczeniowa niż empty(). Porównanie size() == 0 może być znacznie droższe od sprawdzenia empty().Np. jeśli pod spodem jest klasyczna lista łączona, to size musi przejść po wszystkich elementach kolekcji, a empty nie.
  • Odpowiedz
a potem łażenie z funkcji do funkcji, żeby sprawdzić? I robi się spaghetti.


@Rasteris: spaghetti to się robi jak się nie wydziela rzeczy do funkcji, ogólnie dobrą zasadą jest że jak robisz pustą linię odstepu w kodzie to ten blok między dwoma pustymi liniami warto rozważyć jako osobną funkcję
  • Odpowiedz
@mirasKo-Kalwario: jak masz coś sprawdzać i lecisz przez 5 funkcji po drodze to też nie jest dobre. Przy czwartej funkcji nie pamiętasz po co rozpocząłeś wędrówkę.

Akurat przejrzystość kodunjest dla mnie dość ważna, bo to gra ekonomiczna, gdzie wychodzą zakręcone alorytmy obliczające coś. Wynik może być zależny od 6 czy 7 czynników. Więc muszę robić przejrzysty kod, żeby łatwo dojść do ładu z logiką gry. Pokręcona logika + pokręcony kod
  • Odpowiedz
@mirasKo-Kalwario: ale oprocz tego są funkcje zbiorcze. Np mam kilka funkcji odpowiedzialnych za odświeżenie interfejsu. Ale są tez zebrane w funkcji refreshUi, ktora odpala wszystkie cząstkowe. A też inne funkcje, które robią kaskadowo kilka rzeczy. Zakup ziemi to jest przecież jedoczesnie zwiekszenie ilości ziemi, zmniejszenie gotówki, ew. zmiana ceny. Zakup budynku produkcyjnego to np dodatkowo zmiana w liczbie dostępnych pracowników, zabranie surowców z magazynu.
Jedna operacja to możliwa cala kaskada
  • Odpowiedz
@Rasteris: normalnie przecież funkcję można wywoływać w innych funkcjach, ja pisalem o tym żeby warunki w ifie rozbić sobie na funkcje wtedy staje się krótszy i czytelniejszy pozatym jak masz funkcję
- zmiana liczby pracowników
- zabranie surowców z magazynu

To mozesz to opakować w funkcje zakup budynku ot poprostu kwestia dobrego nazywania rzeczy bo funkcja zakup budynku będzie robić jedną rzecz - rozpoczynać lub ogarniać proces zakupu budynku i
  • Odpowiedz