Details zum E-Book

Szybsza Sieć z językami PHP, MySQL i JavaScript. Zaawansowane aplikacje z wykorzystaniem najnowszych technologii

Szybsza Sieć z językami PHP, MySQL i JavaScript. Zaawansowane aplikacje z wykorzystaniem najnowszych technologii

Andrew Caya

E-book

Termin Szybsza Sieć (ang. Faster Web) powstał stosunkowo niedawno. Koncepcja ta skupia się na rozwijaniu wszystkich elementów technologii internetowych oraz interfejsu użytkownika, tak aby przyśpieszyć interakcję między klientem a serwerem oraz działanie samej aplikacji. Efektem tych optymalizacji powinna być poprawa jakości pracy systemu. Aby w pełni przyswoić ideę Szybszej Sieci, trzeba dobrze zrozumieć takie pojęcia jak wydajność, efektywność i postrzegana wydajność. Konieczne jest również opanowanie większości nowych technologii webowych.

Dzięki tej książce dowiesz się, w jaki sposób poprawić działanie każdej aplikacji WWW, aby odpowiadała kryteriom Szybszej Sieci. Wkrótce rozpoczniesz pracę z najnowszymi narzędziami do mierzenia wydajności, profilowania i monitorowania dla PHP, MySQL i JavaScriptu. Omówiono tu wszystkie istotne zagadnienia związane z ideą Szybszej Sieci, w tym optymalizację kodu PHP 7, programowanie asynchroniczne i programowanie funkcyjne w JavaScripcie. Sporo miejsca poświęcono najlepszym strategiom optymalizacji. Opisano też techniki profilowania skryptów, pomiaru wydajności bazy danych, optymalizacji zapytań SQL oraz podnoszenia wydajności serwera WWW. Przekonasz się, że dzięki optymalizacji można przekraczać granice efektywności aplikacji!

W tej książce między innymi:

  • wprowadzenie do koncepcji Szybszej Sieci i jej formalne aspekty
  • monitorowanie i profilowanie w środowisku ciągłej integracji
  • potencjał struktur danych PHP 7
  • optymalizacja baz danych i nowoczesne techniki języka SQL
  • najnowsze osiągnięcia JavaScriptu
  • wpływ odpowiedniego projektu interfejsu użytkownika na wydajność aplikacji

Przekraczaj granice wydajności. Projektuj szybszy kod!


Przedmowa 9

O autorze 11

O recenzentach 12

Wstęp 13

Rozdział 1. Wprowadzenie do koncepcji Szybszej Sieci 17

  • Istota Szybszej Sieci 18
    • Pojęcie Szybszej Sieci a wydajność 18
    • Pomiar Szybszej Sieci 19
    • Instalacja i konfiguracja użytecznych narzędzi 30
  • Podsumowanie 40
  • Bibliografia 41

Rozdział 2. Ciągłe profilowanie i monitorowanie 43

  • Czym jest Blackfire.io? 43
    • Instalacja i konfiguracja narzędzia Blackfire.io 44
    • Ręczne profilowanie za pomocą Blackfire.io 50
  • Testy wydajnościowe przy użyciu Blackfire.io 56
  • Monitorowanie wydajności dzięki TICK Stack 58
  • Podsumowanie 70
  • Bibliografia 70

Rozdział 3. Korzystanie z potencjału struktur danych i funkcji PHP 7 71

  • Usprawnienia języka PHP 7 72
    • Silne typowanie 72
    • Tablice niemodyfikowalne i upakowane 75
    • Przydział pamięci na liczby całkowite i zmiennoprzecinkowe 77
    • Interpolacja i łączenie ciągów znaków 78
    • Referencje w parametrach 79
  • Identyfikacja dalszych możliwych optymalizacji 81
  • Programowanie funkcyjne oraz spamiętywanie 87
  • Podsumowanie 91
  • Bibliografia 91

Rozdział 4. Wybiegamy w przyszłość dzięki asynchronicznemu kodowi PHP 93

  • Asynchroniczna i nieblokująca obsługa wejścia/wyjścia 94
  • Wielowątkowość z użyciem biblioteki pthreads 102
  • Korzystanie z biblioteki ReactPHP 105
  • Podsumowanie 112

Rozdział 5. Pomiar i optymalizacja wydajności bazy danych 113

  • Wydajność zapytań SQL 113
    • Struktura indeksów 113
    • Plan wykonania zapytań 115
    • Podstawowa optymalizacja zapytań 117
    • Schemat wydajności i zaawansowana optymalizacja zapytań 120
  • Zaawansowane narzędzia do testowania 125
    • DBT2 125
    • SysBench 129
  • Podsumowanie 131

Rozdział 6. Efektywne zapytania do bazy danych w Nowoczesnym SQL-u 133

  • Nowoczesny SQL 133
    • Definicja 134
  • Podsumowanie 150

Rozdział 7. Język JavaScript i programowanie sterowane zagrożeniami 151

  • Obiekt globalny i zmienne lokalne 152
    • Unikanie zmiennych globalnych 152
    • Obliczanie wartości zmiennych lokalnych 155
  • Unikanie szkodliwych wyrażeń i zwracanie uwagi na najsłabsze strony języka 155
    • Szkodliwe wyrażenia 155
    • Szkodliwe konstrukcje: instrukcja with 156
    • Szkodliwe konstrukcje: instrukcja eval 156
    • Szkodliwe konstrukcje: try-catch-finally 157
    • Unikanie nieefektywnych pętli 157
    • Lintery i tryb ścisły 159
  • Efektywne korzystanie z modelu DOM 160
    • Modyfikacja drzewa dokumentu 160
    • Zmienianie niewidocznego elementu 161
    • Dokonywanie zmian stylów 161
    • Wyszukiwanie węzłów 162
    • Badanie dużej liczby węzłów 163
    • Zarządzanie referencjami do innych dokumentów 163
    • Buforowanie wartości z modelu DOM 163
  • Strukturyzowanie i ładowanie aplikacji JavaScript 164
    • Ograniczanie czasochłonnych operacji 164
    • Oczyszczanie, minifikacja i kompresowanie zasobów 164
    • Ładowanie zasobów strony 165
    • Buforowanie zasobów strony 165
  • Podsumowanie 165

Rozdział 8. Funkcyjny JavaScript 167

  • Upraszczanie funkcji 167
    • Zasady programowania funkcyjnego 167
    • Funkcje jako typy pierwszoklasowe 169
    • Postępowanie z efektami ubocznymi 169
    • Niezmienność 170
  • Techniki programowania funkcyjnego 171
    • Funkcja map 171
    • Funkcja filter 171
    • Funkcja reduce 171
    • Optymalizacja ogonowa 172
  • Inne zapowiadane możliwości języka JavaScript 177
    • Funkcje asynchroniczne 177
    • Generatory asynchroniczne i pętle for-await-of 177
    • Operator potoku 178
    • Częściowe wywołanie 178
  • Podsumowanie 179

Rozdział 9. Zwiększanie wydajności serwera WWW 181

  • MOD_SPDY i HTTP/2 181
    • Multipleksowanie i priorytetyzacja strumieni 182
    • Wypychanie zasobów przez serwer 182
    • Kompresja nagłówków 183
    • HTTP/2 183
  • PHP-FPM i OPCache 185
    • PHP-FPM 185
    • Zend OPcache 186
  • ESI i Varnish Cache 187
    • Edge Side Includes (ESI) 187
    • Varnish Cache 190
  • Buforowanie po stronie klienta 194
    • Buforowanie w przeglądarce 195
    • Sieci dystrybucji treści (sieci CDN) 196
  • Inne narzędzia związane z ideą Szybszej Sieci 197
  • Podsumowanie 200
  • Bibliografia 200

Rozdział 10. Przekraczamy granice wydajności 201

  • Czas zegarowy i postrzegany 201
  • Percepcja szybkości 203
  • Rozsądne opóźnienia i czasy odpowiedzi 204
  • Zasady i wzory projektowania interfejsu użytkownika 205
  • Narzędzia pozwalające przekraczać granice wydajności 207
  • Podsumowanie 212
  • Bibliografia 212

Skorowidz 213

  • Titel: Szybsza Sieć z językami PHP, MySQL i JavaScript. Zaawansowane aplikacje z wykorzystaniem najnowszych technologii
  • Autor: Andrew Caya
  • Originaler Titel: Mastering the Faster Web with PHP, MySQL and JavaScript: Develop state of the art Web applications using the latest Web technologies
  • Übersetzung: Krzysztof Bąbol
  • ISBN: 978-83-283-5524-8, 9788328355248
  • Veröffentlichungsdatum: 2019-09-03
  • Format: E-book
  • Artikelkennung: szysie
  • Verleger: Helion