Słowem wstępu. Zajmuje się programowaniem od początku tego roku. Napisalem prosty programik wg. otrzymanych specyfikacji, ktory konsumuje API archiwum Narodowego Banku Polskiego. Program pobiera kursy sprzedaży i kursy kupna dla danej waluty w określonym przedziale czasowym, a potem liczy sobie z tego średnią kursów kupna i odchylenie standardowe kursów sprzedaży. Tutaj moja implementacja.
Nie zajmowałem się jeszcze wątkami, dlatego aplikacja działa wolno (musiałem pobierać daty z plików xml). Prosty workaround polegałby na użyciu innego Predicate w metodzie getXmlFileNames(Predicate<String> predicate), który selekcjonowałby pliki jeszcze przed ich parsowaniem. Cel na najbliższe dni, to lektura "Concurrency in practice" i poprawa wydajności. No ale zanim to nastąpi, byłbym wdzięczny jeśli ktoś znalazłby chwilę na skomentowanie tego co widzi.
Od siebie dodam, że mam problem z testami. Im dalej, tym kod robi się coraz bardziej nieczytelny. Problem widać w DailyRatingFilterTest. Jest jakiś sens pisania testów dla XmlParserImp? W końcu ta klasa jest tylko wraperem dla zewnętrznych bibliotek. Przydałyby sie też testy dla ContextBuilder'a, ale w obecnej sytuacji byłby tam niezły misz-masz.