4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

41
Legacy Code – szkoła przetrwania Katarzyna Żmuda

Transcript of 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Page 1: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Legacy Code – szkoła przetrwania

Katarzyna Żmuda

Page 2: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Literatura

Page 3: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Legacy code

Page 4: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Co to jest?

● Kod, który „odziedziczyliśmy”

● Kod, którego nikt nie rozumie

● Kod obciążony długiem technicznym

● Kod bez testów

● Kod, który działa

Page 5: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Przestań pisać

legacy code !!

● Testuj nowy kod

● Pisz kod łatwy do zmiany

● Dodawaj testy do kodu, który zmieniasz

● Napisz testy do kodu, który zmieniłeś

Page 6: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wprowadzanie zmian

● Edytuj i módl się

● Kryj i modyfikuj

PARAGRAF 22

Page 7: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Testy charakteryzacyjne

● Użyj klasy lub metody w teście

● Napisz błędną asercję

● Dowiedz się, jakie jest zachowanie

● Spodziewaj się wartości z poprzedniego

punktu

● Powtórz

Page 8: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Testy charakteryzacyjne

Page 9: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Testy charakteryzacyjne

Page 10: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Testy charakteryzacyjne

Page 11: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wprowadzanie zmian

● Edytuj i módl się

● Kryj i modyfikuj

– Dostosuj do testów

– Dostosuj do rozszerzalności

– Rozszerzaj

Page 12: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Techniki usuwania zależności

● Parametryzacja konstruktora/metody

● Wyodrębnienie interfejsu

● Adaptacja parametru

● Wyodrębnienie metody wytwórczej

Page 13: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Parametryzacja konstruktora

- łamanie ukrytej zależności

Page 14: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Parametryzacja konstruktora

- łamanie ukrytej zależności

Page 15: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Parametryzacja konstruktora

- łamanie ukrytej zależności

Page 16: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wyodrębnienie interfejsu

Page 17: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wyodrębnienie interfejsu

Page 18: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wyodrębnienie interfejsu

Page 19: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wyodrębnienie interfejsu

Page 20: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Adaptacja parametru

Page 21: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Adaptacja parametru

Page 22: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Adaptacja parametru

Page 23: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Adaptacja parametru

Page 24: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wyodrębnienie

metody wytwórczej

Page 25: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

Wyodrębnienie

metody wytwórczej

Page 26: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda

DEMO

Page 27: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 28: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 29: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 30: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 31: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 32: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 33: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 34: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 35: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 36: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 37: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 38: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 39: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 40: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda
Page 41: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda