Harmonogram 'Warsztatów Zajavka'

Wróć do strony głównej Zajavka

Zajavkowa ścieżka nauki to oprócz Bootcampu Zajavka także dwadzieścia dwa warsztaty. Dopiero po ukończeniu obu tych elementów (Bootcamp i Warsztaty) będziesz mieć pełen arsenał umiejętności, w które chcemy Cię wyposażyć. Dlatego udział w warsztatach traktuj jako opcjonalne ale zalecane następstwo ukończenia Bootcampu Zajavka.

Warsztaty w swojej naturze mają troszkę inną konstrukcję niż Bootcamp Zajavka. Aby dowiedzieć się jak skonstruowane są warsztaty i dlaczego się tak nazywają, zapoznaj się z poniższym materiałem, w którym wyjaśniamy, na czym polega koncepcja warsztatu oraz zapraszamy do udziału w warsztacie #1. Pod filmem znajdziesz harmonogram i rozpiskę tematów poruszanych w obrębie każdego z warsztatów.



Warsztat #1 - JAVA GENERICS I KOLEKCJE

Z tego warsztatu dowiemy się, czym są typy generyczne w Javie oraz jak zachowuje się mechanizm określania typu, na jakim chcemy operować w danej klasie. Dowiemy się, jak można stosować typy generyczne na przykładzie różnych rodzajów kolekcji (Listy, Sety, Kolejki i Mapy). Do tego dowiemy się, jak można efektywnie określać, w jaki sposób chcemy posortować elementy w kolekcji. Pogłębimy wiedzę o kolejne kolekcje, które nie zostały poruszone w Bootcampie.

Generics

Klasy generyczne

Interfejsy generyczne

Metody generyczne

A co by było, gdyby nie było generyków?

Podsumowanie z Bartkiem K.

Unbounded Wildcards

Upper bound wildcard

Lower bound wildcard

Dziwne przykłady

Podsumowanie z Bartkiem K.

Notatki

Test 1

Zadania


Comparing

Wstęp

Comparator

Comparable

Podsumowanie z Bartkiem K.

Notatki

Test 2

Zadania


Kolekcje

Podsumowanie podstaw

Listy - ArrayList, LinkedList i inne

Podsumowanie z Bartkiem K.

Set - HashSet, LinkedHashSet, TreeSet

Podsumowanie z Bartkiem K.

Map - HashMap, LinkedHashMap, TreeMap

Podsumowanie z Bartkiem K.

Queue - ArrayDeque, Stack, PriorityQueue

Podsumowanie z Bartkiem K.

Obsługa null w kolekcjach

Notacja BIG O

Podsumowanie z Bartkiem K.

Notatki

Test 3

Zadania

Projekt!


Warsztat #2 - PROGRAMOWANIE FUNKCYJNE

W Javie da się programować funkcyjnie. Powiemy sobie, o co w ogóle chodzi w programowaniu funkcyjnym. Przejdziemy do omówienia jak robić to w Javie na podstawie interfejsów funkcyjnych dostarczanych nam przez API Javy. Na koniec poruszymy tematykę Streamów, które ułatwią nam pracę na kolekcjach, które poznaliśmy już wcześniej.

Przypomnienie czym jest lambda

Lambdy - powtórka z materiałów omówionych w ramach Bootcampu

Podsumowanie z Bartkiem K.

Notatki

Test - Przypomnienie o lambdach

Wprowadzenie, czym jest programowanie funkcyjne

Podstawy programowania funkcyjnego

Często zadawane pytania

Podsumowanie z Bartkiem K.

Notatki

Interfejsy funkcyjne

Czym jest interface funkcyjny

Podsumowanie z Bartkiem K.

Czym jest method reference

Podsumowanie z Bartkiem K.

Notatki

Interface funkcyjny - Predicate

Interface funkcyjny - Consumer

Interface funkcyjny - Supplier

Interface funkcyjny - BiPredicate

Interface funkcyjny - BiConsumer

Interface funkcyjny - Function

Interface funkcyjny - BiFunction

Interface funkcyjny - UnaryOperator

Interface funkcyjny - BinaryOperator

Podsumowanie z Bartkiem K.

Ciekawe przykłady związane z interfejsami funkcyjnymi

Podsumowanie z Bartkiem K.

Notatki

Test 1

Zadania

Projekt!

Streams

Stream - wprowadzenie

Stream - tworzenie

Podsumowanie z Bartkiem K.

Operacje terminujące Stream

Podsumowanie z Bartkiem K.

Operacje pośrednie w Streamach

Podsumowanie z Bartkiem K.

Po co te Streamy

Streamy a typy prymitywne

Podsumowanie z Bartkiem K.

Zaawansowane kolektory

Podsumowanie z Bartkiem K.

Notatki

Test 2

Zadania

Projekt!


Warsztat #3 - LOKALIZACJA I OPERACJE NA PLIKACH

Porozmawiamy o regionalizacji aplikacji, ustawieniach regionalnych, wspieraniu kilku języków przez aplikację oraz formatach danych, które są z tym związane. Przejdziemy do operacji na plikach, wczytywania pliku z dysku, zapisywania plików na dysku oraz ich edycji. Porozmawiamy również o serializacji obiektów, czyli jak można utworzony w Javie obiekt zapisać do pliku. Powiemy sobie do tego, czym jest IO oraz NIO.2.

Lokalizacja

Internationalization i Localization

Podsumowanie z Bartkiem K.

Notatki

Resource bundle

Podsumowanie z Bartkiem K.

Notatki

Formatowanie w zależności od lokalizacji

Podsumowanie z Bartkiem K.

Notatki

Test 1

Exceptions - rozszerzamy wiedzę pod operacje na plikach

Try-With-Resources

AutoCloseable

SuppressedExceptions

Podsumowanie z Bartkiem K.

Notatki

IO - in/out

Koncept systemu plików

Klasa File

Podsumowanie z Bartkiem K.

Notatki

Streamy - teoria

Podsumowanie z Bartkiem K.

Notatki

InputStream, OutputStream

Podsumowanie z Bartkiem K.

Notatki

BufferedInputStream, BufferedOutputStream

Podsumowanie z Bartkiem K.

Notatki

Reader, Writer

Podsumowanie z Bartkiem K.

Notatki

Serialization, Deserialization

Podsumowanie z Bartkiem K.

Notatki

PrintStream, PrintWriter

Podsumowanie z Bartkiem K.

Notatki

Scanner

Podsumowanie z Bartkiem K.

Notatki

Test 2

NIO.2

Interface Path

Podsumowanie z Bartkiem K.

Notatki

Klasy Paths and Files

Porównanie NIO.2 vs IO

Podsumowanie z Bartkiem K.

Notatki

Test 3

Zadania

Projekt!


Warsztat #4 - PODSTAWOWE OPERACJE NA BAZACH DANYCH I JDBC

W tym warsztacie będziemy mieli pierwszy kontakt z bazami danych. Opowiemy sobie, czym są bazy danych oraz po co się je stosuje. Porozmawiamy o języku, który jest stosowany, żeby pobierać i umieszczać dane w bazach danych. Poruszymy pojęcie JDBC, będące podstawowym mechanizmem, który zapewnia Java, aby móc podłączyć się z bazą danych i się z nią komunikować.

Wprowadzenie

Czym są bazy danych, po co to? DBMS oraz RDBMS

Notatki

SQL

Instalacja PostgreSQL

Notatki

Podstawowe typy danych

Notatki

Zapytania SQL

Notatki

Relacje

Notatki

Test 1

Projekt!

JDBC

Czym jest JDBC

Notatki

Wywołanie SQL z Javy

Notatki

Prepared Statement

Notatki

ResultSet

JDBC i ResultSet

Notatki

Test 2

Projekt!


Warsztat #5 - BUILDING TOOLS

Na tym etapie umiemy już tworzyć proste aplikacje, które są w pełni oparte o kod napisany przez nas. W praktyce natomiast, oprócz pisania kodu samodzielnie, bardzo często będziesz korzystać z narzędzi i bibliotek, które napisał już wcześniej ktoś inny. Można tym zarządzać manualnie, ale lepiej jest znać narzędzia do automatyzacji. Narzędzia takie dają nam również możliwość przygotowania jednego pliku, który będzie w sobie mieścił całą naszą aplikację i o tym też będziemy rozmawiać w ramach tego warsztatu. Narzędzia, które omówimy to Maven i Gradle.

Maven

Czym jest Maven?

Notatki

POM

Notatki

Dependencies

Notatki

Repositories

Notatki

Plugins

Notatki

Fat Jar

Notatki

Test 1

Zadania

Gradle

Czym jest Gradle?

Notatki

Konfiguracja projektu Java w Gradle, Gradle Wrapper

Notatki

Dependencies

Notatki

Gradle czy Maven? Maven czy Gradle?

Notatki

Test 2

Zadania


Warsztat #6 - JAK PISAĆ MNIEJ KODU? LOMBOK

W aplikacjach Java często piszemy kod taki jak np. konstruktory, gettery, settery itp. Taki kod można pisać szybciej. Z tego warsztatu dowiemy się jak i w tym celu wykorzystamy bibliotekę Lombok.

Lombok

Czym jest Lombok?

Integracja Lombok z Intellij

Notatki

Adnotacje Lombok

Notatki

Test

Zadania

Projekt!


Warsztat #7 - ZAPIS PRZEBIEGU DZIAŁANIA APLIKACJI - LOGOWANIE

Przy działaniu aplikacji bardzo przydatne jest zapisywanie co się w tej aplikacji dzieje, zapisywanie przebiegu jej działania. Proces taki nazywa się logowaniem, poruszymy ten temat w obrębie tego warsztatu.

Logging

Czym jest logowanie?

Dostępne rozwiązania

Logowanie w Javie

SLF4J i Logback

Wracamy do Lomboka

Notatki

Test

Zadania

Projekt!


Warsztat #8 - TESTY JEDNOSTKOWE

Wyobraź sobie, że napisaliśmy już dużo kodu, który działa i sprawdziliśmy ręcznie, że robi to, co powinien. Teraz chcemy zmodyfikować sporą część aplikacji. W jaki sposób możemy upewnić się, że nic nie popsuliśmy? Albo możemy zrobić to znowu ręcznie, albo napisać testy, które można rozumieć jak program testujący nasz program.

Testy jednostkowe

Czym jest testowanie? Po co się testuje?

Notatki

JUnit

Notatki

Zasady pisania dobrych testów jednostkowych

Notatki

Pokrycie kodu testami

Notatki

TDD

Notatki

Test

Zadania

Projekt!


Warsztat #9 - DIAGRAMY UML

W pracy bardzo często, zanim napiszesz jakikolwiek kod, trzeba będzie przedyskutować to z innymi. Bardzo możliwe też, że Twój pomysł będzie musiał być przedstawiony komuś, kto nie ma zielonego pojęcia o kodowaniu. W takich sytuacjach pomocne stają się obrazki lub tablica i mazak. Oprogramowanie da się narysować, z tego materiału dowiemy się o standardowych oznaczeniach używanych podczas rysowania oprogramowania.

UML

Czym jest UML?

Po co znać UML?

Things

Relationships

Diagrams

Notatki


Warsztat #10 - DESIGN PRINCIPLES I DESIGN PATTERNS

Jakie są zasady pisania dobrego i czystego kodu? Jak rozwiązywać popularne problemy w taki sposób, żeby rozumieli nas inni programiści? Jak nie wymyślać koła na nowo. W programowaniu często powtarzają się te same problemy i ktoś już dawno temu wymyślił do nich gotowe rozwiązania. Każdy na swojej ścieżce nauki programowania w końcu zetknie się z tematyką Design Principles i Design Patterns. O tym porozmawiamy w ramach tego warsztatu.

Design Principles

DRY

KISS

YAGNI

SOLID

Notatki

Test 1

Zadanie

Design Patterns

Singleton

Factory

Abstract Factory

Builder

Prototype

Adapter

Composite

Facade

Proxy

Decorator

Bridge

Template method

Chain of Responsibility

Observer

Strategy

Visitor

Notatki

Test 2

Zadania


Warsztat #11 - KOLEJNE WERSJE JAVA

Języki programowania i technologie cały czas żyją. Oznacza to, że czy tego chcemy, czy nie, cały czas musimy się uczyć i aktualizować naszą wiedzę. Cały kurs celowo został podzielony w ten sposób, żebyśmy w pierwszej kolejności skupili się na fundamentalnych zagadnieniach Javy. Na tym poziomie nauki, gdy już umiemy z powodzeniem stosować ten język w praktyce, przyszedł czas, żeby dowiedzieć się jakie nowości były wprowadzane w kolejnych wersjach Javy.

JDK 8

Zarys historyczny wersji Java

Interfejsy

Date & Time

Functional programming

Optional

IO

Kolekcje

Notatki

JDK 9

JShell

Kolekcje

Interfejsy

try-with-resources

Optional

Streams

Klasy anonimowe

Notatki

JDK 10

var

Kolekcje

Optional

Streams - Collectors

Notatki

JDK 11

javac

String

var i lambda

Files

Notatki

Test

Projekt!

JDK 12

Preview features

switch (preview)

Streams - Collectors

String

Notatki

JDK 13

switch (preview)

Text Blocks (preview)

Notatki

JDK 14

switch

NullPointerException

Pattern Matching instanceof (preview)

Records (preview)

Text Blocks (preview)

Notatki

JDK 15

Text Blocks

Pattern Matching instanceof (preview)

Records (preview)

Sealed Classes (preview)

Notatki

JDK 16

Records

Pattern Matching instanceof

Streams

Day Period

jpackage

Sealed Classes (preview)

Notatki

JDK 17

Sealed Classes

Pattern Matching for switch (preview)

Notatki

Test

Projekt!

JDK 18

Deprecated finalize()

Pattern Matching for switch (preview)

Notatki

JDK 19

Virtual threads (preview)

Pattern Matching for switch (Third preview)

Record Patterns (Preview)

Notatki


Warsztat #12 - JAK ZAPISAĆ HISTORIĘ WPROWADZANYCH ZMIAN? GIT

No to Git, że Git. W praktyce projekty nie są pisane przez jednego dewelopera i wysyłane innym w postaci plików .zip, albo .7z, wygląda to troszeczkę inaczej. W tym materiale dowiemy się, w jaki sposób można zapanować nad historią zmian w naszym kodzie i jak można go współdzielić pomiędzy programistami.

Wstęp do VCS

Czym są VCS i do czego to służy?

Rodzaje VSCów

Notatki

Wstęp do Git

Czym jest Git i w jaki sposób z nim pracować

Stany plików

Instalacja

Konfiguracja

Zakładamy konto na GitHub

Notatki

Praca ze zmianami w Git

Sprawdzamy wprowadzone zmiany

Dodajemy zmiany do repozytorium

Sprawdzamy historię zmian

Ignorujemy zmiany

Wycofujemy dodane zmiany

Notatki

Praca z branchami w Git

Czym są branche

Tworzymy nowy branch

Praca z branchami

Czym jest Merge

Czym jest Rebase

Notatki

Test

Praca z repozytorium zdalnym w Git

Pobieranie zmian z repozytorium zdalnego

Wysyłanie zmian do repozytorium zdalnego

Praca z ze zdalnymi branchami

Notatki

Jakie funkcje Git warto jeszcze znać?

Git Tag

Aliasy

Obwinianie innych

Cherry Pick

Do czego służy plik README.md

Notatki

Sposoby pracy z Git

Gitflow

GitHub Flow

Pull Request

Notatki

Test

Zadania


Warsztat #13 - SPRING BEANS

W obrębie tego warsztatu raz na zawsze wyjaśnimy sobie, czym jest framework i zaczniemy omawiać chyba najbardziej popularny framework Java, czyli Spring. Dowiemy się, w jaki sposób Spring pomaga nam zbudować szkielet aplikacji i jakie założenia muszą spełniać nasze klasy, abyśmy mogli poprawnie z tego frameworka korzystać.

Spring Intro

A na co to komu potrzebne?

Spring vs Java EE

Potrzebne definicje

Notatki

Spring Beans

Konfiguracja w oparciu o plik XML

Konfiguracja w oparciu o adnotacje

Skanowanie komponentów

Stereotypy

Spring with Lombok

Notatki

Test

Projekt!


Warsztat #14 - MOCKING I SPRING

Na wcześniejszych etapach nauki pojawiały się takie stwierdzenia jak zaślepka, albo mock. Czas najwyższy, żeby wyjaśnić sobie, o co w tym chodzi, jaki jest cel mockowania i jak można to zrobić zastawiając to wszystko ze Springiem.

Rodzaje testów

Rodzaje testów

Testy integracyjne

Piramida testów

Notatki

Mockowanie

Czym jest mockowanie?

Stub vs Mock vs Spy

Mockito

Notatki

Testowanie aplikacji Spring

Jak testować aplikacje Spring?

Notatki

Test

Zadania

Projekt!

Mockito - Update do Mockito 5

Update do Mockito 5

Notatki


Warsztat #15 - SPRING DATA ACCESS

W obrębie tego warsztatu dowiemy się, jak można wykorzystać Spring, żeby uprościć sobie życie przy wykorzystaniu JDBC. Tematyka ta będzie jednocześnie krokiem w kierunku kolejnego warsztatu, czyli ORM i Hibernate. W końcu poruszymy również zagadnienia dotyczące transakcji bazodanowych oraz ACID. Zarządzanie transakcjami również oprzemy o mechanizmy Springa.

JDBC

Przypomnienie

Notatki

Transakcje

Czym są transakcje

ACID

Poziomy izolacji transakcji

Negatywne efekty współbieżności

Notatki

Spring Data Access

JdbcTemplate

SimpleJdbcInsert

SimpleJdbcCall

NamedParameterJdbcTemplate

Programowalne zarządzanie transakcjami

Deklaratywne zarządzanie transakcjami - @Transactional

Transakcje fizyczne vs transakcje logiczne

Notatki

Test

Projekt!


Warsztat #16 - ORM I HIBERNATE

Z tego warsztatu dowiemy się, czym jest ORM i oraz w jaki sposób można wykorzystać ORM w naszym projekcie na podstawie frameworka Hibernate. Ten warsztat zawiera bardzo dużą pigułę wiedzy dotyczącej pracy z bazami danych.

ORM

Czym jest ORM

Zalety i wady stosowania ORM

ORM vs JDBC

Notatki

JPA

Czym jest JPA

Z czego składa się JPA

Adnotacje JPA

Cykl życia encji

Wyjątki JPA

Notatki

O organizacji danych w bazie danych

Czym są schematy bazodanowe

Czym są indeksy bazodanowe

Czym są widoki bazodanowe

Notatki

Hibernate - Intro

Co nam daje stosowanie Hibernate w projekcie?

A jakich projektów składa się Hibernate?

Konfiguracja

Cykl życia encji

Strategie zarządzania bazami danych

Notatki

Hibernate - Intro

Transakcje w Hibernate

Interfejs Session i prosty przykład CRUD

Notatki

Hibernate - Relacje

Relacja one-to-one

Relacja one-to-many

Relacja many-to-many

FetchType

Kaskady

Orphan Removal

Notatki

Test

Projekt!

Hibernate - JPQL oraz HQL

Czym jest JPQL

Czym jest HQL

HQL - INSERT

HQL - UPDATE

HQL - DELETE

HQL - SELECT

HQL - Named Query

FetchMode

Problem n + 1 zapytań

Encje vs metody equals() i hashCode()

Native Query

Notatki

Hibernate - Criteria API

Czym jest Criteria API

Pobranie pojedynczego rekordu

Distinct

Sortowanie

JOIN

Funkcje agregujące

Criteria UPDATE

Criteria DELETE

Notatki

Hibernate - Zaawansowane zagadnienia

Connection Pool - HikariCP

Hibernate i cache - 1LC oraz 2LC

Database locking

Notatki

Test

Projekt!


Warsztat #17 - SPRING DATA JPA

Z tego warsztatu dowiemy się o kolejnym poziomie abstrakcji zaproponowanym przez Spring framework, jaki można wprowadzić nad poznanym wcześniej Hibernate. Jednocześnie jest to ostatni warsztat na ścieżce Zajavka, w którym będziemy rozmawiać tylko o bazach danych.

Spring with Hibernate

Przykład wykorzystania Spring z Hibernate

Adnotacja @PersistenceContext

Notatki

Spring Data JPA

Czym jest projekt Spring Data

Czym jest projekt Spring Data JPA

Kiedy tego używać

Kiedy tego nie używać

Interfejsy Spring Data JPA

Konfiguracja Spring Data JPA

Spring Data JPA - Query Methods

Spring Data JPA - Named Queries

Spring Data JPA - Named Native Queries

Spring Data JPA - Adnotacja @Query

Spring Data JPA - Query by Example

Spring Data JPA - Entity Graph

Notatki

Spring Data JPA - Paginacja i Sortowanie

Czym jest paginacja

Czym jest sortowanie

Spring Data JPA przykład sortowania

Spring Data JPA przykład paginacji

Spring Data JPA przykład paginacji z sortowaniem

Notatki

Spring with Flyway

Sposoby zarządzania schematem w bazie danych

Czym jest Flyway

Flyway - konfiguracja

Flyway - migracje

Notatki

Spring Data JPA - Testy warstwy persystencji

Testy jednostkowe

Testy integracyjne - baza in-memory

Testy integracyjne - współdzielona baza danych

Testy integracyjne - testcontainers

Notatki

Test

Projekt!


Warsztat #18 - CONCURRENCY

Myślisz, że nie jest możliwe wykonywanie kilku czynności jednocześnie? Java tak potrafi, a z tego warsztatu dowiemy się jak powiedzieć Javie, że ma to robić. Jednocześnie omówimy problemy, jakie się z tym wiążą. W ramach tego warsztatu materiały zostały opracowane tylko w formie tekstowej.

Concurrency

O co w tym chodzi?

Czym jest wątek i czym jest proces?

Jakie są zalety współbieżności?

Jakie są wady współbieżności?

Concurrency vs Parallel execution

Tworzymy własne wątki

Problemy wielowątkowości

Java a zarządzanie pamięcią

Race condition (synchronized, lock, ThreadLocal)

Deadlock

Livelock

Starvation

Słówko volatile

Gwarancja HAPPENS BEFORE

Thread safety w gotowych narzędziach

Thread safety w Java API

Thread safety w Hibernate

Thread pools

ExecutorService

Interfejs Runnable

Interfejs Callable

Parallel Streams

Tworzenie parallel streams

Procesowanie parallel streams

Kończenie parallel streams

Klasy Atomic

Co to i po co to?

Notatki


Warsztat #19 - SPRING WEB MVC

Z tego warsztatu dowiemy się jak napisać aplikację WEB na podstawie wzorca Model-View-Controller. Wykorzystamy do tego oczywiście Springa. Do tego dowiesz się, czym jest JSP oraz Thymeleaf.

Jak działają aplikacje w Internecie

Wzorzec Model View Controller

Architektura Klient - Server

Protokół HTTP

Model żądanie / odpowiedź

Notatki

Spring Web MVC - Wstęp

Wstęp teoretyczny

Mapowanie żądań

Mapowanie parametrów żądań

Notatki

Spring Web MVC - Konfiguracja

Konfiguracja oparta o XML oraz o pliki Java

Notatki

Spring Web MVC - JSP

JSP - intro

Tomcat - intro

Mini aplikacja oparta o JSP

Wielowątkowość a aplikacje WEB

Notatki

Spring Web MVC - Thymeleaf

Thymeleaf - intro

Thymeleaf - konfiguracja

Thymeleaf - kontrolery - metody POST, GET, PUT, DELETE

Thymeleaf - obsługa błędów - @ControllerAdvice

Wdrożenie aplikacji i podsumowanie

Notatki

Test

Projekt!


Warsztat #20 - SPRING BOOT

Z tego warsztatu dowiemy się, jak można uprościć konfigurację aplikacji opartej o framework Spring i od razu zabrać się do pracy! Wrócimy również do tematu testów, poruszymy zagadnienia historii zmian w Spring oraz Spring Boot, a do tego poruszymy tematykę Spring Security.

Spring Boot

Czym jest Spring Boot

Konfiguracja Spring Boot

Pliki konfiguracyjne

Autokonfiguracja

Notatki

Spring Boot Starters

Czym są Spring Boot Starters

Przykład walidacji danych

Czym jest regex

Notatki

Spring Boot Tests

Testy jednostkowe

@WebMvcTest

@DataJpaTest

@SpringBootTest

Notatki

Spring Security

Podstawy Spring Security

Jak stworzyć ekran logowania

Notatki

Spring Boot versioning

Wersjonowanie Springa

Wersje Spring vs Spring Boot

Notatki

Test

Projekt!


Warsztat #21 - SPRING REST

Z tego warsztatu dowiemy się, w jaki sposób wystawiać i konsumować REST API przy wykorzystaniu frameworka Spring. Opowiemy również o sposobach na dokumentowanie swojego API, o możliwościach testowania API oraz o tym, jak podejść do tematu security w odniesieniu do REST API.

REST API

Czym jest REST API

Metody HTTP

Zalety stosowania REST API

Notatki

Spring i REST API

Mapowanie żądań

Budujemy własne REST API

Klasa ResponseEntity

HTTP Error Handling

Notatki

Konsumujemy REST API

Czym jest Java Client

Przykład Java Client

Notatki

OpenApi vs Swagger

Czym jest OpenApi

Czym jest Swagger

Jak dokumentować swoje API

Jak Java Client może wykorzystać Swagger Contract

Notatki

REST API vs Testy

Jednostkowe testy controllerów

@WebMvcTest

Czym jest RestAssured

Czym jest WireMock

Notatki

REST API vs Security

Jak podejść do Security w REST API

Przykład z Cookies

Security vs REST API vs Testy

Security vs REST API vs Sesje

Security vs REST API vs SwaggerUI

Notatki

Test

Projekt!


Warsztat #22 - HOW TO DEPLOY

Z tego warsztatu dowiemy się jak napisaną aplikację w Java oraz Spring można umieścić w Internecie. Poruszymy również zagadnienia konteneryzacji, a w związku z tym porozmawiamy o Docker oraz Docker Compose. W ramach tego warsztatu materiały zostały opracowane tylko w formie tekstowej.

Konteneryzacja

O co w tym chodzi?

Czym jest Docker?

Czym jest DockerHub?

Instalacja Docker

Praca z obrazami i kontenerami

Dockerfile

Docker Compose

Uruchamiamy własną aplikację na Docker

Notatki

Praca w chmurze

O co w tym chodzi?

Czym jest AWS?

Krótko o usługach AWS

Tworzymy własną bazę danych w RDS

Uruchamiamy aplikację Spring Boot w ECS

Notatki

Co dalej?

Udało Ci się dojść do końca programu, co dalej?


Wróć do strony głównej Zajavka