Kurs Development i Architektura

Kurs Development i architektura przeznaczony jest dla programistów, którzy chcą uporządkować wiedzę o wytwarzaniu oprogramowania. Znajdziesz tutaj zagadnienia związane z technikami wersjonowania kodu, administracją serwera i deploymentem oraz architekturą oprogramowania od monolitu po mikroserwisy.
Po przerobieniu tego kursu będziesz rozumiał cały cykl wytwarzania oprogramowania, będziesz potrafił wdrożyć swoją aplikację korzystając z serwerów oferowanych w ramach chmury AWS i będziesz świadomie podejmował decyzję o tym, czy tworzyć aplikację w modelu monolitycznym, czy rozproszonym.
W kursie rozwijana jest aplikacja, której kod jest dostępny na GitHubie. Po ukończeniu kursu możesz dołączyć do projektu i zaimplementować w nim nowe funkcjonalności zgodnie z opisanymi wymaganiami.
Zakres kursu
Wytwarzanie oprogramowania
- Git - Podstawy
 - Git w IntelliJ IDEA
 - Conventional Commits
 - Semantic Versioning
 - Zarządzanie gałęziami
 - Zdalne repozytoria
 - Zarządzanie projektem i definiowanie zadań
 - Planowanie wydań
 - Trunk based development
 - GitHub Flow
 - Branch protection
 - Automatyzacja wersjonowania
 
Administracja serwerem
- Wprowadzenie
 - Konfiguracja serwera VPS w AWS
 - Jak działa SSH
 - Połączenie SSH
 - Własny klucz SSH
 - Konfiguracja serwera
 
Rozwój aplikacji
- Tworzymy projekt
 - Testy manualne
 - Testy jednostkowe
 - Testy integracyjne
 - Testy z prawdziwą bazą danych
 - Liquibase
 - Dane testowe
 - Profil deweloperski
 - Testcontainers
 - Docker Compose Spring Support
 - Budowanie obrazu
 - Publikacja obrazu
 
Deployment
- Lokalny deployment
 - Kopiowanie plików na serwer
 - Uruchamianie aplikacji na serwerze
 - OpenAPI i Swagger
 - Kolejne wydanie aplikacji
 
DevOps
- Wprowadzenie
 - Checkstyle
 - PMD
 - SpotBugs
 - SonarLint
 - SonarQube
 - GitHub Actions
 
Programowanie zorientowane na dane
Programowanie zorientowane obiektowo
Architektura warstwowa
Architektura hexagonalna
Monolit
Modularny monolit
Mikroserwisy