wtorek, 16 maja 2017

Dzień 39., 40. i 41.

    Ponownie kila dni w jednym wpisie, bo ostatnio nie ma dla mnie zbytnio zadań, więc się douczam. Przez 2 dni uczyłem się o serwisach w Symfony2. Znalazłem jakiś krótki kurs po polsku, a później zrobiłem przykłady z dokumentacji Sf2. Wiem już co to jest service container, jak się tworzy własne i pobiera gotowe serwisy oraz że kontroler też może być serwisem, ale o tym ostatnim czytałem jakieś artykuły, że to może być zło. Senior kazał mi też poczytać o serwisach tagowanych oraz zrozumieć, ale z tym ostatnim to nie jest tak do końca pewien, póki nie trafię na zastosowanie praktyczne. Serwisy niby też zrozumiałem i zrobiłem jakieś własne, ale jak ponownie sięgnąłem do projektu, w którym miałem zmienić serwis, to dalej nie wiem jak to zrobić, bo ten kod jest zbyt zagmatwany.

    Gdzieś w trakcie tych trzech dni, zdarzyły mi się zadania programistyczne. Jedno na godzinę, które nawet nie pamiętam, ale dwa pozostałe już ciekawsze. Projekt Manager szukał dla mnie jakichś zadań i coś tam odgrzebał, albo mu po drodze zgłoszono. Zacząłem więc dzielnie szukać błędu, który widziałem naocznie u dziewczyn z zaprzyjaźnionej firmy, z którą dzielimy biuro. Siadam do błędu, grzebię, kod wygląda znajomo, bo już coś w nim robiłem na samym początku pracy, ale i tak schodzą mi 4 godzinę na analizę, co się w tym projekcie dzieje i czemu pewne pola są różnie opisane, chociaż spełniają tę samą role, a także nie mają relacji, tylko są kopiowane. Poprawiam i działa. W międzyczasie jest mowa, że wiszą jakieś moje stare merge requesty w tym projekcie, bo PM coś tam przegląda. No to i ja przejrzę czemu to jeszcze wisi. Przeglądam, przeglądam a tam znajomy kod. Okazuje się, że już raz ten problem rozwiązałem, tylko nikt go nie wypchnął, a ja w tym projekcie poruszałem się wtedy jak dziecko we mgle, więc zupełnie tego nie kojarzyłem. Ale przynajmniej dwa raz tak samo napisałem kawałek kodu, więc pewnie jest dobrze. ;) A próby zrzucania odpowiedzialności na mnie (powiedziałem PM-owi, że już raz to zrobiłem, tylko nie zostało zaakceptowane) są po prostu śmieszne, bo nie mam obowiązku pamiętania wszystkiego co robiłem, zwłaszcza w czasach, gdy nie do końca ogarniałem co się dzieje.

   Trafiła mi się też ciekawostka, w której sam jestem sobie winny i jest w sumie śmieszna. Dostałem zadanie o braku aktualizacji wyświetlanych danych po zastosowaniu filtrów. Jedna z poprawek dotyczyła front-endu, bo korzystał nie z tych danych, które przekazywała back-end, a druga była w back-endzie i moje wersja jest taka, że zostało zrobione to źle, ale kolegi, który to pisał jest taka, że nie zostało to właściwie zaimplementowane. Ot, wyświetlanie sumy wpłat dla wszystkich użytkowników zamiast dla przefiltrowanych, to niewłaściwa implementacja. Koniec końców, napisałem własną implementację, wzorując się na kawałku kodu, który zliczał liczbę wpłat. Przepisałem zapytanie DQL zmieniając co trzeba i oglądam wyniki. Pierwszy działa, więc sprawdzam w innych kategoriach. Też działa, ale że kwoty były duże, to sprawdziłem na 3 wynikach. I tu się prawie zgadzało, gdyby nie to, że po przecinku powinno być 40 gr, a u mnie było zero. Sprawdzam gdzie indziej i to samo. No to mamy problem... Sprawdzam front-end, bo tam widziałem jakieś zaokrąglanie, ale console.log z tymi liczbami wyświetla dobry wynik. Zabieram się więc do czystego SQL-a, ale tam również jest dobrze i nie spodziewałem się, żeby było inaczej. Przeglądam kod i nagle olśnienie! Jeśli zwraca się wynik zapytania rzutowany na (int) zamiast na (float), to się nie ma co dziwić, że wyświetlają się liczby całkowite. :)


1 komentarz: