4developers 2015: legacy code, szkoła przetrwania - katarzyna Żmuda
TRANSCRIPT
![Page 1: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/1.jpg)
Legacy Code – szkoła przetrwania
Katarzyna Żmuda
![Page 2: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/2.jpg)
Literatura
![Page 3: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/3.jpg)
Legacy code
![Page 4: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/6.jpg)
Wprowadzanie zmian
● Edytuj i módl się
● Kryj i modyfikuj
PARAGRAF 22
![Page 7: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/8.jpg)
Testy charakteryzacyjne
![Page 9: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/9.jpg)
Testy charakteryzacyjne
![Page 10: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/10.jpg)
Testy charakteryzacyjne
![Page 11: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/13.jpg)
Parametryzacja konstruktora
- łamanie ukrytej zależności
![Page 14: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/14.jpg)
Parametryzacja konstruktora
- łamanie ukrytej zależności
![Page 15: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/15.jpg)
Parametryzacja konstruktora
- łamanie ukrytej zależności
![Page 16: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/16.jpg)
Wyodrębnienie interfejsu
![Page 17: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/17.jpg)
Wyodrębnienie interfejsu
![Page 18: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/18.jpg)
Wyodrębnienie interfejsu
![Page 19: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/19.jpg)
Wyodrębnienie interfejsu
![Page 20: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/20.jpg)
Adaptacja parametru
![Page 21: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/21.jpg)
Adaptacja parametru
![Page 22: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/22.jpg)
Adaptacja parametru
![Page 23: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/23.jpg)
Adaptacja parametru
![Page 24: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/24.jpg)
Wyodrębnienie
metody wytwórczej
![Page 25: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/25.jpg)
Wyodrębnienie
metody wytwórczej
![Page 26: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/26.jpg)
DEMO
![Page 27: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/27.jpg)
![Page 28: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/28.jpg)
![Page 29: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/29.jpg)
![Page 30: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/30.jpg)
![Page 31: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/31.jpg)
![Page 32: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/32.jpg)
![Page 33: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/33.jpg)
![Page 34: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/34.jpg)
![Page 35: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/35.jpg)
![Page 36: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/36.jpg)
![Page 37: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/37.jpg)
![Page 38: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/38.jpg)
![Page 39: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/39.jpg)
![Page 40: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/40.jpg)
![Page 41: 4Developers 2015: Legacy Code, szkoła przetrwania - Katarzyna Żmuda](https://reader034.vdocuments.site/reader034/viewer/2022042716/55a65fe71a28ab56538b45bd/html5/thumbnails/41.jpg)