Budowa dużych systemów IT

4400.0 PLN 4180.0 PLN

Budowa dużych systemów IT

13.01.2021
Online
3 dni
Programista/Architekt

Czego się nauczysz

  • Jak napisać logikę biznesową w sposób obiektowy i ściśle hermetyczny (!) gdzie żaden obiekt nie udostępnia żadnych danych innym obiektom (żadna klasa nie ma ani jednego gettera/settera, wszystkie pola są uprywatnione!)
  • Jak rozszerzyć granice transakcji tak, aby w całkowicie bezstanowym backendzie wykrywać równoległe modyfikacje danych (stale data) pomiędzy wywołaniami kilku web service'ów
  • Różnego rodzaju mechanizmy lockowania obiektów w transakcjach w tym locki typu coarse grained lock (!)
  • Jak zaprojektować obiekty logiki biznesowej (value objects) tak, aby kompletnie uniezależnić je od reprezentacji bazodanowej, nawet jeżeli w bazie danych takie obiekty reprezentowany są na kilka różnych sposobów (wsparcia dla tej funkcjonalności na próżno będziesz szukał w JPA)
  • Unikalny mechanizm monitorowania występowania błędów biznesowych (!), pozwalający na ich naprawę zanim użytkownik zdąży te błędy nawet zgłosić
  • Jak zaprojektować system tak, żeby testy nie były zależne od daty i czasu ich uruchomienia (jest to często spotykany problem, że kod testów jest zależny od czasu ich wykonania przez co testy przestają działać np. w nowym roku)
  • Wiele, wiele innych ciekawostek i gotowych rozwiązań dla problemów powszechnie spotykanych w systemach dla back-office'u

Korzyści ze szkolenia dla Ciebie

Budowa dużych systemów IT, na przykładzie największego systemu księgowego w Polsce
Dla kogo jest to szkolenie?

Szkolenie ma charakter praktyczny i przedstawia architekturę umożliwiającą zbudowanie dużych i skomplikowanych systemów IT dla back-office'u. Taka właśnie architektura została m.in. zastosowana w największym systemie księgowym w Polsce, wdrożonym w 2020 roku. System został stworzony od podstaw i w całości w Javie.

Oto kilka cech tego systemu najlepiej świadczących o jego rozmiarach:

  • ​łączna wartość księgowań w roku: 330 miliardów PLN
  • liczba użytkowników / dzień: 30 tysięcy
  • rozmiar bazy danych: 13 TB
  • liczba rekordów w głównej tabeli księgowej: 8 miliardów

To nie jest szkolenie teoretyczne z serii "wzorce projektowe" albo "domain driven design", po którym developerzy i architekci wciąż nie mają gotowego przepisu na stworzenie systemu.

Główną cechą przedstawianej architektury jest prostota gwarantująca:

  • minimalną barierę wejścia nowych developerów w system oparty o tę architekturę
  • niezależność zespołu developerskiego od primadonna developerów i rotacji pracowników w zespole developerskim
  • łatwość utrzymania systemu

Trener

Krzysztof Borkowski

Java guru-level developer, architekt, freelancer; od wielu lat regularnie angażowany przez wiodące na arenie międzynarodowej firmy IT do budowy największych systemów IT na świecie, w tym największych i krytycznych dla Polski (m.in. Systemu Wspomagania Dowodzenia w Policji); architekt i lider zespołu w projekcie wytworzenie największego systemu księgowego w Polsce; wykładowca uczelni wyższej.

Program

  • Wprowadzenie

  • Zapoznanie uczestników z tematyką szkolenia

  • Cele stawiane projektowanej architekturze oprogramowania

  • Techniki programowania i narzędzia, dzięki którym projektowana architektura oprogramowania może zrealizować stawiane przed nią cele

  • Technika programowania: fail fast - dlaczego jest bardziej wartościowa niż pisanie testów automatycznych?

  • Technika programowania: oznaczanie wyjątków unikalnymi numerami - dwie korzyści, które rewolucjonizują bugfixing na produkcji

  • Jak napisać logikę biznesową w sposób obiektowy i ściśle hermetyczny, gdzie żaden obiekt nie udostępnia żadnych danych innym obiektom (żadna klasa nie ma ani jednego nieprywatnego gettera/settera, wszystkie pola są uprywatnione)

  • Jak zaprojektować obiekty logiki biznesowej typu value object tak, aby kompletnie uniezależnić je od reprezentacji bazodanowej, nawet jeżeli w bazie danych takie obiekty reprezentowane są na kilka różnych sposobów (np. na różnej liczbie kolumn) - funkcjonalność nie wspierana przez JPA?

  • Jakiego typu identyfikator powinny mieć encje? Kiedy i jak powinien być im nadawany?

  • Jak wygląda budowa metody obsługującej wywołanie web service'u w architekturze opartej o Rich Domain Model? Jak w spójny sposób zapewnić mapowanie błędów wykrywanych w warstwie back-endu na kody HTTP?

  • Co to jest lock optymistyczny? Jakie wsparcie daje w tym obszarze JPA?

  • Jak rozszerzyć mechanizm locka optymistycznego na wiele wywołań web service'ów i wciąż zachować bezstanowość warstwy backendu?

  • Co to jest correlation id? Przedstawienie mechanizmu, który w oparciu o correlation id rewolucjonizuje bugfixing na produkcji i uniezależnia development od administratorów utrzymania

  • Jak zaprojektować system tak, aby testy nie były zależne od daty i czasu ich uruchomienia?

  • Konfiguracja aplikacji - jak ją zaimplementować?

  • Co to jest Coarse Grained Lock i jak go zaimplementować?

Podobne szkolenia

Nie ma tu szkolenia dla Ciebie?
Napisz czego szukasz!