Zwiększamy efektywnośd zespołów projektowych

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

SZKOLENIE TWORZENIE SYSTEMÓW

Szkolenie wycofane z oferty

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

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

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

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Java Persistence API - zagadnienia zaawansowane

EJB 3.0 (Enterprise JavaBeans 3.0)

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Podstawy frameworka Spring

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

Wykład 1 Inżynieria Oprogramowania

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Programowanie MorphX Ax

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

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

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

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

Techniki efektywnego testowania kodu dla programistów Java (Spock

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

IT Camp Junior Java Developer. Cel kursu

Aplikacje Internetowe, Servlety, JSP i JDBC

Zaawansowane programowanie w języku C++

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

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

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

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Program szkolenia: Wzorce projektowe w C++

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Wprowadzenie do programowania aplikacji mobilnych

Szczegółowy opis przedmiotu zamówienia:

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

1 Wprowadzenie do J2EE

Program szkolenia: REST i Microservices w PHP

Studia podyplomowe. Programowanie na platformie Microsoft Visual Studio.NET

Web frameworks do budowy aplikacji zgodnych z J2EE

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Zagadnienia projektowania aplikacji J2EE

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

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

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

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

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

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

Podstawy modelowania programów Kod przedmiotu

Pytania z przedmiotów kierunkowych

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Program szkolenia: Symfony, nowoczesny framework PHP

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Wybrane działy Informatyki Stosowanej

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

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

Wzorce projektowe i architektura dla platformy Java EE

EXSO-CORE - specyfikacja

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

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

Programowanie.NET - kurs zaawansowany

Nowoczesne aplikacje internetowe oparte na Spring Framework, JSF, JPA i AJAX

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Programowanie komponentowe 5

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Programowanie obiektowe

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Część I Rozpoczęcie pracy z usługami Reporting Services

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

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

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Ekspert MS SQL Server Oferta nr 00/08

Spis treści. Wprowadzenie 15

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Analiza i projektowanie aplikacji Java

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Program szkolenia: Continuous Integration i Git

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Scala - programowanie obiektowo-funkcyjne

Transkrypt:

Zwiększamy efektywnośd zespołów projektowych Katalog szkoleo

Ścieżki rozwoju programisty Niezbędnik programisty Technologie G R U P Y S Z K O L E O Najlepsze strategie skutecznych programistów Perspektywa projektu

Niezbędnik programisty Technologie (Java) Projektowanie i modelowanie obiektowe Techniki pracy z kodem Wzorce projektowe i refaktoryzacja do wzorców Tworzenie i testowanie aplikacji z użyciem Test-Driven Development Modelowanie systemów informatycznych z użyciem UML Projektowanie architektury aplikacji biznesowych Tworzenie aplikacji w języku Java Tworzenia aplikacji desktopowych z użyciem biblioteki SWT i Eclipse RCP Tworzenie aplikacji internetowych Java EE z użyciem serwletów i JSP Tworzenie aplikacji z użyciem JSF Spring MVC i Spring WebFlow w tworzeniu aplikacji webowych Tworzenie aplikacji z użyciem GWT Trwałe przechowywanie danych biblioteki Hibernate Tworzenie aplikacji z użyciem EJB3 i JPA Trwałe przechowywanie danych z użyciem JPA Tworzenie aplikacji z użyciem Spring Framework Wprowadzenie do języka Scala Tworzenie aplikacji webowych z użyciem szkieletu Grails Warsztaty JSF/EJB/Struts2/Hibernate/Spring Framework Technologie (.NET) Wprowadzenie do języka C# i platformy.net Zaawansowane programowanie w.net z użyciem języka C# Tworzenie raportów na platformie.net SQL Server w praktyce programistycznej Najlepsze strategie skutecznych programistów Najlepsze strategie skutecznych programistów Skuteczna współpraca z Biznesem podczas zbierania i analizy wymagao Perspektywa projektu Continuous Integration - ciągła integracja w projekcie Przygotowanie zespołu do pracy w metodyce Scrum Pełnienie roli Scrum Master w zespole programistycznym Zarządzanie projektami informatycznymi Zarządzanie wymaganiami

Programowanie i modelowanie obiektowe [POB] PROFIL UCZESTNIKA Uczestnik zna konkretny język programowania na poziomie szkoleo JAVA lub NC#. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 50%, wykład 50%. Wielkośd grupy: do 10 osób. Języki: Java, C#, C++, inne według potrzeb. To szkolenie może byd łączone ze szkoleniami: JAVA, NC#. SZCZEGÓŁOWY PROGRAM Modelowanie świata rzeczywistego Wybrane elementy UML Podstawowe składniki obiektowości Najlepsze techniki programowania obiektowego Programowanie obiektowe w praktyce Programowanie proceduralne a obiektowe Dziedzina problemu i obiekty dziedziny Obiekty niedziedzinowe Diagram klas Modelowanie struktury dziedziny problemu Diagram sekwencji Modelowanie dynamiki dziedziny problemu Klasy i obiekty Enkapsulacja Klasy abstrakcyjne, dziedziczenie Interfejsy Polimorfizm Definiowanie i przestrzeganie odpowiedzialności Dzielenie interfejsów Tworzenie kodu otwartego na rozbudowę i zamkniętego na zmiany Odwracanie zależności Co oznacza programowanie poprzez interfejsy? Kompozycja a dziedziczenie Wyodrębnianie obiektów niedziedzinowych Programowanie współpracy pomiędzy obiektami Relacja całośd-częśd Obiekty pomocnicze typu Helper oraz Util Obsługa błędów za pomocą mechanizmu wyjątków Antywzorce programowania obiektowego Przegląd najczęściej używanych bibliotek narzędziowych

Techniki pracy z kodem [NSKOD] PROFIL UCZESTNIKA Uczestnik zna konkretny język programowania na poziomie szkoleo JAVA lub NC#. Uczestnik zna programowanie obiektowe na poziomie szkolenia POB. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia -70 %, wykład -30 %. Wielkośd grupy: do 10 osób. Język: Java, C#, C++, inne według potrzeb. SZCZEGÓŁOWY PROGRAM Software Cratsmanship Programowanie obiektowe Klasy i ich stan Idea Software Craftsmanship Koszt złej jakosci kodu Efektywnośd pracy z kodem Kiedy kod jest naprawdę obiektowy Zasada SOLID Kompozycja a dziedziczenie Odpowiedzialnośd klas, metod, pakietów, modułów Czego można się nauczyd z wzorców projektowych Inversion of Control oraz Dependency Injection Modele architektoniczne Architektury wielowarstwowe Poprawnie zdefiniowana klasa Hermetyzacja i izolowanie zmian Nazywanie klas i metod Kiedy używad interfejsów i klas abstrakcyjnych Wzorce implementacyjne: Value Object, Implementator, Contitional, Delegation, Pluggable Selector, Library Class Przechowywanie stanu Wzorce implementacyjne: Direct Access, Indirect Access, Collecting Parameter, Optional Parameter, Eager Initialization Antysymetria danych i obiektów Prawo Demeter Data Transfer Object

Czytelnośd kodu Obsługa sytuacji wyjątkowych Wybrane zagadnienia testowania jednostkowego Refaktoryzacja Reguły tworzenia czytelnych nazw Nazwy a dziedzina problemu Nazwy a kontekst Małe funkcje Jeden poziom abstrakcji Argumenty funkcji i zwracany typ a nazwa funkcji Efekty uboczne Zapytania i polecenia Don t Repeat Yourself Czy komentarze są potrzebne? Zen tworzenia komentarzy Komentarze a refaktoryzacja Wyjątki a wyniki zwracane Kontrolowane czy niekontrolowane wyjątki? Tworzenie hierarchii wyjątków Obsługa referencji null Dostarczanie kontekstu Praktyki tworzenia konstrukcji try-catch-finally Test-Driven Development - rewolucja w programowaniu W TDD nie chodzi o testowanie Red-green-refactor czyli TDD w 15 minut Zasady tworzenia testów jednostkowych Jak utrzymywad testy? Idea refaktoryzacji Cztery podstawowe techniki refaktoryzacji Techinka dekompozycji algorytmu Małe kroki Kiedy refaktoryzacja jest opłacalna? Refaktoryzacja w projektach odziedziczonych

Wzorce projektowe i refaktoryzacja do wzorców *WP+ PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. Uczestnik za zagadnienia programowania obiektowego na poziomie szkolenia POB. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - %, wykład %. Wielkośd grupy: ok. 10 osób. Język: Java, C#, C++, inne na życzenie. SZCZEGÓŁOWY PROGRAM Wprowadzenie do wzorców projektowych Jakośd kodu źródłowego Refaktoryzacja Pojęcie wzorca projektowego Historia rozwoju wzorców projektowych Klasyfikacja wzorców projektowych Wyznaczniki jakości kodu źródłowego Code smells Antywzorce programowania obiektowego Kod otwarty na rozszerzanie, kod zamknięty na zmiany Praktyki poprawiające jakośd kodu źródłowego Silne zależności w kodzie źródłowym Techniki osłabiania zależności Programowanie poprzez interfejsy o Definiowanie interfejsów o Dzielenie interfejsów o Rozszerzanie interfejsów o Wersjonowanie interfejsów o Interfejs retrospekcyjny Kompozycja a dziedziczenie Wstrzykiwanie zależności Dług techniczny Naturalny porządek refaktoryzacji Komponowanie metod: Extract Method, Inline Method, Inline Temp, Replace Temp with Query, Introduce, Explaning Variable, Split Temporary Variable, Extract Method with Method Object, Substitute Algorithm Przenoszenie kodu: Move Method, Move Field, Extract

Wzorce GoF Język wzorców architekturze aplikacji Class, Inline Class, Hide Delegate, Remove Middle Man, Introduce Foreign Method, Introduce Local Extension Upraszczanie wyrażeo warunkowych: Decompose Conditional, Consolidate Conditional Expression, Consolidate Duplicated Conditional Fragments, Remove Control Flag, Replace Nested Conditional with Guard Clauses, Replace Conditional with Polymorphism, Introduce Null Object, Introduce Assertion Wzorce kreacyjne: Simple Factory, Factory Method, Builder, Abstract Factory, Prototype Wzorce behawioralne: Command, Strategy, Observer, Chain of Responsibility, Template Method, Iterator, Mediator, Visitor, State, Memento Wzorce strukturalne: Adapter, Decorator, Facade, Proxy, Bridge, Composite, Flyweight Współpraca pomiędzy wzorcami Strategie implementacji wzorców Różnice pomiędzy podobnymi wzorcami Model dziedziny Warstwy w aplikacji, różne modele warstwowe Kontenery aplikacji Wzorce dostępu danych: Table Data Gateway, Object- Relational Mapping, Repository Wzorce warstwy prezentacji: Model View Controller, Model View Presenter Wzorce dziedziny problemu: Domain Model, Exposed Domain Model Antywzorzec Anemic Domain Model Wzorce modelu zdarzeniowego: Domain Event, Agreement Dispatcher Wzorce stanu tymczasowego: Audit Log, Temporal Object, Snapshot

Tworzenie i testowanie aplikacji z użyciem Test-Driven Development [TDD] PROFIL UCZESTNIKA Uczestnik zna konkretny język programowania na poziomie szkoleo JAVA lub NC#. Uczestnik zna programowanie obiektowe na poziomie szkolenia POB. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. Języki programowania: Java, C#, C++, inne według potrzeb. SZCZEGÓŁOWY PROGRAM JAVA/C# Wprowadzenie do TDD xunit jako narzędzie testowania Wzorce testowania xunit Cykl programowania Cykl TDD red-green-refactor Programowanie przyrostowe Zasady tworzenia testów jednostkowych Przykład pracy z użyciem TDD Tworzenie testów jednostkowych z użyciem xunit Wybrane atrybuty konfiguracji xunit @Test [Test] @Before [SetUp] @After [TearDown] @Expected [ExpectedException] @Ignore [Ignore] Wybrane asercje xunit Assert.that Testowanie pozytywne Testowanie negatywne Testowanie wyjątków Wzorce TDD Co testowad Testowanie stanu Testowanie zachowania Asercja stanu koocowego Asercja pomocnicza Asercja delta Asercja własna Asercja interakcji

Zasady TDD Refaktoring w kontekście TDD Testowalny kod Mockito/Moq jako narzędzie do tworzenia mocków Testowanie end-to-end Behaviour-Driven Development Testowanie integracyjne Testowanie z udziałem komponentów zewnętrznych Warsztat praktyczny Metoda fabryki Klasy pomocnicze Matka obiektów Testy parametryzowane Autopodstawianie Uprzywilejowany dostęp Dodatkowy konstruktor Podklasa na potrzeby testu Strategie testowania o Ogół - szczegół o Znane - nieznane o Ścieżka pozytywna negatywna Strategie implementacji o Faking it o Traingulation o Obvious implementation Pojęcia TDD o Fixture o Test doubles (Stubs/Fakes/Mocks) o Testowanie stanu i interakcji Refaktoryzacje przydatne w TDD Elementy refaktoryzacji do wzorców projektowych Paradygmaty testowalnego kodu Refaktoryzacja testów jednostkowych Usuwanie redundancji w testach Kompozycja i dziedziczenie a TDD Elementy statyczne i singletony Izolowanie i wstrzykiwanie zależności Architektura warstwowa Cykl życia mocka w Mockito/Moq Testowanie zachowania Stubbing Weryfikacja ilości wywołao Testowanie akceptacyjne Testowanie end-to-end Jakośd zewnętrzna i wewnętrzna Dobre praktyki testowania end-to-end Wprowadzenie do BDD Testowanie zachowania BDD a User Stories Specyfikacja poprzez przykłady Testowanie dostępu do danych Narzędzie xdbunit Testowanie transakcji Strategie testowania z udziałem komponentów zewnętrznych Warstwa adapterów Inkrementacyjny rozwój przykładowego systemu z użyciem TDD

SZCZEGÓŁOWY PROGRAM C++ Wprowadzenie do TDD CPPUNIT jako narzędzie testowania Wzorce testowania xunit Praktyki TDD Cykl programowania Cykl TDD red-green-refactor Programowanie przyrostowe Zasady tworzenia testów jednostkowych Przykład pracy z użyciem TDD Tworzenie testów jednostkowych z użyciem CPPUNIT Wybrane atrybuty konfiguracji CPPUNIT CPPUNIT_TEST_SUITE CPPUNIT_TEST Metoda setup() Metoda teardown() CPPUNIT_TEST_EXCEPTION CPPUNIT_TEST_FAIL Wybrane asercje CPPUNIT CPPUNIT_ASSERT Testowanie pozytywne Testowanie negatywne Testowanie wyjątków Wzorce TDD Co testowad Testowanie stanu Testowanie zachowania Asercja stanu koocowego Asercja pomocnicza Asercja delta Asercja własna Asercja interakcji Metoda fabryki Klasy pomocnicze Matka obiektów Testy parametryzowane Autopodstawianie Uprzywilejowany dostęp Dodatkowy konstruktor Podklasa na potrzeby testu Strategie testowania o Ogół - szczegół o Znane - nieznane o Ścieżka pozytywna negatywna Strategie implementacji o Faking it o Traingulation o Obvious implementation Pojęcia TDD

Refaktoring w kontekście TDD Testowalny kod gmock jako narzędzie do tworzenia mocków Testowanie end-to-end Behaviour-Driven Development Testowanie z udziałem komponentów zewnętrznych Warsztat praktyczny o o o Fixture Test doubles (Stubs/Fakes/Mocks) Testowanie stanu i interakcji Refaktoryzacje przydatne w TDD Elementy refaktoryzacji do wzorców projektowych Paradygmaty testowalnego kodu Refaktoryzacja testów jednostkowych Usuwanie redundancji w testach Kompozycja i dziedziczenie a TDD Elementy statyczne i singletony Izolowanie i wstrzykiwanie zależności Architektura warstwowa Cykl życia mocka w gmock Testowanie zachowania Stubbing Weryfikacja ilości wywołao Testowanie akceptacyjne Testowanie end-to-end Jakośd zewnętrzna i wewnętrzna Dobre praktyki testowania end-to-end Wprowadzenie do BDD Testowanie zachowania BDD a User Stories Specyfikacja poprzez przykłady Strategie testowania z udziałem komponentów zewnętrznych Warstwa adapterów Inkrementacyjny rozwój przykładowego systemu z użyciem TDD

Modelowanie systemów informatycznych z użyciem UML [UML] PROFIL UCZESTNIKA Uczestnik posiada pewne doświadczenie w programowaniu systemów informatycznych. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 50%, wykład 50%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Język modelowania UML w analizie Struktura systemu Dynamika systemu Pragmatyczne podejście do UML Czym jest UML? Główne składniki Modele a diagramy Narzędzia do UML Diagramy UML Modelowanie w projektach IT Analiza z wykorzystanie UML Diagram przypadków użycia Diagram aktywności Biznesowy diagram klas Modele techniczne Diagram komunikacji Stereotypy analityczne Diagram komponentów Diagram klas Diagram klas a kod źródłowy Diagram Struktur złożonych (Composite Structure Diagram) Diagram sekwencji Diagram komunikacji Diagram czasowy (Timing) Diagram przeglądu interakcji (Intraction Overview) Diagram aktywności Diagram stanów Ile UML jest potrzebne? Dokumentacja jako uzupełnienie komunikacji międzyludzkiej Użytecznośd diagramów

Projektowanie architektury aplikacji biznesowych [ARCH] PROFIL UCZESTNIKA Uczestnik zna wzorce projektowe na poziomie szkolenia WP. Uczestnik posiada co najmniej dwuletnie doświadczenie w programowaniu systemów informatycznych. PARAMETRY SZKOLENIA Czas trwania: 2 x 8h. Forma zajęd: Dwiczenia - 30%, wykład 70%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Strukturyzowanie kodu Dostęp do danych Zarządzanie zasobami i wydajnośd Orientacja na użytkownika Domain Model Domain Object Architektura warstwowa Architektura Mikrokrernel Architektura Shared Repository Architektura Blackboard Architektura Plug-In Domeny obiektowe i nieobiektowe Data Access Layer Table Data Gateway, Data Access Object Active Record Repository Object/Relational Mapping [opcja] JPA użyteczne wskazówki *opcja+ Deklaratywna obsługa transakcji Lookup Remote Proxy, Virtual Proxy Task Coordinator Resource Pool, Resource Cache Flyweight, Transfer Object Logika po stronie aplikacji czy bazy danych? Model View Controller, MVC a MVP Presentation Abstraction Control Data Context Interaction

Rodzaj systemu a architektura Proces tworzenia architektury Dokumentowanie architektury Aplikacje webowe Aplikacje desktopowe Aplikacje embedded entertiment (mobilne) Aplikacje embedded przemysłowe Języki programowania dedykowane do konkretnej architektury Domain Sepcific Languages w architekturze Modelowanie dziedziny problemu Kaskadowy proces projektowania architektury Zwinne podejście do tworzenia architektury Domain Driven Desing Prototypy Proof of Concept Nieformalne diagramy Diagram komponentów Diagram wdrożenia Diagram klas Konceptualny i implementacyjny model systemu Diagram sekwencji Elementy objaśniające i dokumentujące Kiedy i jak używad modeli i diagramów? [opcja] Przegląd technologii Java EE -

Tworzenie aplikacji w języku Java [JAVA] PROFIL UCZESTNIKA Uczestnik posiada umiejętnośd programowania w dowolnym języku. PARAMETRY SZKOLENIA Czas trwania: 5 x 8h Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie do języka Java Kolekcje obiektów Typy generyczne Mechanizm obsługi wyjątków Operacja wejścia/wyjścia Trwałe przechowywanie danych Wprowadzenie do platformy Java: platforma Java, maszyna wirtualna, kompilator, dokumentacja Javadoc Składnia języka Java: typy danych, budowa klasy pola, metody, instrukcje sterujące, zmienne obiektowe, operatory, tablice, zasady tworzenia identyfikatorów Java i UML krótkie wprowadzenie do UML, odzwierciedlenie klas Java na diagramie klas UML Tablice obiektów Listy, zbiory, mapy, kolejki Iterowanie po kolekcjach Metody generyczne Interfejsy i klasy generyczne Konsekwencje generyczności Najczęstsze zastosowania typów generycznych Wyjątki sprawdzalne Wyjątki niesprawdzalne Przechwytywanie i obsługa wyjątków Posługiwanie się własnymi wyjątkami Strumienie wejściowe i wyjściowe Reader/Writer Reprezentowanie zasoby poprzez klasę File Praca z plikami tekstowymi i binarnymi Praca z konsolą, klasa Scanner Serializacja obiektów Współpraca z relacyjnymi bazami danych - wprowadzenie do JDBC, uzyskanie połączenia, klasy typu Connection, Statement, PreparedStatement, ResultSet, wzorzec DAO

Interfejs użytkownika Obsługa wielowątkowości Przydatne biblioteki Tekstowy interfejs użytkownika strumienie standardowego wejścia i standardowego wyjścia, metoda printf, klasa DateFormat, SimpleDateFormatter, NumberFormat Biblioteka Swing wprowadzenie do Swing, model komponentowy, klasa JFrame, budowanie złożonych interfejsów z użyciem klas typu LayoutManager, komponenty widoku: pola tekstowe, listy, pola wyboru, panele i inne, model zdarzeniowy w Swing klasy typu Listener Aplikacja otwarta na szybką zmianę interfejsu użytkownika sposób wykorzystania architektury trójwarstwowej i wzorca MVC do tworzenia skalowalnych i łatwych w utrzymaniu klas interfejsu użytkownika Obsługa wątków w języku Java Synchronizowanie dostępu do zasobów Klasy biblioteczne wspomagające obsługę wielowątkowości Biblioteki narzędziowe apache-commons

Tworzenia aplikacji desktopowych z użyciem biblioteki SWT i Eclipse RCP [JSWT] PROFIL UCZESTNIKA Uczestnik zna język Java poziomie szkolenia JAVA. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Biblioteka SWT i WindowBuilderPro Komponenty i zdarzenia Zarządcy rozkładu Przeglądarki JFace Okna dialogowe, kreatory, menu, kolory, czcionki SWT jako alternatywa dla Swing i AWT Założenia i konsekwencje architektury SWT JFace rozszerzenia dla SWT Narzędzie WindowBuilderPro Komponenty graficzne Hierarchia komponentów Style komponentów Kontenery Rozmieszczanie komponentów Mechanizm obsługi zdarzeo Rejestrowanie obiektu nasłuchującego Problemy z bezwzględnym rozmieszczaniem komponentów FillLayout RowLayout GridLayout, GridData Wsparcie dla zarządców rozkładu w WindowBuilderPro Kontener Composite FormLayout, FormData, FormAttachement StackLayout Tabele i TableLayout Viewer Framework Przeglądarki: ListViewer, ComboViewer, TableViewer, TreeViewer Okna dialogowe SWT i JFace MessageBox, DirectoryDialog, FileDialog, MessageDialog, InputDialog

Bindowanie w JFace Wielowątkowośd w JFace Tworzenie własnych komponentów Pozostałe elementy SWT i JFace Własne okna dialogowe Wsparcie JFace dla kreatorów; interfejsy IWizard, IWizardPage Komponenty: Menu, MenuItem Style menu Menu wielopoziomowe Akcje i skróty dla pozycji menu Menu kontekstowe Klasy: Image, Font,Color Przyciski z ikonami Wycieki pamięci związane z zasobami graficznymi Strategie zwalniania zasobów Narzędzie Sleak Klasa RGB Podstawowe obiekty JFace Data Binding Bindowanie klasy Bindowanie kolekcji Konwersja danych Walidacja danych, własne walidatory Wsparcie WindowBuilderPro dla bindowania Uruchamianie zadao w wątku UI Komponent ProgressBar Asynchroniczne uruchamianie zadao Dziedziczenie po elementach biblioteki SWT Dostosowywanie właściwości własnych komponentów Zwalnianie zasobów we własnych komponentach Zakładki SashForm ExpandBar, ExpandItem ToolBar, ToolItem

Tworzenie aplikacji internetowych Java EE z użyciem serwletów i JSP [JWEB] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Serwlety JSP Wprowadzenie do Java EE Architektura Java EE Zasada działania aplikacji internetowych Cienki klient Przegląd HTTP i HTML Podstawy tworzenia serwletów GenericServlet, ServletRequest, ServletResponse HttpServletRequest, HttpServletResponse, HttpServlet Formularze HTML Model żądanie-odpowiedź Nagłówki, metody GET i POST Cykl życia serwletu o init() o service() o destroy() Przetwarzanie parametrów RequestDispatcher ServletContext i atrybuty Obsługa błędów Architektura JSP Znaczniki i wyrażenia JSP Cykl życia JSP MVC w aplikacjach internetowych Model 1 i Model 2 Zasięg żądania, aplikacji, sesji i strony Znaczniki <jsp:usebean>, <jsp:getproperty>, <jsp:setproperty>, <jsp:include>, <jsp:forward> Tworzenie własnych znaczników

Zaawansowane elementy serwletów i JSP HTTP jako protokół bezstanowy Pola ukryte w formularzach Ciasteczka (cookies) Zarządzanie sesją, korzystanie z HttpSession Używanie sesji w komunikacji między serwletami i JSP Obsługa wyjątków na stronach JSP Dyrektywy page, include, deklaracje importu Zagadnienia wielowątkowości w środowisku serwletów Biblioteka JSTL o Wyrażenia o Typy o Operatory o Obiekty niejawne Filtry i ich zastosowanie Przykłady szkieletów aplikacji opartych o serwlety i JSP

Tworzenie aplikacji z użyciem JSF [JSF] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. Uczestnik zna zagadnienia tworzenia aplikacji webowych na poziomie szkolenia JWEB. PARAMETRY SZKOLENIA Czas trwania: 2 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wstęp do Java Server Faces Przepływ sterowania i cykl przetwarzania żądania Logika interfejsu użytkownika Komponenty wizualne Konwersja typów i walidacja danych, obsługa błędów Narzędzia pomocnicze i integracja z innymi technologiami Aplikacje webowe w technologii JEE Wzorzec MVC Wzorzec Service to Worker i szkielety aplikacji Założenia Java Server Faces Fazy przetwarzania żądania Klasy FacesServlet i FacesContext Reguły nawigacji, outcomes Konfigurowanie przepływu sterowania Managed Beans, Backing Beans, zakresy beanów Expression Language Model zdarzeniowy Obsługa zdarzeo Biblioteki znaczników Współpraca z Backing Beans Tabele danych Wbudowana konwersja typów Własne konwertery Walidacja po stronie użytkownika Walidacja po stronie serwera Wyświetlanie komunikatów błędów Własne walida tory Współpraca z EJB Współpraca ze Spring Framework Współpraca z JPA

Spring MVC i Spring WebFlow w tworzeniu aplikacji webowych [JWF] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. Uczestnik zna zagadnienia tworzenia aplikacji webowych na poziomie szkolenia JWEB. Uczestnik zna bibliotekę Spring Framework na poziomie szkolenia JSPR. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Spring MVC ogólna charakterystyka Podstawy Spring MVC Zaawansowane możliwości Spring MVC Spring Web Flow Podstawowe aspekty Spring Web Flow Zaawansowane możliwości SWF Kilka zdao na temat Springa Po co nam n-ty framework webowy? Architektura i rodzaje frameworków webowych Zalety i wady różnych podejśd w konkretnych implementacji Budowa aplikacji Spring MVC Obsługa żądao Obsługa formularzy Walidacja danych Obsługa wyjątków Lokalizacja aplikacji Budowanie widoków w oparciu o szablony Generowanie odpowiedzi innej niż HTML użycie AJAX w Spring MVC Walidacja danych mechanizmy Spring Walidacja danych JSR 303 Testowanie aplikacji opartej o Spring MVC Podstawowe pojęcia Możliwośc Springi Web Flow Definicja przepływu Zmienne i ich zasięgi Rodzaje stanów Stany decyzyjne Przebiegi zagnieżdżone

Zabezpieczenie aplikacji opartej o Spring MVC oraz Spring Web Flow Konfiguracja Spring Security Dostawcy uwierzytelniania Zabezpieczanie zasobów aplikacji webowej Zabezpieczanie na poziomie metod Zabezpieczenia na poziomie stron JSP

Tworzenie aplikacji z użyciem GWT [JGWT] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. Uczestnik zna zagadnienia tworzenia aplikacji webowych na poziomie szkolenia JWEB. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Tworzenie warstwy interfejsu w GWT Ext GWT Architektura Java EE Zasada działania aplikacji internetowych Cienki klient Przegląd HTTP i HTML Podstawy tworzenia serwletów Programowanie komponentowo-zdarzeniowego Komponenety GWT o przyciski o hiperlinki GWT o komponenty tekstowe o komponenty wyboru o komponenty list o zachowanie komponentów o konfiguracja komponentów Organizacja interfejsu w GWT o zarządzanie rozkładem elementów o panele w GWT o FlowingPanel o DockingPanel o FlexTable o Grid o PopupPanel o okna dialogowe Zdarzenia i słuchacze Formatowanie ciągów znakowych Tworzenie własnych komponentów Czym się wyróżnia Ext GWT

Warstwa logiki i integracja z warstwą interfejsu Internacjonalizacja Bezpieczeostwo aplikacji Testowanie i optymalizacja działania aplikacji Zdarzenia Ext GWT Komponenty Ext GWT Model oraz BeanModel Obiektu ładujące Obiekty proxy i reader Architektura MVC kontrolery i widoki Zasada komunikacji warstwy interfejsu z warstwą logiki Podstawy XML-RPC / GWT-RPC Tworzenie serwisów przy pomocy biblioteki GWT Wywoływanie serwisów Obsługa sytuacji wyjątkowych Tworzenie serwisów we frameworkach JEE Wprowadzenie i18n w aplikacji internetowej Dynamiczne i statyczne podstawianie ciągów znakowych Określanie bieżącego locale Uwierzytelnianie użytkownika Kontrola dostępu do zasobów Obsługa sesji Zapobieganie atakom typu XSS Testowanie warstwy klienckiej aplikacji Dzielenie aplikacji na fragmenty pobierane asynchronicznie Optymalizacja wielkości aplikacji oraz czasu kompilacji Optymalizacja wywołao RPC Wykrywanie wąskich gardeł aplikacji w warstwie klienckiej (analiza kodu Javascript) Testowanie warstwy serwerowej aplikacji

Trwałe przechowywanie danych biblioteki Hibernate [JHB] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40 %. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Hibernate w praktyce Zapytania Relacje i dziedziczenie Koncepcja mapowania relacyjno-obiektowego Przegląd biblioteki Hibernate Architektura Mapowania oparte o POJO Podstawy konfiguracji o Plik hibernate.cfg.xml o Konfiguracja SessionFactory o Parametry konfiguracji Interfejs Session i jego zadania Operacje CRUD Mapowanie klas klasy encji Mapowania XML i adnotacje Generatory identyfikatorów Typy wbudowane Hibernate Cykl życia obiektu trwałego Konfigurowanie dziennika zdarzeo (log4j) Wprowadzenie do Hibernate Query Language Interfejs Query Tworzenie i używanie zapytao Zapytania nazwane, projekcje i agregaty Zapytania poprzez kryteria (Criteria API) Przegląd relacji Mapowanie kolekcji wartości Mapowanie: 1:N, N:1, 1:1, N:N Mapowanie relacji Relacje jedno- i dwukierunkowe Inwersja w relacji Kaskadowośd Wczesne i opóźnione ładowanie Mapowanie dziedziczenia

Hibernate a JPA Zagadnienia zaawansowane o o o Strategia tabela na klasę Strategia tabela na podklasę Strategia tabela na klasę konkretną Przegląd Java Persistence API Powiązanie między Hibernate a JPA Adnotacje JPA Przegląd transakcji Hibernate Transaction API Blokowanie optymistyczne i wersjonowanie Implementacja metod hash() i equals() Cache Wydajnośd

Tworzenie aplikacji z użyciem EJB3 i JPA [JEJBJPA] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Komponenty sesyjne Komponenty sterowane komunikatami (opcja) EJB w architekturze Java EE Przegląd EJB o Komponenty sesyjne o Obiekty encyjne o Komponenty sterowane zdarzeniami Przegląd o Usługi kontenera o Komponenty stanowe i bezstanowe o Definiowanie komponentu sesyjnego adnotacje EJB o Implementacja, interfejsy zdalny i lokalny Model wdrożeniowy: ejb-jar, EAR, kontener JNDI o Koncept JNDI o InitialContext o JNDI w praktyce Tworzenie klienta EJB3 Wstrzykiwanie zależności w EJB3 Korzystanie z zasobów poprzez kontener Cykl życia komponentu sesyjnego oraz interceptory Stanowe komponenty sesyjne tworzenie, cykl życia, aktywacja i pasywacja Usługa mechanizmu Timer Przegląd systemów opartych o komunikaty o Komunikacja poprzez kolejki i kanały tematyczne Przegląd JMS API o ConnectionFactory o Przesyłanie komunikatów JMS

Transakcje i bezpieczeostwo Współpraca z relacyjnymi bazami danych o Klient JMS Komponenty MDB o Założenia o Adnotacja @MessageDriven o Przykład komponentu MDB o Konfiguracja activeconfig Transakcje o Przegląd koncepcji związanych z systemami transakcyjnymi o Deklaratywne zarządzanie transakcjami o Atrybuty transakcji o Zasięg transakcji Przegląd zagadnieo bezpieczeostwa w systemach rozproszonych o Adnotacje @RolesAllowed, @PermitAll o Bezpieczeostwo obsługiwane w sposób programistyczny Wprowadzenie do JDBC Uzyskanie połączenia Klasy o Connection o Statement o PreparedStatement o ResultSet Wzorzec DAO Wprowadzenie do JPA JPA w praktyce Zapytania Relacje i dziedziczenie Koncepcja mapowania relacyjno-obiektowego Podstawy mapowania Przegląd JPA Architektura warstw dostępu do danych Mapowania oparte o POJO Podstawy konfiguracji EntityManager o Rola EntityManager w JPA o Cykl życia o Najważniejsze składniki API Jednostki trwałości (PersistenceUnit i ich konfiguracja Operacje CRUD Mapowanie klas klasy encji Mapowania Generatory identyfikatorów Typy wbudowane Cykl życia obiektu trwałego Wprowadzenie do Java Persistence Query Language Interfejs Query Tworzenie i używanie zapytao Zapytania nazwane, projekcje i agregaty Zapytania poprzez kryteria (Criteria API) Przegląd relacji

Optymalizacja Zagadnienia zaawansowane Mapowanie kolekcji wartości Mapowanie: 1:N, N:1, 1:1, N:N Mapowanie relacji Relacje jedno- i dwukierunkowe Inwersja w relacji Kaskadowośd Wczesne i opóźnione ładowanie Mapowanie dziedziczenia o Strategia tabela na klasę o Strategia tabela na podklasę o Strategia tabela na klasę konkretną Techniki optymalnego mapowania Cache (zapytao, encji) Pułapki lazy loadingu (n+1 select problem) Unikanie pobierania nadmiernych danych - rozwiązania Blokowanie optymistyczne i wersjonowanie Cache Wydajnośd Zagadnienia projektowe

Trwałe przechowywanie danych z użyciem JPA *JPA+ PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. PARAMETRY SZKOLENIA Czas trwania: 2 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Wprowadzenie do JPA JPA w praktyce Zapytania Wprowadzenie do JDBC Uzyskanie połączenia Klasy o Connection o Statement o PreparedStatement o ResultSet Wzorzec DAO Koncepcja mapowania relacyjno-obiektowego Podstawy mapowania Przegląd JPA Architektura warstw dostępu do danych Mapowania oparte o POJO Podstawy konfiguracji EntityManager o Rola EntityManager w JPA o Cykl życia o Najważniejsze składniki API Jednostki trwałości (PersistenceUnit i ich konfiguracja Operacje CRUD Mapowanie klas klasy encji Mapowania Generatory identyfikatorów Typy wbudowane Cykl życia obiektu trwałego Wprowadzenie do Java Persistence Query Language Interfejs Query Tworzenie i używanie zapytao Zapytania nazwane, projekcje i agregaty

Zapytania poprzez kryteria (Criteria API) Relacje i dziedziczenie Optymalizacja Zagadnienia zaawansowane Przegląd relacji Mapowanie kolekcji wartości Mapowanie: 1:N, N:1, 1:1, N:N Mapowanie relacji Relacje jedno- i dwukierunkowe Inwersja w relacji Kaskadowośd Wczesne i opóźnione ładowanie Mapowanie dziedziczenia o Strategia tabela na klasę o Strategia tabela na podklasę o Strategia tabela na klasę konkretną Techniki optymalnego mapowania Cache (zapytao, encji) Pułapki lazy loadingu (n+1 select problem) Unikanie pobierania nadmiernych danych - rozwiązania Transakcje Blokowanie optymistyczne i wersjonowanie Cache Wydajnośd Użyteczne praktyki

Tworzenie aplikacji z użyciem Spring Framework *JSPR+ PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Spring Framework Core Wstrzykiwanie zależności (Dependency Injection) Walidacja Spring Programowanie aspektowe Zalety i wady platformy Java EE Zadania postawione przed Spring Framework o Kontrola tworzenia obiektów o Tworzenie aplikacji internetowych o Wsparcie dla trwałości danych o Programowanie aspektowe o Integracja z innymi bibliotekami Programowanie komponentowe oparte o interfejsy JavaBeans i POJO nowe spojrzenie Spring jako fabryka Inversion of control Konfiguracja XML Konfiguracja z użyciem adnotacji Programistyczne korzystanie z fabryki Singletony i prototypy Inicjalizacja stanu początkowego obiektu Koncepcja wstrzykiwania zależności Składanie obiektów Automatyczna konfiguracja (autowiring) Aliasy Kolejnośd tworzenia obiektów Cykl życia obiektów Zdarzenia kontenera Walidatory Obiekty błędów ValidationUtils; komunikaty błędów i ich lokalizacja Koncepcja programowania aspektowego i zastosowanie Adnotacja @AspectJ Deklarowanie aspektów

Trwałośd danych Deklarowanie punktów przecięcia o Wyrażenia AspectJ Deklarowanie advice o przed (before) o po (after) o po wyrzuceniu wyjątku (after throwing) o przed i po (around) Wprowadzanie funkcjonalności Wzorzec DAO Hierarchia DaoSupport Hierarchia DataAccessHierarchy JDBC DAO, JDBC Template, RowMapper Hibernate DAO Transakcje

Wprowadzenie do języka Scala [JSCALA] PROFIL UCZESTNIKA Uczestnik posiada umiejętnośd programowania w dowolnym języku. PARAMETRY SZKOLENIA Czas trwania: 2 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie do języka Scala Podstawowe elementy języka Zaawansowane elementy języka Scala Cele postawione przed językiem Scala Narzędzia do pracy w języku Scala Przegląd języka: o zmienne, o funkcje, o pętle, o instrukcje warunkowe, o iterowanie, o tablice, o listy, o krotki, o zbiory, o mapy. Klasy i obiekty Typy i operacje Obiekty funkcyjne Instrukcje sterujące Funkcje i domknięcia Tworzenie abstrakcji Kompozycja i dziedziczenie Hierarchia klas języka Scala Cechy (ang. traits) Pakiety i importy Listy Kolekcje Asercje i testy jednostkowe Obiekty stanowe Parametryzacja typu Konwersje niejawne

Interfejs użytkownika Parametry Wyrażenia typu for Wyłuskiwacze (ang. extractors) Adnotacje Praca z XML Parsery Programowanie GUI Panele Obsługa zdarzeo

Tworzenie aplikacji webowych z użyciem szkieletu Grails [JGR] PROFIL UCZESTNIKA Uczestnik zna język Java na poziomie szkolenia JAVA. Uczestnik zna zagadnienia tworzenia aplikacji webowych na poziomie szkolenia JWEB. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie do języka Groovy Framework Grails Praca z danymi Czym wyróżnia się język Groovy? Język Groovy a język Java Instalacja języka Groovy Narzędzia związane z językiem Groovy Podstawowe konstrukcje językowe Deklaracja klas Używanie asercji Przeciążanie operatorów Ciągi znakowe Kolekcje: listy i mapy Domknięcia Integracja Groovy i Java Metaprogramowanie Meta Object Protocol ExpandoMetaClass Testowanie w języku Groovy GroovyTestCase Mock Object i Stubs Wprowadzenie do Grails Architektura Grails Przegląd struktury projektu Katalogi dla klas modelu, kontrolerów i widoków Konfiguracja źródła danych Logowanie Przydatne narzędzia Mapowanie relacyjno-obiektowe GORM Definiowanie właściwości

Piaskownica (ang. scaffolding) Obiekty kontrolerów Widok w aplikacjach Grails Ajax w aplikacjach Grails Zagadnienia zaawansowane Ograniczenie i walidacja Odwzorowywanie relacji Operacje usuwania, tworzenia, aktualizacji i wyszukiwania danych Dynamiczne zapytania Połączenie do biblioteki Hibernate Dynamiczne prototypowanie Dynamiczne operacje Tworzenie kontrolerów Tworzenie widoków Domyślne akcje Praca z atrybutami żądania Zasięg Flash Wiązanie danych Konwersja danych Generowanie odpowiedzi Interceptory dla akcji Wprowadzenie do Groovy Server Pages Skryplety Dynamiczne znaczniki Szablony Rozłożenie widoków Stronicowanie Tworzenie własnych znaczników Podstawy Ajaxa Obsługa zdarzeo Znaczniki wspierające Ajaxa Obsługa transakcji Usługi Dependency Injection Integracja z Hibernate Dependency Injection z użyciem biblioteki Spring Najlepsze praktyki

Warsztaty JSF/EJB/Struts2/Hibernate/Spring Framework [WORK] PROFIL UCZESTNIKA Uczestnik ma podstawową wiedzę i doświadczenie w obszarze technologii, w oparciu o którą prowadzone będą warsztaty PARAMETRY SZKOLENIA Czas trwania: zależnie od potrzeb. Forma zajęd: Dwiczenia -80 %, wykład 20%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Warsztaty doskonalenia umiejętności Technologie do wyboru: SWT i Eclipse RCP Serwlety i JSP Tworzenie aplikacji z użyciem JSF Spring MVC i Spring WebFlow GWT Hibernate EJB3 i JPA JPA Spring Framework Grails SQL Server

Wprowadzenie do języka C# i platformy.net *NC#+ PROFIL UCZESTNIKA Uczestnik potrafi programowad w dowolnym języku. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie do platformy.net Język C# Programowanie obiektowe Programowanie WinForms Przegląd architektury.net Przegląd środowiska programistycznego MS Visual Studio.NET 2008 Struktura aplikacji Deklarowanie stałych i zmiennych Typy wbudowane i własne Konwersja typów Operatory logiczne Deklarowanie tablic, inicjalizacja danymi Używanie wyjątków Obsługa parametrów konsoli Definiowanie klas Deklarowanie obiektów Dziedziczenie klas Klasy sealed Klasy wewnętrzne Metody Przestrzenie nazw Konstruktory i destruktory Tworzenie i niszczenie obiektów Interfejsy Kwalifikowanie dostępu Enkapsulacja danych Budowa złożonej aplikacji Posługiwanie się modułami Referencje gotowych dll Testowanie aplikacji Właściwości formularzy

Najpopularniejsze okienka dialogowe FileOpen Print MessageBox Color Organizowanie interfejsu aplikacji Kontrolki Drzewo Lista Grid UserControl Menu aplikacji Paski statusu Paski narzędziowe Tworzenie i wywoływanie własnych formularzy Obsługa błędów danych wprowadzanych przez użytkowników Sygnalizacja dźwiękowa Programowanie zdarzeo Delegacje

Zaawansowane programowanie w.net z użyciem języka C# *NZC#+ PROFIL UCZESTNIKA Uczestnik zna język C# na poziomie szkolenia NC#. PARAMETRY SZKOLENIA Czas trwania: 3 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Tworzenie aplikacji WinForms Biblioteka GDI+ Wielowątkowośd Dostęp do danych Programowanie sieciowe Szyfrowanie na platformie.net Praktyka pracy z projektami Właściwości i obsługa zdarzeo Delegacje i bezpieczna praca z wątkami Asynchroniczna praca ze źródłem danych Drag & drop Inicjalizowanie kontrolek i aktualizowanie danych Własne kontrolki Drukowanie Synchronizacja wątków Komunikacja między wątkami Praca z pulą Logowanie informacji w aplikacjach czasu rzeczywistego Wybrane zagadnienia ADO.NET Batch insert Parametry w zapytaniach Zarządzanie pulą połączeo Obsługa transakcji Wiązanie danych z interfejsem użytkownika Obiektowy model dostępu do danych Usługi internetowe Tworzenie Web Service'ów. Wywoływanie usług Web Services Operacje asynchroniczne Programy typu klient-serwer Rozgłaszanie Przesyłanie własnych danych Stosowanie algorytmów symetrycznych i asymetrycznych Najlepsze praktyki Praca z kodem niezarządzanym

Przegląd narzędzi i bilibotek Importowanie funkcji WinApi Zarządzanie pamięcią Obsługa rejestru Windows. Podstawy przetwarzania grafiki Automatyczne aktualizacje aplikacji SQL Prompt SQL Delta Visual SVN Tortoise SVN Apache + SVN module Resharper Log4Net

Tworzenie raportów na platformie.net [NREP] PROFIL UCZESTNIKA Uczestnik zna język C# na poziomie szkolenia NZC#. PARAMETRY SZKOLENIA Czas trwania: Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: ok. 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Dostęp do drukarek w platformie.net Drukowanie w oparciu o rysowanie w kontekście urządzenia drukarki Raporty w Crystal Reports Raporty przy użyciu DevExpress Podstawowe zagadnienia związane z raportowaniem Przegląd narzędzi raportujących Typowe okna dialogowe do wydruku Podgląd wydruku Model druku Obsługa zdarzeo Efektywne zarządzanie zasobami Praktyczne operacje rysowania obiektów obiekcie PrintDocument Tworzenie prostych raportów Posługiwanie się źródłem danych Agregowanie Grupowanie Wyliczanie danych na poziomie raportów Formatowanie warunkowe Zasady licencjonowania dla programistów i użytkowników koocowych Model obiektowy raportów Projektowanie raportów Formatowanie i lokalizacja danych Obsługa zdarzeo raportowania Agregowanie, grupowanie i wyliczanie danych na poziomie raportów Formatowanie warunkowe Wiązanie kontrolek raportu ze źródłem Praca z danymi typu unbound Kreator raportów dla użytkowników koocowych Podraporty Drukowanie kodów kreskowych

Wprowadzenie do MS Reporting Services Eksportowanie danych do popularnych formatów (pdf, xls, doc) Zasady licencjonowania dla programistów i użytkowników koocowych Przedstawienie możliwości platformy Zasady licencjonowania

SQL Server w praktyce programistycznej [NSQLS] PROFIL UCZESTNIKA Uczestnik zna język C# na poziomie szkolenia NZC#. PARAMETRY SZKOLENIA Czas trwania: 5 x 8h. Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. SZCZEGÓŁOWY PROGRAM Wprowadzenie Projektowanie bazy danych Konserwacja i archiwizacja bazy danych T-SQL Podstawowe pojęcia: SQL,.NET, Transkacje, Mechanizmy dostępu do danych. Wprowadzenie do SQL Servera Polityka finansowa Microsoft Koniecznośd stosowania konwencji prezentacja najlepszych praktyk Pozyskiwanie i dokumentowanie wymagao projektowych Posługiwanie się diagramami projektu bazy Projekt struktury danych Więzy integralności a bazy szybkorosnące Polityki bezpieczeostwa danych Bazy rozproszone Tworzenie planu utrzymania Tworzenie i przywracanie kopii zapasowych Dobór i przebudowa indeksów Narzędzie Query Analizer Kontrola aktualności bazy produkcyjnej Rejestrowanie zmian w rekordach Prezentacja narzędzi do dokumentowania bazy danych Automatyzacji tworzenia historii rekordów Porównywania Usystematyzywanie wiedzy dotyczącej podstawowych elementów składni języka SQL SELECT, INSERT (multi insert) UPDATE, DELETE SUBQUERY, UNION GROUP BY, HAVING Tworzenie i posługiwanie się własnymi funkcjami SQL Optymalizacja zapytao efektywne stosowanie złączeo

.NET i SQL Server Rozszerzenie T-SQL : SQL Server Project Aplikacje czasu rzeczywistego Rozszerzenia Transact SQL Stronicowanie PIVOT DateFunctions CASE, IF RANK OVER Partition Prezentacja mechanizmy dostępu do danych DAO ADO DataSets Autoryzacja w bazie danych Zasady działania puli połączeo Multi Insert Optymalizacja zapytao Zautomatyzowane pozyskiwanie danych wyłącznie prezentowanych w interfejsie Transakcje rozproszone Transakcje na poziomie zlinkowanej bazy SQL Server Posługiwanie się parametrami w zapytaniach Rozwiązania typu ORM Zaawansowane zagadnienia ADO.NET DataBindings DataView Zagadnienie współbieżności Implementacja własnych elementów składni Najlepsze praktyki Bezpieczeostwo obsługiwane w sposób programistyczny. Rejestrowanie zdarzeo aplikacji. Buforowanie danych. Testowanie aplikacji czasu rzeczywistego.

Najlepsze strategie skutecznych programistów *NS+ PROFIL UCZESTNIKA Uczestnik posiada doświadczenie w komercyjnym tworzeniu systemów informatycznych. Podczas prac programistycznej uczestnik współpracuje z innymi programistami lub osobami nietechnicznymi. PARAMETRY SZKOLENIA Czas trwania: dopasowywany indywidualnie Forma zajęd: Dwiczenia - 60%, wykład 40%. Wielkośd grupy: do 10 osób. Program szkolenia oraz czas jego trwania jest całkowicie dopasowywany do Klienta podczas zindywidualizowanego badania potrzeb szkoleniowych. SZCZEGÓŁOWY PROGRAM Wstęp Oprogramowanie na czas Opracowywanie zadao Planowanie pracy programisty Wykonywanie zadao programistycznych Umiejętności techniczne i nietechniczne w pracy programisty Profil kompetencyjny skutecznego programisty Zarządzanie czasem czy inwestowanie czasu? Świadome i nieświadome planowanie Dzieo pracy programisty Zbyt wiele do zrobienia Wady list TODO Kolekcjonowanie zadao do wykonania Analizowanie zadao do wykonania Konkretyzowanie zadao Nadawanie priorytetów Perspektywa planowania Granulacja zadao w perspektywie planistycznej Terminy ostateczne i punkty pośrednie Wizualizowanie zadao do wykonania Powtarzalny proces pracy programisty Skupienie podczas pracy Rozpraszacze Harmonogram pracy programisty Przeglądy wykonanych zadao Przeglądy zadao do zrobienia Wdrażanie nawyku zarządzania czasem

Szacowanie zadao programistycznych Sztuka zadawania pytao Stan programisty Antywzorce w pracy programisty Techniki rozwiązywania problemów programistycznych Współpraca w zespole Dekomponowanie zdao Dekomponowanie zadao programistycznych (feature breakdown structure) Stożek niepewności Między szacowaniem a zobowiązaniem Szacowanie złożoności zadao niepewnych i niedookreślonych Metoda średniej ważonej Procentowa ufnośd szacowania Średni błąd bezwzględny szacowania Kto prowadzi rozmowę? Struktura rozmowy Pytania konkretyzujące, technika WY/WE, technika Ekrany GUI Pytania uogólniające Budowanie zrozumienia dziedziny klienta Trudne komunikaty ze strony rozmówcy Przejmowanie kierunku rozmowy Umiejętnośd aktywnego słuchania Tworzenia atmosfery sprzyjającej rozmowie Doświadczenie Stanu programisty Charakterystyka Stanu programisty Rozpoznanie własnego Stanu programisty Zarządzanie Stanem programisty Wykorzystywanie Stanu programisty do generowania skupienia w trakcie pracy Wykorzystywanie stanu programisty do efektywnego udziału w spotkaniach Problem jest na zewnątrz Wymyślanie koła Bezpieczeostwo zatrudnienia Najlepsze rozwiązanie Dryfowanie zadao Technika małych kroków Ograniczanie przestrzeni analizy Najprostsze możliwe środowisko Równowaga konkret-abstrakcja Czym jest zespół programistyczny? Klient jako członek zespołu; klienci wewnętrzni i zewnętrzni Charakterystyczne cechy i zachowania programisty Charakterystyczne cechy i zachowania klienta Jak zastosowad Sztukę zadawania pytao w kontekście różnego typu rozmówców Formułowanie komunikatów dostosowanych do rozmówcy Różnice kulturowe a współpraca w zespole

Skuteczna współpraca z Biznesem podczas zbierania i analizy wymagao [ZWA] PROFIL UCZESTNIKA Uczestnik współpracuje bezpośrednio z klientem lub użytkownikiem koocowym. PARAMETRY SZKOLENIA Czas trwania: 2 lub 3 x 8h. Forma zajęd: Dwiczenia 60- %, wykład 40%. Wielkośd grupy: do 10 osób. Szkolenie może byd łączone ze szkoleniem Zarządzanie wymaganiami (ZW). SZCZEGÓŁOWY PROGRAM Wprowadzenie Wizja produktu Co to jest Biznes? Sztuka zadawania pytao Nadawanie priorytetów wymaganiom Zbieranie wymagao, analiza wymagao, zarządzanie wymaganiami O czym traktuje, a co przemilcza dostępna literatura? Kompetencje niezbędne do zbierania i analizy wymagao Czym jest wizja? Metody definiowania wizji produktu Jak używad wizji produktu w trakcie prac nad systemem? Podstawowe różnice między osobami technicznymi, a nietechnicznymi Rozpoznanie interesariuszy Socjologiczne aspekty zbierania wymagao Co oznacza myśled biznesowo Proces biznesowy a zakres systemu? Kto prowadzi rozmowę? Struktura rozmowy Pytania konkretyzujące, technika WY/WE, technika Ekrany GUI Potrzeba, problem a wymaganie Pytania uogólniające Budowanie zrozumienia dziedziny klienta Trudne komunikaty ze strony rozmówcy Przejmowanie kierunku rozmowy i zarządzanie uwagą rozmówcy Umiejętnośd aktywnego słuchania Techniki eliminowania wymagao o niskim priorytecie

Efektywne spotkania Klasyfikacja wymagao Dokumentowanie wymagao Analiza wymagao Analiza wartości biznesowej wymagao Algorytmiczne nadawanie priorytetów Cechy dobrego spotkania Parametry typowych spotkao Przygotowanie spotkania Prowadzenie spotkania i sterowanie procesem zbierania wymagao Zamykanie spotkao Tworzenie atmosfery sprzyjającej rozmowie [opcja] Spotkania podsumowujące wykonane prace Cechy wzorowego wymagania Klasyczny podział wymagao Dokument Software Requirements Specification Praca z przypadkami użycia [opcja] Praca z User stories Użyteczne wskazówki dotyczące pracy z wymaganiami użytkownika Narzędzia wspomagające pracę z wymaganiami użytkownika Funkcjonalności systemu Precyzowanie wskaźników jakości Definiowanie reguł biznesowych Weryfikowanie oraz walidowanie wymagao Modelowanie klas biznesowych *opcja+ Identyfikowanie bloków budujących Opracowywanie modelu Tworzenie prototypów *opcja+ Warsztat zbierania i analizy wymagao (1 dzieo) Podczas jednodniowego warsztatu, uczestnicy samodzielnie testują całościowy proces zbierania oraz analizy wymagao. Uczestnicy pracują na uprzednio przygotowanych cases z domeny biznesowej klienta.