techniczna organizacja zespołu cz 2
TRANSCRIPT
![Page 1: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/1.jpg)
Agenda
• Continuous integration
• Continuous delivery• Architekt – kto to jest?• Narzędzia pracy architekta• Zadania architekta
1
![Page 2: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/2.jpg)
Continuous IntegrationCzyli sprawdź, zbuduj, opublikuj, nie wstając z łóżka
![Page 3: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/3.jpg)
3
Ciągła integracja (CI) Co to jest właściwie?
▪ Praktyka integracji bieżących zmian w kodzie do głównego repozytorium
▪Możliwie dużo automatyzujemy
▪ Tak, można mieć z tego certyfikat (np. PCSCC-CI)
▪W teorii:
• Feature 1• Bug fix 1
Release 1
• Bug fix 2• Feature 2
Release 2• Bug fix 3• Bug fix 4
Release 3
![Page 4: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/4.jpg)
4
![Page 5: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/5.jpg)
5
Środowiska
▪ Local tam gdzie pracuje developer
▪Development/trunk development server, sandbox
▪ Integration używane przez CI, lub do testowania regresji
▪ Test/QA do testów funkcjonalnych, wydajności, QA
▪ Staging (pre-production) kopia środowiska produkcyjnego
▪ Production, live tam gdzie pracują klienci
![Page 6: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/6.jpg)
6
![Page 7: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/7.jpg)
7
Co potrzebujemy do CI
▪Repozytorium kodu▪ A w niej konwencje
▪ Automatyzację budowania kodu
▪ Automatyczne testy▪ Testy kodu▪ Testy builda
▪ Środowiska
▪ Automatyzacja publikowania
![Page 8: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/8.jpg)
8
Przykładowe sytuacje kiedy CI ratuje nam D
▪ Trzeba poprawić release który ma klient a nie możemy mu dawać funkcji nad którymi pracujemy
▪ Trzeba się upewnić że nowe poprawki nic nie zepsuły w funkcjonalności do której dawno nie zaglądaliśmy
▪Mamy praktykanta
▪ Potrzebujemy instalki konkretnej wersji
▪ Potrzebujemy kopii środowiska produkcyjnego
▪ Jakie jest hasło do FTP klienta?
![Page 9: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/9.jpg)
9
Visual Studio Online
▪ Integracja kodu, commitów, zadań, buildów (odpowiada na pytania: kiedy i czym coś poprawiliśmy / zepsuliśmy)
▪ Build agents – dla Windows, Android, iOS, Java…
▪ Automatyczne testy (unit tests, automated tests)
▪Diagnostyka i raportowanie
▪ Automatyczne publikowanie (również do Azure)
![Page 10: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/10.jpg)
10
![Page 11: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/11.jpg)
11
![Page 12: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/12.jpg)
12
![Page 13: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/13.jpg)
13
![Page 14: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/14.jpg)
14
Jenkins: zrób to sam
▪Najpopularniejsze narzędzie
▪Warto znać, umieć skonfigurować
▪Działa w każdym środowisku (Java)
▪ Łatwy do opanowania interfejs www dla użytkowników
▪ Łatwy do rozszerzania
![Page 15: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/15.jpg)
15
Continuous delivery
▪Dostarczanie oprogramowania w krótkich cyklach w celu zapewnienia odpowiedniej jakości
![Page 16: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/16.jpg)
Architektura i projektowanieCzyli aplikacja ma warstwy (jak ogry)
![Page 17: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/17.jpg)
17
![Page 18: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/18.jpg)
18
Architekt
▪ Architekci oprogramowania
▪ Anders Hejlsberg, Linus Torvalds, Jeffrey Dean, John Carmack, Guido Von Rossum
▪ Kiedy potrzebujemy architekta?
▪ Kim jest ten tajemniczy człowiek?
![Page 19: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/19.jpg)
19
![Page 20: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/20.jpg)
20
Kiedy nie trzeba nic projektować lub wspomóc się pracą innych
▪Minimalizujemy wysiłek i korzystamy z dorobku innych
▪Wzorce kreacyjne (konstrukcyjne)▪ Np. builder, abstract factory, prototyping
▪Wzorce strukturalne▪ Np. adapter, dekorator, fasada
▪Wzorce czynnościowe (behawioralne)▪ Np. interpreter, iterator, observer, visitor
![Page 21: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/21.jpg)
21
Daj sobie pomóc
![Page 22: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/22.jpg)
22
Kiedy musimy coś zaprojektować
▪ Jakie mamy do tego narzędzia▪ Zdrowy rozsądek▪ Doświadczenie▪ UML
▪ Aby zachować odpowiednią równowagę…
![Page 23: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/23.jpg)
23
![Page 24: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/24.jpg)
24
UML
▪Diagramy struktury
▪Diagramy zachowań▪ Diagramy interakcji
▪Mnóstwo innych diagramów…
![Page 25: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/25.jpg)
25
![Page 26: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/26.jpg)
26
![Page 27: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/27.jpg)
27
![Page 28: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/28.jpg)
28
![Page 29: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/29.jpg)
29
Zadania architekta
▪ Skąd bierzemy architekta?
▪Co należy do jego obowiązków?
▪Czy zawsze to jest konkretna osoba?
![Page 30: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/30.jpg)
30
Warstwy i moduły
▪Multi-tiered apps – innych się już nie pisze!
▪Co to jest ta warstwa
▪Multitier architecture
▪Różne podejścia do podziału (top-down, bottom-up)
▪Co daje dobry podział na moduły i warstwy?
▪Co to jest właściwie ten moduł?
![Page 31: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/31.jpg)
31
Architektura wielowarstwowa
▪Rozwinięcie podejścia klient-serwer
▪Najczęściej spotykane: 3 warstwy▪ Prezentacji▪ Aplikacji▪ Danych
▪ Transport: web services, sockets, middleware
▪Czasami definiowane (layers zamiast tiers)▪ Prezentacji▪ Aplikacji▪ Logiki▪ Dostępu do danych
▪ Aplikacja i logika często razem: MVP
![Page 32: Techniczna organizacja zespołu cz 2](https://reader035.vdocuments.pub/reader035/viewer/2022062223/58a48d661a28ab58738b6e61/html5/thumbnails/32.jpg)
32
Dziękuję
▪ Łukasz Roszak ([email protected])
▪Hubert Taler ([email protected])
▪Co poczytać?
http://www.norvig.com/design-patterns/
http://www.dofactory.com/net/design-patterns