Receptury - niezbędnik projektanta i architekta

Podobne dokumenty
Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Domain Driven Design - projektowanie modeli złożonych domen (część

Wzorce projektowe i architektura dla platformy Java EE

Domain Driven Design - projektowanie modeli złożonych domen (część

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

Program szkolenia: Architektura aplikacji i systemów - Wzorce architektoniczne dla projektantów

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Implementacja Domain Driven Design - wzorce architektoniczne (część

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Program szkolenia: Wzorce projektowe i architektoniczne oraz efektywne techniki Object Oriented Design dla projektantów systemów

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Java Persistence API - zagadnienia zaawansowane

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Program szkolenia: Wzorce projektowe w C++

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Szkolenie wycofane z oferty

Receptury projektowe niezbędnik początkującego architekta

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Analiza i projektowanie aplikacji Java

Program szkolenia: REST i Microservices w PHP

Pod dwóch wprowadzających w koncepcję DDD częściach,

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Program szkolenia: Zaawansowane programowanie w C++

Techniki efektywnego testowania kodu dla programistów Java (Spock

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Domain Driven Design krok po kroku

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Program szkolenia: Symfony, nowoczesny framework PHP

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Scala - programowanie obiektowo-funkcyjne

Receptury projektowe niezbędnik początkującego architekta

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Programowanie Zespołowe

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Technologie obiektowe

Luki w bezpieczeństwie aplikacji istotnym zagrożeniem dla infrastruktury krytycznej

Domain Driven Design krok po kroku

Projektowanie oprogramowania

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Ewolucyjna architektura

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Metodyki zwinne wytwarzania oprogramowania

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

DDD : dla architektów oprogramowania / Vaughn Vernon. Gliwice, cop Spis treści

Program szkolenia: JavaScript Craftsmanship

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Wykład 1 Inżynieria Oprogramowania

Warstwa prezentacji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

SOA Web Services in Java

Wprowadzenie do systemów informacyjnych

Projektowanie Modeli Usług dla rozwiązań typu SOA

Programowanie w języku Java WYKŁAD

Techniki (automatyzacji) projektowania testów. Adam Roman WarszawQA, 24 II 2016

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

HP Service Anywhere Uproszczenie zarządzania usługami IT

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Wzorce projektowe i refaktoryzacja

Feature Driven Development

Projektowanie architektury systemu internetowego

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Enterprise Integration Patterns z wykorzystaniem Apache Camel

Programowanie Komponentowe WebAPI

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Program szkolenia: Continuous Integration i Git

Testowanie oprogramowania. Piotr Ciskowski

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Spis treúci. 1. Wprowadzenie... 13

Produkty i artefakty architektoniczne

Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013.

Wprowadzenie do programowania aplikacji mobilnych

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

Programowanie komponentowe 5

Inżynieria oprogramowania (Software Engineering)

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Architektura korporacyjna jako narzędzie koordynacji wdrażania przetwarzania w chmurze

Programowanie zorientowane obiektowo. Mateusz Kołecki

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Testowanie oprogramowania

Transkrypt:

Program szkolenia: Receptury - niezbędnik projektanta i architekta Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Receptury - niezbędnik projektanta i architekta Craft-Receptury Craftsmanship Programiści, projektanci i architekci 3 dni 50% wykłady / 50% warsztaty Program szkolenia został zaprojektowany z myślą o typowych problemach projektowych i architektonicznych, które pojawiają się w niemal każdym systemie oraz sprawdzonych receptach na ich rozwiązanie. Szkolenie prowadzone jest w podejściu zorientowanym na problem. Każdy moduł to opis problemu oraz alternatywnych sposobów jego rozwiązania wraz z omówieniem konsekwencji wynikających z danego podejścia. Podejścia i techniki przedstawione podczas szkolenia są nieodzownym składnikiem "skrzynki z narzędziami" każdego projektanta i architekta. Materiay wstpne Przed szkoleniem możesz zapoznać się z serią naszych artykułów: Receptury projektowe niezbędnik początkującego architekta. Zalety szkolenia: Typowe problemy i ich rozwiązania Wykorzystanie sprawdzonych technik i wzorców Realne przykłady Strona: 1/6

Program szkolenia: 1. Zarządzanie złożonością modeli biznesowych 1.1. Rozwarstwienie logiki w celu uporządkowania odpowiedzialności 1.1.1. Logika Aplikacji - model Use Case/User Story 1.1.2. Logika Domenowa - model reguł biznesowych 1.2. 4 poziomy modelu w celu zarządzania zmianą logiki domenowej 1.2.1. Decission Support - logika analityczna 1.2.2. Policy - dostrojenie modelu 1.2.3. Operations - model operacji 1.2.4. Capability - model potencjału 1.3. Podejście archetypów modeli biznesowych 1.3.1. Knowledge Level - modele ulegające zmianie 1.3.2. Operation Level - modele nieulegające zmianie 1.4. Podział kodu na 3 grupy - Open Close Principle 1.4.1. Logika Stała 1.4.1.1. Wydzielenie logiki, która podlega relatywnie niewielu zmianom 1.4.2. Rozbudowana 1.4.2.1. Polityki 1.4.2.2. Wzorzec Strategii 1.4.2.3. Podejście funkcyjne 1.4.3. Zmiana 1.4.3.1. Fabryki - hermetyzacja reguł wyboru polityki/strategii/funkcji 1.4.3.2. Parametryzacja przy pomocy kontenerów IoC 2. Architektury aplikacji otwarte na rozbudowę Strona: 2/6

2.1. Typowe problemy w kastomizowalnych systemach dostosowywanych per wdrożenie 2.1.1. Unikanie tworzenia branch w repozytorium kodu 2.1.2. Unikania wprowadzania logiki warunkowej 2.2. Alternatywa: podejście plugin-oriented 2.3. Wykorzystanie kontenerów IoC 2.3.1. Wstrzykiwanie zależności - pluginy typu "coś działa inaczej" 2.3.1.1. Wstrzykujemy nie tylko DAO 2.3.1.2. Zarządzenie odmiennością logiki 2.3.1.3. Wstrzykiwanie Strategy Design Pattern 2.3.2. Event Driven - pluginy typu "dodatkowa funkcjonalność" 2.3.2.1. Listenery jako pluginy 2.3.2.2. Listenery jako alternatywne klienty do API 2.4. Extension Object Pattern 3. Modularyzacja 3.1. Projektowanie API modułu 3.2. Hermetyzacja modułu w celu separacji zmian 3.3. Podejście Bounded Context 3.3.1. Granica modułu wyznaczana przez ograniczenia wiedzy 3.4. Model kanoniczny 3.5. Integracja modułów 3.5.1. Podejścia SOA 3.5.2. Podejście Event Driven 3.5.2.1. Listenery jako alternatywne klienty do API 3.5.3. Kiedy warto wprowadzić Data Transfer Object - a kiedy jest to zbędny narzut 3.6. Architektura Heksagonalna (Ports and Adapters) Strona: 3/6

4. DDD Lite - Building Blocks modelowanie złożonych domen 4.1. Techniki Domain Driven Design - Building Blocks 4.2. Agregaty 4.2.1. Modelowanie niezmienników 4.2.2. Modelowanie granicy Agregatu jako jednostki pracy 4.3. Encje 4.4. Value Objects 4.5. Serwisy Domenowe 4.6. Polityki 4.6.1. Wykorzystanie Dependency Injection 4.7. Specyfikacje 4.7.1. Modelowanie złożonych kryteriów 4.8. Fabryki 4.8.1. Modelowanie złożonego procesu tworzenia obiektów 4.8.2. Wartości początkowe, walidacja półproduktów, składanie obiektów, wstrzykiwanie zależności 4.9. Repozytoria 4.9.1. Abstrakcja źródła danych 5. Testability - projektowanie kodu otwartego na testowanie 5.1. Typowe błędy projektowe 5.1.1. Eksplozja kombinatoryczna przypadków wynikająca z braku rozwarstwienia logiki 5.1.2. Konieczność testowania przez UI wynikająca z nieprzestrzegania warstw 5.1.3. Konieczność testowania z bazą danych wynikająca z braku separcji odpowiedzialności 5.2. Techniki i taktyki 5.2.1. Unikanie pracy z serwerem aplikacyjnym i bazodanowych Strona: 4/6

5.2.2. Podejście funkcyjne - testowanie funkcji 5.2.2.1. Projektowanie Serwisów Domenowych 5.2.2.2. Projektowanie oparte o Strategy Design Pattern 5.2.3. Hermetyzacja zależności w Fabrykach 5.3. Modelowanie i testowanie niezmienników 5.4. Projektowanie klas testowych 5.4.1. Unikanie potrzeby tworzenia Mock/Stub/Fake 5.4.2. Wprowadzanie Object Mother 5.4.3. Wprowadzanie Assemblerów obiektów 5.4.4. Wprowadzenie własnych Assert Object 6. Modelowanie ról w systemie 6.1. Wady podejścia opartego o dziedziczenie 6.2. Role Object Pattern 6.2.1. Role zapewniające funkcjonalność 6.3. Party Archetype i Party Relationship Archetype 6.3.1. Model uczestników relacji 6.3.2. Integracja z Role Object Pattern 7. Konglomeraty wzorców - struktury rozwiązań typowych problemów 7.1. Fabryka Strategii - Separacja logiki stałej od zmiennej oraz zmiany od rozbudowy 7.1.1. Zapewnienie Open Close Principle 7.1.2. Fabryka Dekorowanych Strategii 7.1.3. Fabryka Strategii Szablonowych 7.1.4. Fabryka Strategii Łańuchowych 7.2. Command operujący na Micro Kernel - Separacja logiki API od aplikacji 7.2.1. Wsparcie dla operacji Undo Strona: 5/6

7.2.2. Wsparcie dla podejścia Aspect Oriented Programming 7.3. Visitor typów wyliczeniowych 7.3.1. Unikanie instrukcji switch 7.3.2. Wykrywanie nieobsłużonych wartości przez kompilator 7.3.3. Zapewnienie kohezji typów wyliczeniowych 8. Maszyny Stanów 8.1. Typowe błędy w projektowaniu maszyn stanów 8.1.1. Zbytnie uogólnienie 8.1.2. Rzadkie macierze przejść 8.2. Jak zaprojektować dobrą maszynę stanów 9. Walidacja obiektów - rozwiązanie łatwe w rozbudowie i testowaniu 9.1. Strategia Walidacji zwracająca listę błędów 9.2. Implementacja strategii oparta o łańcuch kryteriów 9.3. Parametryzowalne kryteria 9.4. Łatwe testowanie poszczególnych kryteriów 10. Złożone warunki logiczne w formie drzew decyzyjnych 10.1. Specification Design Pattern 10.2. Łatwe testowanie poszczególnych specyfikacji 10.3. Fabrykowanie drzew per wdrożenie/sesja/użytkownik Strona: 6/6