Developer’s Bootcamp
Dla kogo
- Dla osób, które przekwalifikowały się na stanowisko programisty
- Dla absolwentów wieczorowych intensywnych kursów programowania
- Dla testerów
Wymagane umiejętności
- Podstawowa umiejętność programowania na poziomie wieczorowych intensywnych kursów programowania
- Podstawowa znajomość języka Java lub C#, biblioteki standardowej oraz dedykowanego IDE
- Język: Szkolenie zostało przygotowane dla języków Java oraz C#. Istnieje możliwość przygotowania szkolenia dla innego języka programowania
Podstawowy program
Moduł. 1
Zbieranie wymagań i współpraca z biznesem
Moduł. 2
Techniki pracy z kodem
Moduł. 3
Obiektowość i wzorce projektowe
Moduł. 4
Podstawy architektury oprogramowania
Moduł. 5
Efektywne zarządzanie czasem
Szczegółowy program
Moduł. 1
Zbieranie wymagań i współpraca z biznesem
- Kim są Biznes oraz IT?
- Proces biznesowy i wymagania biznesowe?
- Jak pomysł biznesu przekształcany jest w funkcjonalność w systemie?
- Odkrywanie potrzeb biznesowych
- Konkretyzowanie wymagań i specyfikowanie funkcjonalności
- Spisywanie wymagań
- User Stories
- Use Cases
- Przykłady i Specification By Example
- Szablony dokumentów i wiki
- Jak to jest naprawdę? czyli model mieszany
- Kiedy? Jak? Gdzie? Wymagania stają się zadaniami dla deweloperów?
Moduł. 2
Techniki pracy z kodem
- Jakość kodu
- Metryka CC
- Code Smells
- Przekształcenia refaktoryzacyjne
- Czytelność kodu
- Zmienne
- Metody
- Klasy
- Pakiety
- Zasada pojedynczej odpowiedzialności
- Jak czytać czyjś kod?
- Iteracyjny proces rozbudowywania kodu
- Napisz tak, aby działało
- Popraw nazewnictwo
- Podziel na metody
- Wyodrębnij klasy
- Wprowadź wzorzec projektowy
- Rozbuduj architekturę
- Poszukiwanie błędów
- Praca z debuggerem
- Testowanie jednostkowe
- Continuous Integration
- Dokumentowanie kodu
- Diagramy klas
- Diagramy sekwencji i obiektów
- Free form diagrams
- Jakie narzędzia
- Enterprise Architect / StarUML
- UMLet jako wtyczka do Eclipse
- PlantText.com
- Draw.io / MS Visio
- Kartka, tablica > zdjęcie > wiki
- Jak się mają diagramy do kodu?
Moduł. 3
Obiektowość i wzorce projektowe
- Silne zależności w kodzie
- S.O.L.I.D
- Enkaspulacja
- Kompozycja vs. Dziedziczenie
- Do czego służą interfejsy?
- Podstawy DDD i analizy obiektowej
- Najczęściej używane wzorce projektowe
- Jak widzieć wzorce w kodzie
- Wzorce projektowe w bibliotece standardowej Java
- Wzorce ułatwiają komunikację pomiędzy programistami
Moduł. 4
Podstawy architektury oprogramowania
- Jak wygląda architektura?
- Na rysunku
- W kodzie
- Na dysku
- Czym są wzorce architektoniczne?
- Model warstwowy
- Podstawowe wzorce dla każdej z warstw
- Frameworki
- Frameworki to nie architektura
- Podejścia „frameworkless”
- Wzorce architektoniczne dla każdej z warstw
- Warstwy i co poza tym?
- Nieco więcej o DDD
- Clean Architecture
- Microservices
- Event Sourcing
- Wizualizowanie i dokumentowanie architektury
- Wtyczka Architexa
- Metoda 4C
Moduł. 5
Efektywne zarządzanie czasem
- Dekomponowanie zadań
- Metoda karteczkowa
- Metoda mindmapowa
- Definiowanie konkretnych zadań, które można szybko wykonać
- Szacowanie zadań
- Metoda Story Points
- Metoda karteczkowa
- Metoda ze skalą
- Średnia ważona
- Planowanie pracy
- Pomodoro Technique