Zaawansowane techniki obiektowe

Slides:



Advertisements
Podobne prezentacje
Agile w praktyce, czyli jak to robimy naprawdę
Advertisements

Architektura SAP R/3 Wybrane zagadnienia.
Projektowanie systemowe
Projektowanie w cyklu życia oprogramowania
Obiektowe metody projektowania systemów Design Patterns STRATEGY.
OLAP budowa aplikacji analitycznych w MS SQL 2000 i Yukon
FIT Środowisko Testów Integracyjnych
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Inteligentny System Aktualności
Tomasz Smieszkoł - 15 stycznia
Analiza i walidacja wymagań
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Zaawansowane techniki obiektowe
Inżynieria Oprogramowania dla Fizyków
Rational Unified Process
Wzorce projektowe w J2EE
7. Platformy informatyczne przyszłości (wizja SAP)
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
Analiza i projektowanie Informacyjnych Systemów Zarządzania
Projektowanie - wprowadzenie
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 4 Analiza i projektowanie obiektowe
Wykład 2 Cykl życia systemu informacyjnego
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
Realizacja aplikacji internetowych
Continuous Integration
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Wykład 1 – część pierwsza
Największe problemy w projektach informatycznych IT Opracował: Karol Pietrzak na podstawie artykułu z SDJ/2007 IX.
Wsparcie pracy grupowej systemem Workflow
MDA – Model Driven Architecture
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Enterprise Architecture Patterns
Podstawowe informacje o maturze dla gimnazjalistów.
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Model inteligentnego agenta wspomagającego decyzje zakupu komputerów.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
ZASADY EFEKTYWNEGO PISANIA TESTÓW
Unified Modeling Language - Zunifikowany Język Modelowania
Dział Wsparcia Technicznego MAM PROBLEM! ! II Linia Wsparcia JAKI PROBLEM ???
Service Oriented Architecture
Zaawansowane techniki obiektowe
Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 – 321 Bydgoszcz
Domain Specific Language Mac Michał Programujący architekt, konsultant.
Komputerowe wspomaganie projektowania
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Business Consulting Services © 2005 IBM Corporation Confidential.
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Komponentowe systemy rozproszone Wprowadzenie. Komponent... jest to podstawowa jednostka oprogramowania z kontraktowo (deklaratywnie) opisanymi interfejsami,
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Komponentowe i rozproszone Interludium czyli krótki wykład o rozpraszaniu.
Wdrożenie Foglight w Urzędzie Dozoru Technicznego
Cyfrowy Polsat SA jest największym operatorem telewizji satelitarnej w Europie środkowo-wschodniej i piątym pod względem liczby abonentów w całej Europie.
Zintegrowany monitoring infrastruktury IT w Budimex
Sygnity.City Otwarty Ekosystem Inteligentnych Miast.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
TWOJA CYFROWA PRZYSZŁOŚĆ. JUŻ DZISIAJ. Maciej Ziemiański CIO, Veolia Energia Polska © 2016 Software AG. All rights reserved. For internal use only.
Komponentowe i rozproszone (Web)Service Oriented Architecture.
TWOJA CYFROWA PRZYSZŁOŚĆ. JUŻ DZISIAJ. Marcin Parczewski © 2016 Software AG. All rights reserved. For internal use only.
Od (web)aplikacji biznesowych po (web)game dev Testowanie i spełnianie oczekiwań.
Wzorzec MVC na przykładzie CakePHP
Przygody z EventSourcing i CQRS
Realizacja aplikacji internetowych
Wykład 1 – część pierwsza
Zaawansowane techniki obiektowe
Konteneryzacja i DevOps
Zapis prezentacji:

Zaawansowane techniki obiektowe

Ewolucja obiektów czyli Programowanie Sterowane …Driven TDD BDD ATDD DDD

TDD Test Driven Developmet/Design Testy Testy przed kodem Red-Green-Refactor Test jednostkowy Czy jednostkowy oznacza jedna klase ? Jak bardzo jednostkowy musi byc test ?

BDD Behavior Driven D* Poprawnie robione TDD ? Piszemy testy czy może specyfikujemy zachowanie ? Wartość biznesowa co to znaczy użyteczny test? Test powinien wyrażać zachowanie co to znaczy zrozumiały test ? czy wystarczy zrozumiały tytuł?

BDD - kierunki Zachowania na poziomie kodu testy jednostkowe narzedzia np. MSPEC Zachowania na poziomie system testy end to end / akceptacyjne narzedzia np. cucumber/Specflow

ATDD Acceptance Test Driven D* Jak opisać i sprawdzić zachowanie systemu? Jak wyrazić testy w sposób zrozumiały dla biznesu? Duża i mała pętla: Test Akceptacyjny TDD/BDD aż zrealizujemy test akceptacyjny Problemy: Stan bazy, Interakcje z GUI

Cucomber – przykładowy sposób wyrażania wymagań Przykładowy scenariusz

Cucomber – podstawowe definicje

Cucomber – test nie przechodzi

Cucomber – troche wiecej kodu

Cucomber – i test przechodzi

Baza - trudności Stan bazy sie zmienia …. Niedotykalne/odtwarzane dane testowe Przeładowanie bazy przed każdym testem Przeładowanie bazy przed testami Testy z robackowaną transakcją Testy samo kompensujące “Inteligentne” testy dostosowujące się do stanu bazy

GUI - trudności Wrażliwość na zminy wyglądu, rodzaj przeglądarki itd Selenium + page objects A może troche "pooszukiwać" na poziomie API/pomiędzy.

Obszar pomiędzy czyli kompromis …czyli testy integracyjne UT POWINNY BYĆ tanie, masowe, szybkie

Rożek lodów Antywzorzec najpowszechniej-sze to, co drogie

Testy integracyjne … czy aby nie testy zintegrowane? Przy podejściach uSerwisowych niezwykle ważne jest odesparowanie serwisów w rune-time w developmencie w testowaniu Proby tesowania kilku skomplikowanych bytów razem prowadzą (nieuchronnie?) do problemów Do posłuchania: http://blog.thecodewhisperer.com/permalink/integrated-tests-are-a-scam (i inne J. B. Rainsberger)

Continuous development

Continuous development Na podst. WIKIPEDIA

Ciągła integracja vs. dostawa CI: Cykliczna budowa artefaktów + uruchomienie podstawowych testów rzadkie buildy = dużo zmian – kto winien problemów? testy mogą trwać b. długo długo -> podział na rózne sety podstawowe, rozszerzone, o różnym wpływie na build żeby uruchomić testy integracyjne/funkcjonalne trzeba wdrożyć … coś (komponent/bazę/dane) automatyzacja instalacji pozwala wdrażać (i testować) również w srodowiskach docelowych (UAT/Stage/Prod) DevOps Spotify releasy co 17s?

DevOps https://spotifylabscom.files.wordpress.com/2014/03/spotify-engineering-culture-part1.jpeg

Continuous delivery Wdrożenia – uzgodnienia z infrastructure team Konfiguracje – wersjonowanie, aplikowanie wewnątrz pakietów instalacyjnych ? hasła? uprawnienia? Wersjonowanie baz (search?) Infrastruktura provisioning maszyn, instalacja systemów, uaktualnienia i wersjownowanie Wirtualizacje, lekkie wirtualizacje

Narzędzia Team city Automatyzacja deplymentów: Chef, Puppet, PSh Runnery do testów Automatyzacja deplymentów: Chef, Puppet, PSh Zarzadzane konfiguracją: Configatron Bazy: Entity migration, np. Roundhouse Docker

Domain Driven Design Jak często implementowali Państwo FFT? Na czy polega problem z Sytemami Informatycznymi? Proste operacje zwielokrotnione 1000x synergia ciągłe zmiany

Komplikacja problemu Esencjonalna Przypadkowa wynika z natury problemu niemożliwa do uniknięcia Przypadkowa wynika z podejścia lub konkretnych rozwiązań może rosnąć (i zwykle rośnie) z czasem

Co to jest?

Co to jest?

Model User interface Infrastructure Application logic Domain logic wyraża reguły, procesu, obejmuje główną logikę, jest sercem system stanowi (poninien) największą wartość powstaje długo, wymaga pielęgnacji model to nie dane (scheme DB) ani zachowanie model obejmuje wiedzę wydestylowaną przez realizujących system (i powinien być czytelny!)

Model wyraża reguły, procesu, obejmuje główną logikę, jest sercem system stanowi (poninien) największą wartość powstaje długo, wymaga pielęgnacji model to nie dane (scheme DB) ani zachowanie model obejmuje wiedzę wydestylowaną przez realizujących system (i powinien być czytelny!)

Wszechobecny Język język ekspertów dziedzinowych vs IT różne obszary Ubiquitous language różne obszary np. co znaczy użytkownik, faktura ? ważny jest kontekst użycia bounded context

Wzorce wartości, encje, sewisy, agregaty Domain Layer (Business Logic) Aggregate Entity (Aggregate root) Value Object business methods Delegate Load Save Business Service <<interface>> Policy (Strategy Design Pattern) Application Layer (Application Services, Use Case Agents) PolicyImpl1 PolicyImpl2 Repository Factory Event Generate Create wartości, encje, sewisy, agregaty budowniczy, fabryka, repozytorium, polityka warstwy, zdarzenia

Więcej Eric Evans Domain-Driven Design: Tackling Complexity in the Heart of Software Vaughn Vernon Implementing Domain-Driven Design Slawomir Sobotka http://bottega.com.pl/pdf/materialy/sdj-ddd.pdf http://bottega.com.pl/pdf/materialy/ddd/ddd1.pdf model jest wszystkim czego potrzebujesz https://www.youtube.com/watch?v=iaLeKHbspLg A place for everything and everything in its place https://www.youtube.com/watch?v=jraV7xSTYVs

Więcej Eric Evans Domain-Driven Design: Tackling Complexity in the Heart of Software Vaughn Vernon Implementing Domain-Driven Design Slawomir Sobotka http://bottega.com.pl/pdf/materialy/sdj-ddd.pdf http://bottega.com.pl/pdf/materialy/ddd/ddd1.pdf model jest wszystkim czego potrzebujesz https://www.youtube.com/watch?v=iaLeKHbspLg A place for everything and everything in its place https://www.youtube.com/watch?v=jraV7xSTYVs