What's the worst thing that can happen

Regresja

Regresja – zjawisko niezamierzonej utraty jakiejś funkcjonalności powstałe w nowej wersji programu i zwykle skutkujące komunikatem o błędzie lub brakiem działania. Do regresji dochodzi wskutek wprowadzania zmian w jakiejś części kodu programu. Skutkiem tych zmian jest błędne działanie innej funkcji programu, która w poprzednich wersjach działała prawidłowo. [wiki]

Title Text

def __initialize(self):

    # ...

    self.deposition_reached_bin = self._deposition_reached()

def _deposition_reached(self):
    deposition_reached_at = len(self.full_geometry)

    if self.fit_until_deposition_reaches is not None:
        self.deposition_reached_at = \
            deposition_reached_at_bin(
            self.full_profile, 
            self.fit_until_deposition_reaches)

    return deposition_reached_at

Mieliście kiedyś regresię w Waszym kodzie?

  • Będziecie mieć!

Wasza praca dyplomowa

Jeśli Wasza praca będzie składała się w dużej części z modelowaia

  • Inżynierska to przynajmniej 3-6 miesięcy pracy
  • Magisterska to 6m-12m
  • Doktorska to kilka lat programowania

 

Wasza praca dyplomowa

  • W pracy dyplomowej będziecie mieli.

What is the worst thing that can happen

Czym kończy się regresja?

Wariant optymistyczny

Program wybucha z wyjątkiem

Program wybucha bez wyjątku (segfault, etc)

Program daje śmieciowe wyniki

Program daje dobrze wyglądające niepoprane wyniki

...co okazuje się na obronie

Wariant (ciągle) optymistyczny

Can it get worse?

Oh damn.

Co robić jak żyć?

  • Używać VCS
  • Testy!
    • Trzeba je uruchamiać
  • Defensive programming

Defensive programming

Some people recommend making your software robust by working around problems automatically. This results in the software "failing slowly." The program continues working right after an error but fails in strange ways later on. A system that fails fast does exactly the opposite: when a problem occurs, it fails immediately and visibly. Failing fast is a nonintuitive technique: "failing immediately and visibly" sounds like it would make your software more fragile, but it actually makes it more robust. Bugs are easier to find and fix, so fewer go into production.

What's the worst thing that can happen

By Jacek Bzdak

What's the worst thing that can happen

  • 1,353