Czy uruchamiacie projekty nad którymi pracujecie?

0

Miałeś dzisiaj przypadek, że testerzy zgłosili ticket, bo leciał NullPointerException. Brak null checka prosty gdzieś pominął ktoś i co jakiś czas to leciało i się wysypywało.
Dodałem sprawdzenie czy referencja jest null i dorobiłem unit test. Poszło.

Dostałem też lekką sugestię, że "nie wiemy ja to tak szybko zrobiłeś - musisz testować swoje zmiany".

Pytanie czy powinienem stawiać ten cały system i skonfigurować cały przepływ programu co by mi zajęło z godzinę po to, żeby sprawdzić null-check w jednej metodzie?

3

Przeważnie pracuje na testach i nie odpalam projektu.

Ale też nie pracuje z patologicznymi frameworkami, gdzie:

  • jak nie sprawdzisz czy wstanie, to może nie wstać (Spring, JavaEE i inne kupy),
  • nawet jak wstanie to nie znaczy, że funkcja na produkcji będzie działać tak jak w testach
0
NeutrinoSpinZero napisał(a):

Pytanie czy powinienem stawiać ten cały system i skonfigurować cały przepływ programu co by mi zajęło z godzinę po to, żeby sprawdzić null-check w jednej metodzie?

U mnie jest prościej bo o ile nie zgubię namiarów na bazę danych to musze puścić tylko run na backendzie oraz oczywiście start w dla frontendu i to wszystki :D
No chyba że jest problem z rzeczą związaną z Airflow/Spark to tego nawet nie wiem jak kokalnie postawić :(

Mimo to uruchamiam całość dość rzadko. Dziś uruchomiłem bo frontendowiec zgłosił mi dziwne błędy i chciałem podebugować

0
NeutrinoSpinZero napisał(a):

Pytanie czy powinienem stawiać ten cały system i skonfigurować cały przepływ programu co by mi zajęło z godzinę po to, żeby sprawdzić null-check w jednej metodzie?

Takie coś powinno być zautomatyzowane. Możesz przetestować, czy null-check działa jak na leży ale to nie oznacza, czy ta zmiana ma sens na poziomie całej aplikacji. Jak mam testy, które pokrywają cały kod to piszę nowy test, dodaję checka i sprawdzam, czy coś się wysypało. Nawet jak taki test potrwa 30s to jest to dużo mniej niż 1h

3

Zawsze mam wszystko lokalnie, nawet często bazy produkcyjne mam klonowane do siebie bo inaczej nie da się ogarnąć np optymalizowania kodu pod względem szybkości.

4
NeutrinoSpinZero napisał(a):

Miałeś dzisiaj przypadek, że testerzy zgłosili ticket, bo leciał NullPointerException. Brak null checka prosty gdzieś pominął ktoś i co jakiś czas to leciało i się wysypywało.

Lekki offtop.
Zwykle to nie brak null checka jest błędem - to wrzucanie nulla jest :-)
(ale jak nulla rzuca framework to niestety, często nie ma wyjścia i trzeba jednak ifa wrzucić)

1

Ale od kogo dostałeś taką sugestię? Oczywiście, że przy takich pierdołach nie ma sensu stawiać całego systemu. Dostałeś opis błędu, odtworzyłeś w teście warunki krytyczne, zadziałało, jesteś pewien, że działa. Podstawową zaletą UT jest to, że testuje się w ten sposób szybciej, niż ręcznie.

1

Skoro pracujesz na jakimś projekcie to nie masz go już postawionego lokalnie? Ciągle dają ci nowe projekty do poprawy?
Zdarzyło mi się że poprawienie błędu w jednym miejscu spowodowało wywalenie się w całkiem innym bo błąd już był tak zakorzeniony że zdążył powstać kod który też miał błąd a działał tylko dlatego że wysypywało się w "lżejszy" sposób wcześniej.

Po paru latach pracy już nie dałbym sobie ręki uciąć za żadną poprawkę. Zawsze przechodzę przynajmniej przez happy path. Czuję się spokojniej że się nie wywali na produkcji i nie będę musiał czegoś poprawiać w piątek wieczór po releasie.
No ale takie testowanie nie zajmuje mi godziny tylko zwykle kilkadziesiąt sekund do paru minut. Jakbym miał tracić godzinę to bym się zastanowił.

A ta Twoja zmiana też brzmi trochę podejrzanie - skąd tam się bierze ten "co jakiś czas" null?

2

no jestem geniuszem i wrzucam bez kompilowania do repozytorium (ironia)
jak to nie jest mój projekt tylko poprawiam jakąś drobną rzecz u kogoś to prozę żewby sprawdził w mojej obecności

2
NeutrinoSpinZero napisał(a):

Pytanie czy powinienem stawiać ten cały system i skonfigurować cały przepływ programu co by mi zajęło z godzinę po to, żeby sprawdzić null-check w jednej metodzie?

A płacą Ci od efektu czy za godzinę?

0

W większości języków są dostępne lintery, które informują jeśli zmienna może mieć nulla, a nie zrobiliśmy jakiegoś checka.

Chyba, że zostawiacie taką listę warningów nie obsłużoną, albo jakiś szczególny przypadek nie wspierany przez linter.

1 użytkowników online, w tym zalogowanych: 0, gości: 1