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.
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.