JavaScript

Book description

Twórz lepszy kod JavaScript!
Jakie jest najlepsze podejście do tworzenia aplikacji w języku JavaScript? Z tą książką, zawierającą najlepsze praktyki i wiele wzorców kodowania, znajdziesz odpowiedź na to pytanie. Jeśli jesteś doświadczonym programistą szukającym sposobów rozwiązania problemów związanych z obiektami, funkcjami, dziedziczeniem i innymi aspektami języka, przedstawione tu abstrakcje i szablony sprawdzą się idealnie.

Książka napisana przez eksperta języka JavaScript Stoyana Stefanova - starszego inżyniera Yahoo! i architekta narzędzia do optymalizacji stron WWW YSlow 2.0 - zawiera wiele praktycznych wskazówek w zakresie implementacji opisywanych wzorców, a także kilka całościowych przykładów. Znajdziesz w niej również opis wielu antywzorców, czyli podejść, które tak naprawdę powodują więcej problemów, niż są tego warte.

Dowiedz się, jak:

tworzyć łatwy w utrzymaniu kod
wybierać właściwe nazwy dla zmiennych, metod i funkcji
wykorzystać klasyczne wzorce programowania
skorzystać ze wzorców specyficznych dla środowiska przeglądarki internetowej
Poznaj tajniki tworzenia łatwego w utrzymaniu kodu źródłowego!

Table of contents

  1. Wstęp
    1. Docelowi czytelnicy
    2. Konwencje stosowane w książce
    3. Użycie przykładów zawartych w książce
    4. Podziękowania
    5. Zapożyczenia
    6. Zalecana lektura dodatkowa
  2. Rozdział 1. Wprowadzenie
    1. Wzorce
    2. JavaScript — podstawowe cechy
      1. Zorientowany obiektowo
      2. Brak klas
      3. Prototypy
      4. Środowisko
    3. ECMAScript 5
      1. Narzędzie JSLint
      2. Konsola
  3. Rozdział 2. Podstawy
    1. Tworzenie kodu łatwego w konserwacji
    2. Minimalizacja liczby zmiennych globalnych
      1. Problem ze zmiennymi globalnymi
      2. Efekty uboczne pominięcia var
      3. Dostęp do obiektu globalnego
      4. Wzorzec pojedynczego var
      5. Przenoszenie deklaracji — problem rozrzuconych deklaracji var
    3. Pętle for
    4. Pętle for-in
    5. Modyfikacja wbudowanych prototypów
    6. Wzorzec konstrukcji switch
    7. Unikanie niejawnego rzutowania
    8. Unikanie eval()
    9. Konwertowanie liczb funkcją parseInt()
    10. Konwencje dotyczące kodu
      1. Wcięcia
      2. Nawiasy klamrowe
      3. Położenie nawiasu otwierającego
      4. Białe spacje
    11. Konwencje nazewnictwa
      1. Konstruktory pisane od wielkiej litery
      2. Oddzielanie wyrazów
      3. Inne wzorce nazewnictwa
    12. Pisanie komentarzy
    13. Pisanie dokumentacji interfejsów programistycznych
      1. Przykład dokumentacji YUIDoc
    14. Pisanie w sposób ułatwiający czytanie
    15. Ocenianie kodu przez innych członków zespołu
    16. Minifikowanie kodu tylko w systemie produkcyjnym
    17. Uruchamiaj narzędzie JSLint
    18. Podsumowanie
  4. Rozdział 3. Literały i konstruktory
    1. Literał obiektu
      1. Składnia literału obiektowego
      2. Obiekty z konstruktora
      3. Pułapka konstruktora Object
    2. Własne funkcje konstruujące
      1. Wartość zwracana przez konstruktor
    3. Wzorce wymuszania użycia new
      1. Konwencja nazewnictwa
      2. Użycie that
      3. Samowywołujący się konstruktor
    4. Literał tablicy
      1. Składnia literału tablicy
      2. Pułapka konstruktora Array
      3. Sprawdzanie, czy obiekt jest tablicą
    5. JSON
      1. Korzystanie z formatu JSON
    6. Literał wyrażenia regularnego
      1. Składnia literałowego wyrażenia regularnego
    7. Otoczki typów prostych
    8. Obiekty błędów
    9. Podsumowanie
  5. Rozdział 4. Funkcje
    1. Informacje ogólne
      1. Stosowana terminologia
      2. Deklaracje kontra wyrażenia — nazwy i przenoszenie na początek
      3. Właściwość name funkcji
      4. Przenoszenie deklaracji funkcji
    2. Wzorzec wywołania zwrotnego
      1. Przykład wywołania zwrotnego
      2. Wywołania zwrotne a zakres zmiennych
      3. Funkcje obsługi zdarzeń asynchronicznych
      4. Funkcje czasowe
      5. Wywołania zwrotne w bibliotekach
    3. Zwracanie funkcji
    4. Samodefiniujące się funkcje
    5. Funkcje natychmiastowe
      1. Parametry funkcji natychmiastowych
      2. Wartości zwracane przez funkcje natychmiastowe
      3. Zalety i zastosowanie
    6. Natychmiastowa inicjalizacja obiektu
    7. Usuwanie warunkowych wersji kodu
    8. Właściwości funkcji — wzorzec zapamiętywania
    9. Obiekty konfiguracyjne
    10. Rozwijanie funkcji
      1. Aplikacja funkcji
      2. Aplikacja częściowa
      3. Rozwijanie funkcji
      4. Kiedy używać aplikacji częściowej
    11. Podsumowanie
  6. Rozdział 5. Wzorce tworzenia obiektów
    1. Wzorzec przestrzeni nazw
      1. Funkcja przestrzeni nazw ogólnego stosowania
    2. Deklarowanie zależności
    3. Metody i właściwości prywatne
      1. Składowe prywatne
      2. Metody uprzywilejowane
      3. Problemy z prywatnością
      4. Literały obiektów a prywatność
      5. Prototypy a prywatność
      6. Udostępnianie funkcji prywatnych jako metod publicznych
    4. Wzorzec modułu
      1. Odkrywczy wzorzec modułu
      2. Moduły, które tworzą konstruktory
      3. Import zmiennych globalnych do modułu
    5. Wzorzec piaskownicy
      1. Globalny konstruktor
      2. Dodawanie modułów
      3. Implementacja konstruktora
    6. Składowe statyczne
      1. Publiczne składowe statyczne
      2. Prywatne składowe statyczne
    7. Stałe obiektów
    8. Wzorzec łańcucha wywołań
      1. Wady i zalety wzorca łańcucha wywołań
    9. Metoda method()
    10. Podsumowanie
  7. Rozdział 6. Wzorce wielokrotnego użycia kodu
    1. Klasyczne i nowoczesne wzorce dziedziczenia
    2. Oczekiwane wyniki w przypadku stosowania wzorca klasycznego
    3. Pierwszy wzorzec klasyczny — wzorzec domyślny
      1. Podążanie wzdłuż łańcucha prototypów
      2. Wady wzorca numer jeden
    4. Drugi wzorzec klasyczny — pożyczanie konstruktora
      1. Łańcuch prototypów
      2. Dziedziczenie wielobazowe przy użyciu pożyczania konstruktorów
      3. Zalety i wady wzorca pożyczania konstruktora
    5. Trzeci wzorzec klasyczny — pożyczanie i ustawianie prototypu
    6. Czwarty wzorzec klasyczny — współdzielenie prototypu
    7. Piąty wzorzec klasyczny — konstruktor tymczasowy
      1. Zapamiętywanie klasy nadrzędnej
      2. Czyszczenie referencji na konstruktor
    8. Podejście klasowe
    9. Dziedziczenie prototypowe
      1. Dyskusja
      2. Dodatki do standardu ECMAScript 5
    10. Dziedziczenie przez kopiowanie właściwości
    11. Wzorzec wmieszania
    12. Pożyczanie metod
      1. Przykład — pożyczenie metody od obiektu Array
      2. Pożyczenie i przypisanie
      3. Metoda Function.prototype.bind()
    13. Podsumowanie
  8. Rozdział 7. Wzorce projektowe
    1. Singleton
      1. Użycie słowa kluczowego new
      2. Instancja we właściwości statycznej
      3. Instancja w domknięciu
    2. Fabryka
      1. Wbudowane fabryki obiektów
    3. Iterator
    4. Dekorator
      1. Sposób użycia
      2. Implementacja
      3. Implementacja wykorzystująca listę
    5. Strategia
      1. Przykład walidacji danych
    6. Fasada
    7. Pośrednik
      1. Przykład
        1. Aplikacja wideo
        2. Bez użycia pośrednika
        3. Kod HTML
        4. Obsługa zdarzeń
        5. Obiekt videos
        6. Obiekt http
        7. Obiekt proxy
      2. Pośrednik jako pamięć podręczna
    8. Mediator
      1. Przykład mediatora
    9. Obserwator
      1. Pierwszy przykład — subskrypcja magazynu
      2. Drugi przykład — gra w naciskanie klawiszy
    10. Podsumowanie
  9. Rozdział 8. DOM i wzorce dotyczące przeglądarek
    1. Podział zadań
    2. Skrypty wykorzystujące DOM
      1. Dostęp do DOM
      2. Modyfikacja DOM
    3. Zdarzenia
      1. Obsługa zdarzeń
      2. Delegacja zdarzeń
    4. Długo działające skrypty
      1. Funkcja setTimeout()
      2. Skrypty obliczeniowe
    5. Komunikacja z serwerem
      1. Obiekt XMLHttpRequest
      2. JSONP
        1. Przykład JSONP — kółko i krzyżyk
      3. Ramki i wywołania jako obrazy
    6. Serwowanie kodu JavaScript klientom
      1. Łączenie skryptów
      2. Minifikacja i kompresja
      3. Nagłówek Expires
      4. Wykorzystanie CDN
    7. Strategie wczytywania skryptów
      1. Lokalizacja elementu <script>
      2. Wysyłanie pliku HTML fragmentami
      3. Dynamiczne elementy <script> zapewniające nieblokujące pobieranie
        1. Dodanie elementu <script>
      4. Wczytywanie leniwe
      5. Wczytywanie na żądanie
      6. Wstępne wczytywanie kodu JavaScript
    8. Podsumowanie
    9. O autorze
    10. Kolofon

Product information

  • Title: JavaScript
  • Author(s): Stoyan Stefanov
  • Release date: March 2012
  • Publisher(s): Helion
  • ISBN: 9788324638215