• TypeScript na warsztacie. Praktyczny przewodnik pisania efektywnego kodu

Dzięki tej książce Twoja nauka programowania w TypeScripcie przebiegnie w maksymalnie sprawny i efektywny sposób. Położono w niej nacisk na praktykę, a objaśnienia teoretyczne ograniczono do faktycznie ważnych i przydatnych zagadnień, które ułatwią ugruntowanie najlepszych podstaw programowania. W licznych ćwiczeniach pokazano, jak stosować kluczowe koncepcje w aplikacjach produkcyjnych, używanych w rzeczywistości. Każdy rozdział kończy się zadaniem do samodzielnego wykonania, opracowanym tak, by umożliwić wypróbowanie poznanych treści w praktyce. Jeśli chcesz pisać kod w TypeScripcie na profesjonalnym poziomie, a równocześnie odczuwasz onieśmielenie na myśl o nauce nowego języka, dzięki temu podręcznikowi szybko osiągniesz swój cel!

Podtytuł TypeScript na warsztacie. Praktyczny przewodnik pisania efektywnego kodu
Tytuł oryginalny The TypeScript Workshop: A practical guide to confident, effective TypeScript programming
Autor Ben Grynhaus, Jordan Hudgens, Rayon Hunte, Matt Morgan, Wekoslav Stefanovski
Tłumaczenie Lech Lachowski
Rok wydania 2022
Oprawa Miękka
Format 165x235
Stron 528
Wydawnictwo Helion
99.00
szt. Do przechowalni
Wysyłka w ciągu 24 godziny
ISBN 978-83-283-8951-9

TypeScript szybko stał się ulubionym językiem programowania zawodowców. Pozwala na tworzenie czystego, efektywnego i łatwego w utrzymaniu kodu, a także zastosowanie zaawansowanych konstrukcji programistycznych. Co więcej, pracę w tym języku uprzyjemniają liczne frameworki i biblioteki, które pozwalają na sprawną budowę dojrzałych aplikacji. Jednak z punktu widzenia początkującego programisty TypeScript ma inną ogromną zaletę: jest świetnym punktem startu dla każdego, kto chce pisać czytelny, łatwy do zrozumienia i mniej podatny na błędy kod.

Dzięki tej książce Twoja nauka programowania w TypeScripcie przebiegnie w maksymalnie sprawny i efektywny sposób. Położono w niej nacisk na praktykę, a objaśnienia teoretyczne ograniczono do faktycznie ważnych i przydatnych zagadnień, które ułatwią ugruntowanie najlepszych podstaw programowania. W licznych ćwiczeniach pokazano, jak stosować kluczowe koncepcje w aplikacjach produkcyjnych, używanych w rzeczywistości. Każdy rozdział kończy się zadaniem do samodzielnego wykonania, opracowanym tak, by umożliwić wypróbowanie poznanych treści w praktyce. Jeśli chcesz pisać kod w TypeScripcie na profesjonalnym poziomie, a równocześnie odczuwasz onieśmielenie na myśl o nauce nowego języka, dzięki temu podręcznikowi szybko osiągniesz swój cel!

W książce między innymi:

- gruntowne podstawy języka TypeScript i pliki deklaracji
- funkcje, klasy i obiekty w TypeScripcie
- wstrzykiwanie zależności i zachowania asynchroniczne
- obietnice i programowanie asynchroniczne
- biblioteka React i jej zastosowanie

Spis treści książki
Wstęp

Rozdział 1. Podstawy TypeScriptu

Wprowadzenie
Ewolucja TypeScriptu
Cele projektowe TypeScriptu
Pierwsze kroki z TypeScriptem
Kompilator TypeScriptu
Konfigurowanie projektu TypeScriptu
Ćwiczenie 1.01. Użycie pliku tsconfig.json i pierwsze kroki z TypeScriptem
Typy i ich zastosowanie
TypeScript i funkcje
Ćwiczenie 1.02. Praca z funkcjami w TypeScripcie
TypeScript i obiekty
Ćwiczenie 1.03. Praca z obiektami
Typy proste
Ćwiczenie 1.04. Operator typeof
Łańcuchy znaków
Liczby
Typy logiczne (boolowskie)
Tablice
Krotki
Ćwiczenie 1.05. Stosowanie tablic i krotek do wydajnego sortowania obiektów
Typy wyliczeniowe
Typy any i unknown
Wartości null i undefined
Typ never
Typy funkcji
Tworzenie własnych typów
Ćwiczenie 1.06. Tworzenie funkcji kalkulatora
Zadanie 1.01. Tworzenie biblioteki do pracy z łańcuchami znaków
Podsumowanie
Rozdział 2. Pliki deklaracji

Wprowadzenie
Pliki deklaracji
Ćwiczenie 2.01. Tworzenie pliku deklaracji od podstaw
Wyjątki
Zewnętrzne biblioteki kodów
Biblioteka DefinitelyTyped
Analiza zewnętrznego pliku deklaracji
Ćwiczenie 2.02. Tworzenie typów z wykorzystaniem zewnętrznych bibliotek
Programistyczny przepływ pracy dla DefinitelyTyped
Ćwiczenie 2.03. Tworzenie aplikacji baseballowej karty składu
Zadanie 2.01. Tworzenie pliku deklaracji mapy cieplnej
Podsumowanie
Rozdział 3. Funkcje

Wprowadzenie
Funkcje w TypeScripcie
Ćwiczenie 3.01. Pierwsze kroki z funkcjami w TypeScripcie
Słowo kluczowe function
Parametry funkcji
Argument a parametr
Parametry opcjonalne
Parametry domyślne
Wiele argumentów
Parametry reszty
Destrukturyzacja typów zwracanych
Konstruktor funkcji
Ćwiczenie 3.02. Porównywanie tablic liczb
Wyrażenia funkcyjne
Funkcje strzałkowe
Inferencja typów
Ćwiczenie 3.03. Pisanie funkcji strzałkowych
Słowo kluczowe this
Ćwiczenie 3.04. Stosowanie this w obiekcie
Domknięcia i zakres
Ćwiczenie 3.05. Tworzenie metody wytwórczej zamówień z wykorzystaniem domknięć
Rozwijanie funkcji
Ćwiczenie 3.06. Refaktoryzacja do postaci funkcji rozwijanych
Programowanie funkcyjne
Organizowanie funkcji w obiekty i klasy
Ćwiczenie 3.07. Refaktoryzacja kodu JavaScript do TypeScriptu
Słowa kluczowe import, export i require
Ćwiczenie 3.08. Importowanie i eksportowanie
Zadanie 3.01. Budowanie systemu rezerwacji lotów z wykorzystaniem funkcji
Wykonywanie testów jednostkowych za pomocą ts-jest
Zadanie 3.02. Pisanie testów jednostkowych
Obsługa błędów
Podsumowanie
Rozdział 4. Klasy i obiekty

Wprowadzenie
Czym są klasy i obiekty?
Ćwiczenie 4.01. Budowanie pierwszej klasy
Rozszerzanie zachowania klasy za pomocą konstruktora
Słowo kluczowe this
Ćwiczenie 4.02. Definiowanie atrybutów klasy i uzyskiwanie do nich dostępu
Ćwiczenie 4.03. Integrowanie typów z klasami
Interfejsy TypeScriptu
Ćwiczenie 4.04. Budowanie interfejsu
Generowanie kodu HTML w metodach
Ćwiczenie 4.05. Generowanie i przeglądanie kodu HTML
Praca z wieloma klasami i obiektami
Ćwiczenie 4.06. Łączenie klas
Zadanie 4.01. Tworzenie modelu użytkownika za pomocą klas, obiektów i interfejsów
Podsumowanie
Rozdział 5. Interfejsy i dziedziczenie

Wprowadzenie
Interfejsy
Studium przypadku: pisanie pierwszego interfejsu
Ćwiczenie 5.01. Implementacja interfejsów
Ćwiczenie 5.02. Implementacja interfejsów - tworzenie prototypowej aplikacji blogowej
Ćwiczenie 5.03. Tworzenie interfejsów dla funkcji aktualizacji bazy danych użytkownika
Zadanie 5.01. Budowanie komponentu zarządzania użytkownikami za pomocą interfejsów
Dziedziczenie w TypeScripcie
Ćwiczenie 5.04. Tworzenie klasy bazowej i dwóch rozszerzonych klas potomnych
Ćwiczenie 5.05. Tworzenie klas bazowych i rozszerzonych przy użyciu dziedziczenia wielopoziomowego
Zadanie 5.02. Tworzenie prototypowej aplikacji internetowej dla salonu samochodowego przy użyciu dziedziczenia
Podsumowanie
Rozdział 6. Typy zaawansowane

Wprowadzenie
Aliasy typów
Ćwiczenie 6.01. Implementowanie aliasów typów
Literały typów
Ćwiczenie 6.02. Literały typów
Typy części wspólnej
Ćwiczenie 6.03. Tworzenie typów części wspólnej
Typy unii
Ćwiczenie 6.04. Aktualizowanie zapasów produktów za pomocą interfejsu API
Typy indeksowe
Ćwiczenie 6.05. Wyświetlanie komunikatów o błędach
Zadanie 6.01. Typ części wspólnej
Zadanie 6.02. Typ unii
Zadanie 6.03. Typ indeksowy
Podsumowanie
Rozdział 7. Dekoratory

Wprowadzenie
Refleksja
Konfigurowanie opcji kompilatora
Znaczenie dekoratorów
Problem zagadnień przekrojowych
Dekoratory i metody wytwórcze dekoratorów
Składnia dekoratorów
Metody wytwórcze dekoratorów
Dekoratory klas
Wstrzykiwanie właściwości
Ćwiczenie 7.01. Tworzenie prostej metody wytwórczej dekoratora klas
Rozszerzenie konstruktora
Ćwiczenie 7.02. Użycie dekoratora rozszerzeń konstruktora
Opakowywanie konstruktora
Ćwiczenie 7.03. Tworzenie dekoratora rejestrowania dla klasy
Dekoratory metod i akcesorów
Dekoratory funkcji instancji
Ćwiczenie 7.04. Tworzenie dekoratora, który oznacza funkcję jako wyliczalną
Dekoratory funkcji statycznych
Dekoratory opakowywania metod
Ćwiczenie 7.05. Tworzenie dekoratora rejestrowania dla metody
Zadanie 7.01. Tworzenie dekoratorów do liczenia wywołań
Stosowanie metadanych w dekoratorach
Obiekt Reflect
Ćwiczenie 7.06. Dodawanie metadanych do metod za pomocą dekoratorów
Dekoratory właściwości
Ćwiczenie 7.07. Tworzenie i stosowanie dekoratora właściwości
Dekoratory parametrów
Ćwiczenie 7.08. Tworzenie i stosowanie dekoratora parametrów
Zastosowanie wielu dekoratorów do pojedynczego elementu docelowego
Zadanie 7.02. Stosowanie dekoratorów w celu dodania zagadnień przekrojowych
Podsumowanie
Rozdział 8. Wstrzykiwanie zależności w TypeScripcie

Wprowadzenie
Wzorzec projektowy DI
DI we frameworku Angular
Ćwiczenie 8.01. Dodawanie przechwytywacza HttpInterceptor do aplikacji Angulara
DI we frameworku Nest.js
Biblioteka InversifyJS
Ćwiczenie 8.02. Tworzenie aplikacji "Witaj, świecie" z wykorzystaniem InversifyJS
Zadanie 8.01. Kalkulator oparty na DI
Podsumowanie
Rozdział 9. Typy sparametryzowane i warunkowe

Wprowadzenie
Typy sparametryzowane
Interfejsy sparametryzowane
Typy sparametryzowane
Klasy sparametryzowane
Ćwiczenie 9.01. Klasa sparametryzowana Set
Funkcje sparametryzowane
Ograniczenia typów sparametryzowanych
Ćwiczenie 9.02. Funkcja sparametryzowana memoize
Wartości domyślne typów sparametryzowanych
Typy warunkowe
Zadanie 9.01. Tworzenie typu DeepPartial
Podsumowanie
Rozdział 10. Pętle zdarzeń i zachowania asynchroniczne

Wprowadzenie
Podejście wielowątkowe
Wykonywanie asynchroniczne
Wykonywanie kodu JavaScript
Ćwiczenie 10.01. Układanie funkcji w stos
Przeglądarki i JavaScript
Zdarzenia w przeglądarce
Interfejsy API środowiska
Metoda setTimeout
Ćwiczenie 10.02. Korzystanie z setTimeout
AJAX (asynchroniczny JavaScript i XML)
Zadanie 10.01. Przeglądarka filmów wykorzystująca obiekt xhr i wywołania zwrotne
Obietnice
Ćwiczenie 10.03. Liczenie do 5
Czym są obietnice?
Ćwiczenie 10.04. Liczenie do 5 za pomocą obietnic
Zadanie 10.02. Przeglądarka filmów wykorzystująca API fetch i obietnice
Funkcjonalność async/await
Ćwiczenie 10.05. Liczenie do 5 z wykorzystaniem async i await
Zadanie 10.03. Przeglądarka filmów wykorzystująca API fetch i funkcjonalność async/await
Podsumowanie
Rozdział 11. Funkcje wyższego rzędu i wywołania zwrotne

Wprowadzenie
Wprowadzenie do funkcji HOC - przykłady
Funkcje wyższego rzędu
Ćwiczenie 11.01. Stosowanie funkcji wyższego rzędu do organizowania filtrowania danych i operowania na nich
Wywołania zwrotne
Pętla zdarzeń
Wywołania zwrotne w Node.js
Piekło wywołań zwrotnych
Unikanie piekła wywołań zwrotnych
Wyodrębnienie procedur obsługi wywołań zwrotnych do deklaracji funkcji na poziomie pliku
Łączenie wywołań zwrotnych w łańcuch
Obietnice
Funkcjonalność async/await
Zadanie 11.01. Funkcja wyższego rzędu pipe
Podsumowanie
Rozdział 12. Przewodnik po obietnicach w TypeScripcie

Wprowadzenie
Ewolucja i powody wprowadzenia obietnic
Anatomia obietnic
Wywołanie zwrotne obietnicy
Metody then i catch
Stan pending
Stan fulfilled
Stan rejected
Łączenie w łańcuch
Ćwiczenie 12.01. Łączenie w łańcuch obietnic
Metoda finally
Metoda Promise.all
Ćwiczenie 12.02. Rekurencyjna metoda Promise.all
Metoda Promise.allSettled
Ćwiczenie 12.03. Promise.allSettled
Metoda Promise.any
Metoda Promise.race
Ulepszanie obietnic za pomocą typów
Ćwiczenie 12.04. Renderowanie asynchroniczne
Biblioteki i natywne obietnice - zewnętrzne biblioteki, Q i Bluebird
Wypełnienia obietnic
Promisyfikacja
Funkcjonalność util.promisify frameworku Node.js
Asynchroniczny system plików
Metoda fs.readFile
Metoda fs.readFileSync
API obietnic biblioteki fs
Ćwiczenie 12.05. API obietnic biblioteki fs
Praca z bazami danych
Programowanie z wykorzystaniem API RESTful
Ćwiczenie 12.06. Implementowanie API RESTful wspieranego przez sqlite
Połączenie wszystkich elementów w celu zbudowania aplikacji korzystającej z obietnic
Zadanie 12.01. Budowanie aplikacji korzystającej z obietnic
Podsumowanie
Rozdział 13. Funkcjonalność async/await w TypeScripcie

Wprowadzenie
Ewolucja i powody wprowadzenia async/await
Funkcjonalność async/await w TypeScripcie
Ćwiczenie 13.01. Środowiska docelowe transpilacji
Wybór środowiska docelowego
Składnia
Słowo kluczowe async
Ćwiczenie 13.02. Słowo kluczowe async
Ćwiczenie 13.03. Rozwiązywanie funkcji async za pomocą then
Słowo kluczowe await
Ćwiczenie 13.04. Słowo kluczowe await
Ćwiczenie 13.05. Oczekiwanie na obietnicę
Lukier składniowy
Obsługa wyjątków
Ćwiczenie 13.06. Obsługa wyjątków
Funkcjonalność await najwyższego poziomu
Metody obiektu Promise
Ćwiczenie 13.07. async/await we frameworku Express.js
Ćwiczenie 13.08. NestJS
Ćwiczenie 13.09. TypeORM
Zadanie 13.01. Użycie await do refaktoryzacji łańcucha obietnic
Podsumowanie
Rozdział 14. TypeScript i biblioteka React

Wprowadzenie
Typowanie Reacta
TypeScript w Reakcie
Witaj, Reakcie
Komponent
Komponenty stanowe
Komponenty bezstanowe
Komponenty czyste
Komponenty wyższego rzędu
JSX i TSX
Ćwiczenie 14.01. Ładowanie aplikacji za pomocą Create React APP
Routing
Ćwiczenie 14.02. React Router
Komponenty biblioteki React
Komponenty klasowe
Komponenty funkcyjne (deklaracja funkcji)
Komponenty funkcyjne (wyrażenie funkcyjne z funkcjami strzałkowymi)
Bez JSX-a
Stan w komponentach funkcyjnych
Zarządzanie stanem w bibliotece React
Ćwiczenie 14.03. Kontekst biblioteki React
Firebase
Ćwiczenie 14.04. Pierwsze kroki z platformą Firebase
Stylizacja aplikacji biblioteki React
Główny arkusz stylów
Style o zakresie komponentów
CSS-in-JS
Biblioteki komponentów
Zadanie 14.01. Blog
Podsumowanie
Dodatek

Ben Grynhaus od lat tworzy strony internetowe z wykorzystaniem różnych stosów technologicznych. Jakiś czas temu pracował nad kilkoma produktami w firmie Microsoft.

Jordan Hudgens jest wszechstronnym programistą i założycielem DevCampu. Specjalizuje się w Ruby on Rails, bibliotece React, Vue.js i TypeScripcie.

Rayon Hunte budował złożone aplikacje internetowe, takie jak system zarządzania pojazdami. W języku TypeScript tworzył złożone, skalowalne aplikacje internetowe.

Matt Morgan jest inżynierem oprogramowania i architektem. Pracował z wieloma technologiami, takimi jak RDBMS, Java czy Node.js.

Wekoslav Stefanovski od lat jest zawodowym programistą. Jego pasja to budowanie lepszych programów i kształtowanie lepszych programistów.

Nie ma jeszcze komentarzy ani ocen dla tego produktu.

Polub nas na Facebooku