Wzorce projektowe w JavaScript

Kod: arch-patterns
Kategoria: Architektura
Forma: 30% wykłady / 70% warsztaty
Czas trwania: 3 dni
Grupa docelowa: developerzy
architekci
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

We're going to implement two separate turn-based board games while heavily using Design Patterns.

For each of listed below patterns we will:

  • introduce specific pattern
  • show, analyze and discuss an example of enterprise usage
  • use it in implementations of both of our board games

Wyróżniki szkolenia

  • Ciekawy i inspirujący projekt warsztatowy - gra wieloosobowa (wciąż z analogią do aplikacji biznesowych)
  • Nieksiążkowe, praktyczne zastosowanie wzorców projektowych
  • Nacisk na testowalność kodu

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. Introduction:
    1. What are Design Patterns
    2. Why you don't have neither to know nor to use Design Patterns
    3. Consequences and pitfalls of knowledge of Design Patterns
    4. Why would you give Design Patterns a chance?
  2. Design Patterns in practice:
    1. Command
      1. encapsulation of business processes
      2. serialisation of performed operations
    2. Strategy
      1. encapsulation of business logic
    3. Abstract Factory
      1. coherent way to create both: business objects & strategies
    4. Decorator
      1. how to model incremental business logic
      2. wrappers
    5. Facade
      1. hiding complex logic under elegant API
    6. Proxy
      1. lazy loading
      2. implementation of additional logic
    7. Observer (Event Emitter)
      1. loose coupling
    8. State
      1. implementation of business life cycle
    9. Chain of Responsibility
      1. processing commands by multiple handlers
      2. implementation of conditional algorithms
      3. plugins implementation
    10. Memento
      1. restoring object previous states
      2. implementation of undo/redo
      3. recreation of object based on executed commands
    11. Specification
      1. simplification of complex decision logic
    12. Iterator
      1. mixed with Observer and Chain of Responsibility, in order to unify processing of both: sync and async operations


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.

  • Looking for the Holy Grail of Mobile Web Performance
    KATEGORIE: JavaScript

    W świecie mobilnym Istnieje przeświadczenie, że jedynie aplikacje natywne są w stanie sprostać oczekiwaniom użytkowników. Wraz z pojawieniem się Progresywnych Aplikacji Webowych, które mają przenieść na platformę webową wiele cech zarezerwowanych dotąd tylko dla rozwiązań natywnych, oczekiwania dotyczące wydajności są silniejsze niż kiedykolwiek wcześniej. Czy Web jest w stanie im sprostać?

    Autor Bottega:

    Adam Bar

  • JSON taki albo owaki... czyli kontrolowanie struktur z JSON Schema
    KATEGORIE: JavaScript

    Slides

    JSON jest najpopularniejszym formatem definiowania/wymiany danych w sieci. Jest elastyczny niczym XML oraz zwięzły, jak to tylko możliwe. Nie mniej, rozwiązłość strukturalna JSONów powoduje utratę kontroli nad tym, jakie dane są przechowywane. Jeśli chcesz kontrolować, co może być przechowywane w formacie JSON, zerknijmy na JSON Schema.

    Autor Bottega:

    Tomasz Ducin

  • 5 Architectures of Asynchronous JavaScript
    KATEGORIE: Architektura

    Slides

    In this talk we'll discuss 5 alternative approaches to handle async operations: callbacks, events, promises, coroutines and reactive streams. None of them is either legacy or a silver bullet - a good dev needs to pick the right tool for the job.

    However, in order to understand them, we must step back to fundamentals all these rely on: the mechanics of event loop and run to completion rule, as well as learn to distinguish between sync and async flow. Then we proceed to design patterns built on top of each of the 5 approaches, discussing their strengths and limitations. Funfacts, such as famous Promise.race() included!

    Come and listen!

  • Enterprise Interface Architecture: JSON Schema
    KATEGORIE: Architektura

    Slides

    JSON is the most widely used data exchange/definition language in the web. It's as flexible as XML and as concise as possible. However, the structure flexibility of JSONs comes with a price of losing control of what data is being stored. If you want to have your JSON under control, let's dive into JSON Schema. It made my work easier, hope it makes yours too!

  • Enterprise Interface Architecture: Seeking Scalable Design
    KATEGORIE: Architektura

    Slides

    Single-Page App architecture is still being adapted into huge enterprise systems. Each design mistake costs a lot and is very difficult to refactor, if possible at all. The good and bad parts of growing JavaScript code.

  • Backend-less Development Revisited
    KATEGORIE: Architektura

    Slides

    “It’s obvious that SPA interfaces rely on RESTful APIs”. But does it have to be like this always? Tight-coupling between interfaces and APIs result in great development issues. Backend-less development is an emerging approach of decoupling the two sides, enabling them to be developed independently.

    The costs and the benefits of mocking the entire API. The three possible architectural approaches in doing so. Simulating business logic in mocks using plain JavaScript and JSONs. Mock engine Examples in Angular.js and sinon.js. The technical and business aspects of separating frontend and backend - these are the topics I will cover, basing on my banking software development experience.

    Mock your API and make your frontend truly independent!

Zapytaj o 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