Wpis z mikrobloga

@koziolek666: widzę że dzielnie walczysz z problemem, którego napisanie w tradycyjnej pętli zajęło by 5 linijek :D Może i jestem nieco staroświecki, ale jaki jest w tym sens? Przecież takie podejście jest 5 razy mniej czytelne i prostsze do debugowania.
  • Odpowiedz
@kapelusz: może pisanie staroświeckiej pętli w przypadku pracy ze strumieniami nie ma sensu... Szczególnie, że pętla będzie zdecydowanie cięższa w przetestowaniu.

@sambarumba: można wpiąć za pomocą AspectJ w Stream i wtedy masz:

collection.stream().takeWhile(predykat).RESZTA
  • Odpowiedz
@kapelusz: ponieważ musisz w takim teście uwzględnić kilka elementów zarówno związanych z iteracją jak i z warunkami. W tym kodzie raz testujesz "pętlę", a w kodzie biznesowym już oddzielnie same predykaty. Jeżeli dodatkowo wydzielisz takeWhile do osobnego modułu to korzystasz z niego i nie zastanawiasz się jak działa pod spodem. Wstawiasz swój predykat, który jest banalny w testowaniu i jazda.

Zaletą strumieni w Javie jest możliwość separacji tego co robisz i
  • Odpowiedz