Jak się odnaleźć w spaghetti kodzie pisanym na kolanie od wielu lat, bez testów? Ma ktoś doświadczenie w takich potworkach, gdzie każdy ficzer to był dodatkowy if i DI hell? Usiłuje przeforsować idee pisania zaległych testów integracyjnych w ścieżkach krytycznych, co by pozwoliło na refactor, ale ciągle jest coś innego do roboty i taka rozmowa xD #programista15k
@wujo17: imo to jebnie, ale biznes nie chce słyszeć że jest źle w kodzie, bo klienta pierwszego szukają i trzeba robić to co klient oczekuje ( ͡°͜ʖ͡°) no a jakbym był tech leadem takiego projektu, to też bym się nie przyznał że od 4 lat było źle robione
@wafel93 wyceniaj taski na więcej z uzasadnieniem ze trzeba zrobić refaktor jakiegoś obszaru by w ogóle zrealizować taska. W najgorszym wypadku połowa taskow nagle nie będzie już potrzebna lub pilna xD
@Kitku_Karola: wiesz ale refavtor to gruba sprawa, mam wrażenie czego nie ruszysz to tydzień, dwa z głowy. Plus kwestia tego że nie wiesz czy czegoś nie zepsujesz bo codebase duży, a testów brak
@wafel93: spróbuj na ficzer flagach przeprojektować w taki sposób, że w zależności od flagi user dostaje legacy albo zrefaktorowany kawałek kodu. i przygotuj się na to że nowe bugi mogą powstać w nowej zrefaktorowanej wersji.
@wafel93: Czasami trzeba poczekać aż coś jebnie solidnie u klienta i wtedy robicie porządne postmortem podczas którego wyjdzie, że jeśli mielibyście testy to błąd byłby wykryty wcześniej.
@wafel93 tylko nie przepisuj całego systemu. Robisz listę problemów ogólnych albo dzielisz modułami i co sprint jedną rzecz usprawnieniasz. Trzeba się liczyć z tym że coś się może popsuć. Dobrze zacząć od napisania testu ale nie zawsze jest to możliwe żeby bez ich dotykania potem reflektorować. Jest taki framework do testów że przygotowujesz listę inputow i odpowiadających im outuputow bez zagłębiania się w system i mockowania. Poprostu rezultat ma być nadal taki
Usiłuje przeforsować idee pisania zaległych testów integracyjnych w ścieżkach krytycznych, co by pozwoliło na refactor
@wafel93: Dokładnie to plus brakujące testy jednostkowe.
ciągle jest coś innego do roboty
@wafel93: 1. Przypominaj przy każdej okazji że to jest potrzebne. 2. Przeforsuj dodanie jakiegoś poziomu pokrycia testami do Definition Of Done. Wiem, że samo pokrycie o niczym nie świadczy, ale przynajmniej dostaniesz budżet czasowy na to. 3. Jeżeli na horyzoncie pojawia się
@wujo17: Aha. Skoro kod nie ma testów, to zapewne nie ma też dokumentacji, a ze spaghetti nie da się łatwo wywnioskować co tak naprawdę robi. Tak więc nie bardzo wiadomo co napisać od nowa. Pomijając ten jeden detal twoja rada jest świetna (⌐͡■͜ʖ͡■)
@wafel93: jak pracodawca jest negatywnie nastawiony do testow i refactoru to bym mu podziękował bo im dalej w las tym będzie większe druciarstwo i już wiesz jaka będzie miał odpowiedz jak przyjdzie czas ze koniecznie trzeba będzie coś przepisać
#programista15k
Jakbym czytał o swojej obecnej pracy.
Jest jakaś dokumentacja, architekt, ADRy?
@wafel93: Dokładnie to plus brakujące testy jednostkowe.
@wafel93:
1. Przypominaj przy każdej okazji że to jest potrzebne.
2. Przeforsuj dodanie jakiegoś poziomu pokrycia testami do Definition Of Done. Wiem, że samo pokrycie o niczym nie świadczy, ale przynajmniej dostaniesz budżet czasowy na to.
3. Jeżeli na horyzoncie pojawia się
@wujo17: Aha. Skoro kod nie ma testów, to zapewne nie ma też dokumentacji, a ze spaghetti nie da się łatwo wywnioskować co tak naprawdę robi. Tak więc nie bardzo wiadomo co napisać od nowa. Pomijając ten jeden detal twoja rada jest świetna (⌐ ͡■ ͜ʖ ͡■)