niedziela, 18 kwietnia 2010

Recenzja - "Wydajne witryny internetowe - Przyspieszanie działania serwisów WWW"

Tematyka optymalizacji oraz skalowania aplikacji WWW jest obiektem moich zainteresowań przez dłuższy już czas. Nie tylko ze względu na temat pracy magisterskiej, ale także ze względu na projekt nad którym aktualnie pracuję, oraz (tak po prostu;) zwykłą ciekawość co i gdzie poprzestawiać by było szybciej, ładniej i wydajniej :)

Przeglądałem parę dni temu zasoby biblioteki na PP i natrafiłem na książkę o interesującym dla mnie tytule "Wydajne witryny internetowe - Przyspieszanie działania serwisów WWW", której autorem jest Steve Souders. Pomyślałem sobie, że to będzie kolejna książka o tym czy używać for czy while oraz, że w php szybsze jest isset od is_null. Jednak zamówiłem, odebrałem i przeczytałem z przyjemnością !
Co ciekawe książka nie zawiera odniesienia do żadnego języka programowania (bezpośrednio przynajmniej) i nie mówi o żadnych wzorcach projektowych. Jej tematem jest optymalizacja bardziej etapu dostarczania strony www do klienta niż logiki biznesowej aplikacji. Jest w niej mowa m.in. o ograniczaniu połączeń TCP, kompresji dokumentów HTML czy buforowaniu zapytań asynchronicznych - prawie nic z programowania.
Wg badań autora sama faza dostarczania dokumentu HTML to około 10-20% całego czasu przesyłania odpowiedzi, reszta czyli ok 80-90% to pobieranie obrazków, cssów jsów i przekierowania. I właśnie te 80-90% jest przez większość lektury przedmiotem optymalizacji.
Książka podzielona została na 17 części z czego 14 to opisane reguły (wraz z przykładami) po których zastosowaniu nasza strona powinna ładować się szybciej - od 25 do 50%, niezły wynik jak na 160 stronicową książkę :)
Oto te reguły posortowane wg autora od najbardziej znaczącej:
  1. Wykonywania mniejszej liczby żądań HTTP
  2. Używanie Content Delivery Network (to rozwiązanie raczej dla bogatszych ;)
  3. Używanie nagłówka Expires
  4. Kompresja gzip
  5. Umieszczanie arkuszy stylów na początku dokumentu
  6. Umieszczanie skryptów na końcu dokumentu
  7. Unikanie wyrażeń CSS
  8. Używanie zewnętrznych plików JavaScript i CSS
  9. Redukcja liczby zapytań DNS
  10. Zmniejszenie objętości kodu JavaScript
  11. Unikanie przekierowań
  12. Usuwanie duplikujących się skryptów
  13. Konfiguracja nagłówka ETag
  14. Buforowanie zapytań Ajax
Trzeba przyznać, że Pan Souders posiada bardzo dużą wiedzę w tej dziedzinie, za każdym razem dane zagadnienie przedstawione jest z dokładnym uzasadnieniem, stosownym przykładem oraz wynikami pomiarów jakie otrzymał. Bardzo dużo wspominane jest o portalu Yahoo! gdzie pracował przy jego optymalizacji, więc przykłady trafiają się także z "dużych" witryn. W ostatnim rozdziale ponadto poddano analizie 10 jednych z największych serwisów internetowych (YouTube, Google, MSN, Amazon, CNN, Wikipedia, AOL, Amazon, Yahoo!, eBay), gdzie zostają wytknięte wszystkie ich słabości. Swoją drogą ten rozdział mógłby być dedykowany administratorom tych serwisów:)
Z czystym sercem polecam tę książkę każdemu webmasterowi, administratorowi, programiście witryn i komukolwiek kto ma do czynienia z WWW. Te 160 stron może przynieść bardzo duże oszczędności finansowe, gdy serwis zacznie się rozrastać. A co najlepsze - książka kosztuje tylko 29,00 zł !

4 komentarze:

  1. "Even Faster Web Sites: Performance Best Practices for Web Developers" tego samego autora traktuje niemal o tym samym (dziwne), czyta się fajnie, można dowiedzieć się kilku ciekawych rzeczy.

    OdpowiedzUsuń
  2. Dzięki za info :) A chciałem szukać właśnie gdzieś tej książki, by zobaczyć co tam autor napisał.

    Pozdr!
    Łukasz

    OdpowiedzUsuń
  3. uuu... "Unikanie wyrażeń CSS"
    a konkretnie?:)

    OdpowiedzUsuń
  4. Siemka!:)

    Np.: http://gadgetopia.com/post/2774
    takie wyrażenia potrafią być wykonywane setki razy podczas renderowania strony co opóźnia wyświetlenie ostatecznej wersji użytkownikowi.


    Pozdr!
    Łukasz

    OdpowiedzUsuń