Program szkolenia: JavaScript Craftsmanship

Podobne dokumenty
Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Techniki efektywnego testowania kodu dla programistów Java (Spock

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Zaawansowane programowanie w języku C++

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Szkolenie wycofane z oferty

Program szkolenia: REST i Microservices w PHP

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Web Performance Optimisation - szybsze strony internetowe

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Program szkolenia: Symfony, nowoczesny framework PHP

Aplikacje webowe z wykorzystaniem Node.js oraz Express

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

PRZEWODNIK PO PRZEDMIOCIE

REACT NATIVE. Anna Maziejuk Kamil Jankowski

Program szkolenia: Zaawansowane programowanie w C++

Aplikacje Internetowe

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Architektura mikroserwisów na platformie Spring IO

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.

JavaScript : programowanie zaawansowane / Tomasz "Comandeer" Jakut. Gliwice, cop Spis treści

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, Bydgoszcz

Wzorce architektoniczne

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Java Persistence API - zagadnienia zaawansowane

Piotr Bubacz Cloud Computing

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Warszawa, Kategorie analizy frameworków GUI

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

SOA Web Services in Java

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Exulto Software House

Korporacyjna Magistrala Usług na przykładzie Mule ESB

PRZEWODNIK PO PRZEDMIOCIE

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Historia modeli programowania

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Receptury - niezbędnik projektanta i architekta

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Program szkolenia: Jenkins - Continuous Integration

Podstawy programowania III WYKŁAD 4

Testowanie oprogramowania

Narzędzia CASE dla.net. Łukasz Popiel

Aplikacje Internetowe

Modelowanie procesów biznesowych, przepływu pracy i wdrażanie aplikacji w oparciu o Jboss jbpm lub Activiti

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Program szkolenia: Wzorce projektowe w C++

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Spis treści. O autorze 13 Przedmowa 15 Wprowadzenie 17

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

JavaScript Dokładnie, od Podstaw Szkolenie dla webdeveloperów, freelancerów, webdesignerów

Liczba godzin. N (nauczyciel) studia niestacjonarne

Projekt: Mikro zaprogramowane na sukces!

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Automatyzacja testów aplikacji webowych w Selenium podstawy. Natalia Krawczyk

Praca z kodem legacy : strategie, naprawa błędów, refaktoryzacja oraz

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Wykład 7. Projektowanie kodu oprogramowania

Programowanie Komponentowe WebAPI

Automatyzacja bez nadmiernego bólu. Piotr Januszek

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Ciągłe dostarczanie oprogramowania : kompletny przewodnik / Eberhard Wolff. Gliwice, cop Spis treści

Testowanie oprogramowania. Piotr Ciskowski

Android tworzenie aplikacji mobilnych

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Fuzzing OWASP The OWASP Foundation Piotr Łaskawiec J2EE Developer/Pentester

Patryk Jar Meet.js, Gdańsk 11 marca 2013 r. MODULARNY JAVASCRIPT

Załącznik nr 1 do zapytania ofertowego nr 1/POKL/2015

Automatyzacja Testowania w WEB 2.0

Programowanie zespołowe

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Programowanie komponentowe 5

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Bezpieczeństwo systemów komputerowych

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Analiza i projektowanie aplikacji Java

OFERTA SZKOLENIOWA PROGRESS SOFTWARE

Transkrypt:

Program szkolenia: JavaScript Craftsmanship Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: JavaScript Craftsmanship Craft-practices-js-craft Craftsmanship developerzy architekci 4 dni 20% wykład / 80% warsztat "Not only working JavaScript code, but also well-crafted JavaScript code" Szkolenie przeznaczone dla programistów i projektantów pragnących poszerzyć swoje kompetencje w zakresie profesjonalnych technik zwiększających jakość kodu JavaScript. Jakie problemy adresuje to szkolenie? 1) Frameworki do testowania Problem: nie nadążamy z nauką ciągle zmieniających się frameworków do testowania Czego się nauczysz? Budujemy własny framework do testowania w 50 linijkach kodu aby zrozumieć esencję działania tego typu narzędzi 2) Testowanie jednostkowe istniejącego kodu UI Problem: testowanie komponentów UI zajmuje dużo czasu i nikt tego nie robi Czego się nauczysz? Dodawać tzw. snapshot tests do istniejących komponentów 3) TDD kodu biblioteki Problem: chcesz nauczyć się jak robić TDD nietrywialnej biblioteki do swojego kolejnego projektu open source Czego się nauczysz? Projektować testami własną bibliotekę na przykładzie narzędzia do budowania Virtual DOM. Przy okazji nauki TDD poznasz też co siedzi pod maską nowoczesnych bibliotek tj. React. Strona: 1/6

4) TDD dla kodu UI Problem: chcesz robić TDD dla rzeczywistych komponentów UI Czego się nauczysz? Projektować testami nowy komponent Reactowy, który ma stan oraz obsługuje asynchroniczne operacje 5) TDD API backendowego Problem: chcesz robić TDD dla API w Node.js, ale nie wiesz jak rozłożyć odpowiedzialności pomiędzy modułami Czego się nauczysz? Projektować testami API, które zależy od bazy danych oraz posiada kontrolery, serwisy i repozytoria 6) Refaktoring logiki biznesowej Problem: proces refaktoryzacji jest losowy i nie wiesz od czego zacząć Czego się nauczysz? Powtarzalnych reguł refaktoryzacji logiki biznesowej z kodu proceduralnego na obiektowy i funkcyjny 7) Refaktoring kodu UI Problem: komponenty UI robią się coraz większe, a konwencje modularnego CSS coraz trudniejsze do przestrzegania Czego się nauczysz? Dzielić komponenty UI na mniejsze fragmenty oraz odkryjesz wady i zalety podejścia CSS-in-JS 8) Debugging Problem: dostajesz raporty o błędach w aplikacji po stronie klienta Czego się nauczysz? Debugować błędy logiczne, wycieki pamięci oraz problemy sieciowe z użyciem Chrome Dev Tools 9) Wydajność Problem: przy rosnącej ilości kodu JS po stronie przeglądarki i dużej popularności aplikacji typu Single Page App klasyczne techniki optymalizacji Webowej nie wystarczą Czego się nauczysz? Optymalizować czas ładowania oraz renderowania w aplikacji typu SPA 10) Styl programowania Strona: 2/6

Problem: brakuje ci rzeczywistych przykładów pokazujących różnice w programowaniu obiektowym i funkcyjnym Czego się nauczysz? Rozwiązywać te same problemy w podejściu obiektowym oraz funkcyjnym 11) Formatowanie kodu Problem: każda osoba w zespole formatuje kod według swoich lokalnych ustawień, powodując niepotrzebne konflikty w systemie kontroli wersji Czego się nauczysz? automatycznie formatować kod w jednolity sposób 12) Standardy kodowania Problem: zespół nie przestrzega standardów kodowania, które zostały wcześniej ustalone Czego się nauczysz? Identyfikować niechciane wzorce w kodzie z użyciem lintera oraz rozszerzać go o własne reguły Wymagania do szkolenia: znajomość JavaScript podstawy biblioteki React (możliwość dołożenia 3h wstępu w razie braku znajomości) Zalety szkolenia: przykłady zbliżone do tych spotykanych w pracy (np. TDD komponentów UI, API backendowego a nie tylko proste operacje matematyczne) ćwiczenia tłumaczące jak działa warstwa abstrakcji poniżej tego co Web Developer robi na co dzień (Virtual DOM pod maską, własny framework do testów) przekrojowe podejście do zwiększania jakości kodu: od formatowania i standardów kodowania, przez testy, TDD, refaktoring, debugowanie aż po style programowania w JS Strona: 3/6

Szczegółowy program: 1. Frameworki do testowania 1.1. jest, mocha, tape 1.2. zrób to sam: framework do testowania w 50 linijkach 1.3. esencja narzędzi do testowania 2. Projektowanie testami/tdd kodu biblioteki 2.1. zrób to sam: TDD własnego Reacta 2.2. koncepcja Virtual DOM 2.3. testowanie DOM z jsdom 3. Projektowanie testami/tdd API backendowego w Node.js 3.1. spiking 3.2. testy E2E z supertest 3.3. testy jednostkowe i integracyjne 3.4. outside-in TDD 3.5. rozdzielenie odpowiedzialności (kontrolery, serwisy, repozytoria) 3.6. testy asynchroniczne 3.7. express.js i MongoDB w kontekście TDD 4. Testowanie istniejącego kodu UI 4.1. testowanie komponentów Reaktowych z Jest i Enzyme 4.2. snapshot testing 4.3. testowanie jednostkowe vs testowanie integracyjne 5. Projektowanie testami/tdd nowego komponentu UI 5.1. spike dla komponentów prezentacyjnych 5.2. TDD komponentów prezentacyjnych Strona: 4/6

5.3. spike dla kontenera logiki 5.4. TDD dla kontenera logiki 5.5. obsługa synchronicznych i asynchronicznych zależności (localstorage, HTTP API, generator liczb losowych) 6. Refaktoring logiki biznesowej 6.1. text-based approval testing 6.2. dodawanie testów do istniejącego kodu 6.3. identyfikowanie szwów w kodzie odziedziczonym 6.4. przejście z kodu imperatywnego na obiektowy 6.5. przejście z kodu obiektowego na funkcyjny 7. Refaktoring kodu UI 7.1. usuwanie duplikacji w komponentach 7.2. rozbijanie komponentów na mniejsze 7.3. zwiększanie testowalności kodu UI bez konieczności nadpisywania importów 7.4. eksperymenty z CSS-in-JS (styled-components) 8. Debugowanie 8.1. debugowanie błędów logicznych z użyciem source maps 8.2. debugowanie wycieków pamięci 8.3. debugowanie problemów z czasem ładowania 8.4. debugowanie problemów z renderowaniem (w kontekście React) 9. OO vs FP 9.1. porównanie logiki biznesowej w stylu OO i FP 9.2. funkcyjny UI: od komponentów do funkcji i scentralizowanego stanu 9.3. testowalność w Elm architecture 10. Formatowanie kodu oraz standardy kodowania 10.1. formatowanie z narzędziem prettier Strona: 5/6

10.2. integracja prettier ze skryptami npm oraz z IDE/edytorem tekstu 10.3. sprawdzanie standardów kodowania z ESLint 10.4. integracja ESLint ze skryptami npm oraz z IDE/edytorem tekstu 10.5. połączenie prettier z ESLint 10.6. odpalanie ESLint oraz prettier z poziomu precommit hooks 10.7. tworzenie własnych reguł ESLint Strona: 6/6