2 maj 2017

Portfel Emerytalny jest już online - 9 tydzień konkursu Daj Się Poznać

Ostatni tydzień rozwoju aplikacji był poświęcony jednemu celowi - spiąć wszystkie warstwy ze sobą i wystawić je online. Co prawda z małym opóźnieniem, ale cel udało się osiągnąć. Z przyjemnością zatem informuję, że aplikacja Portfela Emerytalnego jest już dostępna online pod adresami:
https://thorin87.github.io/ oraz
https://thorin87.github.io/retirement-savings/

Główne wyzwania jakie stanęły na drodze, to wydajne zapytanie do bazy o dane na potrzeby wykresu oraz problemy ze zbudowaniem wersji produkcyjnej frontendu.
Zapytanie do bazy niestety ciągle pozostawia wiele do życzenia (czas wykonania ~3s), ale zwraca dokładnie to czego potrzebuję. Przyjdzie jeszcze czas na jego optymalizację, na razie zostaje tak jak jest. Do tego drugiego problemu szczególnie przyłożył się moduł angular2-highcharts i błąd
Error encountered resolving symbol values statically. Calling function 'ChartModule', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function
wywołany przez poniższą linię w module aplikacji
    ChartModule.forRoot(require('highcharts/highstock'))
Jak rozwiązać ten problem? Odsyłam do mojego kodu na GitHub lub do oficjalnego issue założonego dla tego problemu.

Pozostałe zmiany we frontendzie to:
  1. wyłączenie Routingu (na razie go nie potrzebuję, cała aplikacja jest single page)
  2. wydzielenie adresu API do plików konfiguracyjnych (projekt wygenerowany z angular-cli od ręki obsługuje oddzielne pliki konfiguracyjne dla środowiska deweloperskiego i produkcji)
  3. wydzielenie modułu dla kart z podsumowaniem wyświetlanych na początku strony
  4. pobieranie i wyświetlanie danych z API (karty podsumowania, wykres i portfele)
  5. sporo drobnych poprawek i usuwania niepotrzebnych fragmentów kodu
Baza również przeszła drobną zmianę, ponieważ zupełnie bez sensu było trzymanie dat operacji kupna i sprzedaży zasobu (asset) w jednym wierszu. Teraz jest jedna data OperationDate i ewentualnie ilość jest mniejsza od zera, jeśli jest to sprzedaż.

W API też sporo zmian, ale bez rewolucji. Głównie są to poprawione lub rozszerzone już istniejące zapytania do bazy. Pojawiły się też 2 nowe metody - pobieranie danych do wykresu i podsumowania - ale opierają się o ten sam schemat, czyli wywołaj zapytanie i zwróć jego wynik jako JSON bez większej obróbki.

Jeszcze w tym tygodniu pojawi się podsumowanie całego miesiąca pracy i jej efektów, a także plan na ostatni już miesiąc konkursu. Zapraszam też do śledzenia mnie na Twitterze, gdzie pojawia się info o każdym nowym wpisie na blogu.

0 komentarze:

Prześlij komentarz