32
Agenda Continuous integration Continuous delivery Architekt – kto to jest? Narzędzia pracy architekta Zadania architekta 1

Techniczna organizacja zespołu cz 2

  • Upload
    intive

  • View
    513

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Techniczna organizacja zespołu cz 2

Agenda

• Continuous integration

• Continuous delivery• Architekt – kto to jest?• Narzędzia pracy architekta• Zadania architekta

1

Page 2: Techniczna organizacja zespołu cz 2

Continuous IntegrationCzyli sprawdź, zbuduj, opublikuj, nie wstając z łóżka

Page 3: Techniczna organizacja zespołu cz 2

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

4

Page 5: Techniczna organizacja zespołu cz 2

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

6

Page 7: Techniczna organizacja zespołu cz 2

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

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

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

10

Page 11: Techniczna organizacja zespołu cz 2

11

Page 12: Techniczna organizacja zespołu cz 2

12

Page 13: Techniczna organizacja zespołu cz 2

13

Page 14: Techniczna organizacja zespołu cz 2

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

15

Continuous delivery

▪Dostarczanie oprogramowania w krótkich cyklach w celu zapewnienia odpowiedniej jakości

Page 16: Techniczna organizacja zespołu cz 2

Architektura i projektowanieCzyli aplikacja ma warstwy (jak ogry)

Page 17: Techniczna organizacja zespołu cz 2

17

Page 18: Techniczna organizacja zespołu cz 2

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

19

Page 20: Techniczna organizacja zespołu cz 2

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

21

Daj sobie pomóc

Page 22: Techniczna organizacja zespołu cz 2

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

23

Page 24: Techniczna organizacja zespołu cz 2

24

UML

▪Diagramy struktury

▪Diagramy zachowań▪ Diagramy interakcji

▪Mnóstwo innych diagramów…

Page 25: Techniczna organizacja zespołu cz 2

25

Page 26: Techniczna organizacja zespołu cz 2

26

Page 27: Techniczna organizacja zespołu cz 2

27

Page 28: Techniczna organizacja zespołu cz 2

28

Page 29: Techniczna organizacja zespołu cz 2

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

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

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

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