Nowoczesna architektura aplikacji web oparta o Node.js - Microservices, REST, noSQL

Kod: arch-ms-modern-Node
Kategoria: Microservices
Forma: 20% wykłady / 80% warsztaty
Czas trwania: 3-4 dni
Grupa docelowa: developerzy
architekci
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Poznaj NodeJS w następujących kontekstach.

  • Architektura: jak stworzyć graf obiektów w aplikacji? Jak rozkładać odpowiedzialności w systemie kiedy aplikacja rośnie?
  • Testowanie: jak testować aplikację na poziomie testów jednostkowych i komponentowych? Czy musimy hackować mechanizm importów/require aby dało się pisać testy? Jak pisać czysty i testowalny kod?
  • NoSQL: Jak zintegrować Node.js z MongoDB i wykonywać operacje CRUD, sortowanie, stronicowanie czy wyszukiwanie pełnotekstowe?
  • REST: Co tak naprawdę oznaczają słowa Representational, State i Transfer i czym się to różni od RPC? Co jeżeli potraktowaliśmy HTML jako media type w naszym API?
  • Szablony do widoków: Jak wynieść logikę z silnika szablonów i zbudować zaawansowane modele widoku np. replikujące stronicowanie wyników w stylu Google search?
  • Język JavaScript: które części języka są szczególnie ważne w kontekście aplikacji Node.js? Jak uwolnić się od programowania z this, new i klasami?
  • Asynchroniczność: jak okiełznać kod asynchroniczny na backendzie i które abstrakcje się do tego najlepiej nadają?
  • Mikrousługi: Jak zintegrować zewnętrzne usługi z użyciem wzorca Backend For Frontend? Jakie odpowiedzialności wynieść z kodu aplikacji i przerzucić na infrastrukturę typu PaaS?
  • Bezpieczeństwo: Jak walidować dane od użytkownika? Jak przekazywać bezstanowe tokeny JWT pomiędzy usługami? Jak zaimplementować tradycyjne logowanie z ciasteczkami?

Wyróżniki szkolenia

  • Pokazuje aplikacje Node.js w szerszym kontekście
  • Kładzie nacisk na czysty kod i architekturę, a nie na API frameworków i bibliotek
  • Prezentuje rozwiązania na bazie których można budować rzeczywiste aplikacje
  • Obala mity i pokazuje jak usuwać sztuczną złożoność

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. JavaScript w kontekście Node.js
    1. Co siedzi pod maską klas i prototypów - zaawansowany model koncepcyjny
    2. Thisless programming - bardziej przewidywalny kod, niezależny od kontekstu wywołania
    3. Pętla zdarzeń, kolejka tasków, stos wywołań i API środowiska uruchomieniowego
    4. 4 podstawowe problemy z callbackami
    5. Refactoring z callbacków na promisy
    6. Synchronicznie wyglądający kod asynchroniczny z async/await
  2. Architektura
    1. Rozkładanie odpowiedzialności w systemie
    2. Dependency Injection jako alternatywa dla sztywnych zależności
    3. Routing
    4. Middleware - cross cutting concerns
    5. Obsługą błędów
    6. Kontrolery
    7. Serwisy
    8. Repozytoria
    9. Event Sourcing jako alternatywa dla CRUD: zdarzenia, komendy i agregaty (dla bardziej zaawansowanych grup)
  3. Testowanie
    1. Mocha.js
    2. Testy jednostkowe z zamiennikami testowymi (test doubles)
    3. Testy asynchroniczne
    4. Testy komponentowe z supertest
    5. Testowalny kod vs monkey patching
  4. REST
    1. Representational State Transfer vs Remote Procedure Call
    2. Content Negotiation
    3. Zasoby kolekcji
    4. Stronicowanie, sortowanie
    5. Hipermedia
    6. HTML jako media type dla API
    7. Logic-less templates i zaawansowane modele widoku
    8. Dodatkowa semantyka: schema.org
  5. Node.js + MongoDB
    1. Create, Read, Update, Delete
    2. Wyszukiwanie pełnotekstowe
    3. Tworzenie raportu z aggregate framework
  6. Mikrousługi
    1. Obsługa konfiguracji w stylu 12factor
    2. Deployment na Heroku jako weryfikacja higieny wdrożeniowej aplikacji
    3. Kompozycja API w postaci wzorca Backend For Frontend
    4. Edge Side Include w Node.js
    5. Wynoszenie odpowiedzialności infrastrukturalnych poza kod aplikacji
  7. Bezpieczeństwo
    1. Walidacja danych
    2. Przekazywanie bezstanowych tokenów JWT pomiędzy usługami
    3. Tradycyjna obsługa logowania i sesji z ciasteczkami oraz SessionID
    4. Ustawianie nagłówków związanych z bezpieczeństwem (helmet)
    5. Hashowanie haseł z bcrypt
  8. Automatyzacja
    1. Zarządzanie zależnościami w npm
    2. npm jako narzędzie do budowania
    3. watch mode (nodemon)
    4. Odpalanie testów i pokrycie kodu testami (nyc)
    5. Formatowanie kodu (prettier)
    6. Precommit hooks (husky)
    7. Audytowanie bezpieczeństwa bibliotek (auditjs)
    8. Odpalanie aplikacji w trybie deweloperskim z poziomu Dockera


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Wyrażam zgodę na przetwarzania danych osobowych zgodnie z ustawą o ochronie danych osobowych w związku z wysłaniem zapytania przez formularz kontaktowy.

Podanie danych jest dobrowolne ale niezbędne do przetworzenia zapytania. Zastałem/am poinformowany/na, że przysługuje mi prawo dostępu do swoich danych, możliwości ich poprawienia, żądania zaprzestania ich przetwarzania.

Administratorem danych osobowych jest Bottega IT Minds, ul. Jana Sawy 2, 20-632 Lublin.


Klauzula informacyjna