Wydawnictwo: New Riders
Rok wydania: 2010
Liczba stron: 427+XXVIII
Autor i data recenzji: Łukasz Piwko, lipiec 2010
Polskie wydanie: Tworzenie stron metodą stopniowego ulepszania. Witryny dostępne dla każdego (Helion 2010/11)
O autorach
Autorzy tej książki wspólnie tworzą firmę Filament Group, Inc. zajmującą się opracowywaniem i wdrażaniem interfejsów użytkownika aplikacji internetowych i programów komputerowych. W swojej pracy największy nacisk kładą na właściwości użytkowe i funkcjonalność tworzonych przez siebie produktów, chcąc zapewnić ich dostępność jak najszerszemu gronu odbiorców — zarówno osobom w pełni sprawnym jak i użytkownikom o różnym stopniu niepełnosprawności; zarówno osobom korzystającym z komputerów PC jak i użytkownikom używającym telefonów komórkowych. Ponadto finansują działalność zespołu programistycznego biblioteki jQuery, aktywnie uczestniczą w jej opracowywaniu oraz utworzyli narzędzie o nazwie ThemeRollover.
Todd Parker przed założeniem firmy Filament Group, Inc. pracował w firmie ZEFER Corporation i CSC Consulting na stanowisku kierownika ds projektowania interfejsów użytkownika. Jego prace projektowe zyskały uznanie magazynu Communication Arts.
Patty Toland przed założeniem firmy Filament Group, Inc. pracowała w ZEFER Corp., US Peace Corps, Kohn Cruikshank Inc. oraz Harvard Business School.
Scott Jehl przez podjęciem pracy w Filament Group, Inc. wykonywał prace dla takich klientów, jak New England Journal of Medicine, Footjoy Golf i Aspen Snowmass Resorts. Hobbystycznie prowadzi witrynę internetową WriteMaps.com oraz jest członkiem zespołu projektowego biblioteki jQuery.
Maggie Costello Wachs pełni funkcję kontrolera jakości w firmie Filament Group, Inc. Wcześniej pracowała w firmie ZEFER.
Główna myśl książki
Treść książki snuje się wokół centralnej tezy głoszącej, że zawartość stron internetowych powinna być dostępna dla wszystkich użytkowników internetu, bez względu na posiadany przez nich sprzęt i to czy są pełnosprawni czy nie. Środkiem do osiągnięcia tego celu jest zdaniem autorów zastosowanie rozwijanej przez nich techniki stopniowego ulepszania (ang. progressive enhancement). Polega ona na konstruowaniu stron w taki sposób, aby pełnię swojego potencjału rozwijały tylko w najnowocześniejszych przeglądarkach internetowych. Natomiast w mniej zaawansowanych aplikacjach ich funkcjonalność jest redukowana o mniej ważne elementy (np. efekty wizualne), tak aby nie traciły najważniejszych właściwości użytkowych.
Metoda pracy opisywana przez autorów składa się z dwóch głównych etapów. Po pierwsze opracowują wersję podstawowej strony przy użyciu samego języka HTML i bardzo ograniczonego zestawu własności CSS, która powinna działać praktycznie w każdym urządzeniu i w każdej przeglądarce. Następnie na bazie tego kodu bazowego rozwijają zaawansowane efekty.
Obie wersje strony „spinane” są za pomocą specjalnego skryptu JavaScript sprawdzającego czy dana przeglądarka potrafi obsłużyć zaawansowane elementy na niej zastosowane i podejmująca na tej podstawie decyzję którą wersję strony zaserwować. Jeśli przeglądarka nie radzi sobie z którymkolwiek z zaawansowanych efektów, skrypt dostarcza wersję podstawową. Jeśli przeglądarka radzi sobie ze wszystkim, otrzymuje wersję rozszerzoną.
Środkiem do uzyskania wysokiej dostępności treści stron internetowych wśród użytkowników niepełnosprawnych jest zastosowanie technologii i technik wspomagających, takich jak ARIA czy dodanie obsługi klawiatury w niestandardowych komponentach działających na bazie JavaScriptu.
Opis rozdziałów
Książka dzieli się na dwie części. Pierwsza z nich obejmuje rozdziały od 1 do 6 zawierające opis podstawowych pojęć i technik stosowanych przez autorów w drugiej części.
Rozdział 1 zawiera objaśnienie filozofii i stosowanego przez autorów podejścia do tworzenia stron. Można się w nim dowiedzieć dlaczego ich zdaniem technika stopniowego ulepszania jest najlepszą metodą tworzenia stron internetowych, jakie fakty przemawiają na korzyść tych, którzy ją stosują oraz na czym ona konkretnie polega.
Rozdział 2 poświęcony jest szczegółowemu opisowi techniki nazywanej przez autorów prześwietlaniem (ang. x-ray perspective). Jest to jeden z etapów metody stopniowego ulepszania polegający na określeniu zestawu podstawowych elementów HTML, na których zostanie oparta podstawowa wersja tworzonej strony internetowej. Dopiero na tej bazie na etapie dodawania „elementów rozszerzających funkcjonalność” budowana jest wersja rozszerzona strony. Na końcu rozdziału znajduje się analiza za pomocą techniki prześwietlania czterech przykładowych projektów.
Rozdział 3 to przewodnik po strukturze i najważniejszych elementach dokumentu HTML. Można się w nim dowiedzieć co to jest „semantyczny kod HTML”, dlaczego kod tego rodzaju jest najlepiej interpretowany przez przeglądarki oraz dlaczego zawsze należy pisać kod HTML w taki sposób, aby był poprawny semantycznie. Na końcu rozdziału znajduje się opis wytycznych dotyczących dostępności stron internetowych zawartych w sekcji 508 amerykańskiej ustawy Americans with Disabilities Act i w specyfikacji Web Content Accessibility Guidelines (WCAG).
W rozdziale 4 autorzy przedstawili w szczegółowy sposób techniki dołączania kaskadowych arkuszy stylów do stron internetowych oraz wskazali słabe i mocne strony każdej z nich. Ponadto przedstawili konsekwencje ich stosowania w odniesieniu do techniki stopniowego ulepszania oraz wskazali, których własności CSS można bezpiecznie używać we wszystkich przeglądarkach. Na szczególną uwagę zasługuje ostatnia część rozdziału, która zawiera opis problemów z CSS występujących w różnych przeglądarkach internetowych oraz sposobów ich rozwiązywania.
Rozdział 5 zawiera informacje na temat dołączania skryptów JavaScript do stron internetowych w celu uzyskania zaawansowanych efektów przeznaczonych wyłącznie dla nowoczesnych i najlepszych przeglądarek. W rozdziale tym można się dowiedzieć jakie są sposoby dołączania skryptów do dokumentów HTML, jak skrypty te są wykorzystywane do tworzenia wersji rozszerzonej stron oraz jak za ich pomocą zachować właściwości użytkowe stron i dostępność treści.
Rozdział 6 zawiera szczegółowy opis skryptu testującego możliwości przeglądarek i podejmującego decyzję, którą wersję strony im zaserwować. Autorzy objaśnili jego konstrukcję, wyjaśnili zasadę jego działania, pokazali jak się nim posługiwać oraz ujawnili metody jego udoskonalania i dostosowywania do indywidualnych potrzeb twórców stron internetowych.
Druga część książki obejmuje pozostałych 13 rozdziałów, z których każdy oprócz 7. zawiera szczegółowy opis procesu tworzenia jakiegoś zaawansowanego komponentu strony internetowej przy zastosowaniu techniki stopniowego ulepszania. Rozdział 7 natomiast stanowi wprowadzenie do drugiej części książki, a więc zawiera ogólne informacje na temat struktury treści pozostałych rozdziałów. Struktura ta w schematycznym ujęciu jest następująca: (1) Ogólne przedstawienie komponentu, o którym będzie mowa; (2) Określenie zestawu elementów HTML, które będą wykorzystane w wersji podstawowej opisywanego komponentu; (3) Definiowanie dodatków rozszerzających dla wersji rozszerzonej oraz dodawanie elementów zwiększających dostępność.
W rozdziałach tych przyjęto dość typową metodę przedstawienia zagadnień, którą ze względu na jej właściwości lubię nazywać „lejkiem”. Tzn. najpierw zostaje przedstawione najmniej efektywne podejście, następnie nieco lepsze, później jeszcze lepsze, a na końcu metoda opracowana przez autora, która jest z tych wszystkich jego zdaniem najlepsza. Mimo iż w wielu sytuacjach to się sprawdza, czasami można by było skrócić przydługawy wywód do przedstawienia od razu właściwego podejścia i dodania, że „istnieją jeszcze inne metody, ale są gorsze, ponieważ…”.
Poniżej znajduje się lista rozdziałów od 8 do 19 z wyszczególnieniem opisanych w nich komponentów:
- Rozdział 8 — elementy rozwijane, tzn. komponenty, których kliknięcie powoduje rozwinięcie lub zwinięcie dodatkowej treści.
- Rozdział 9 — karty, tzn. tworzenie komponentów służących do prezentowania zawartości na kartach reprezentowanych w postaci zakładek.
- Rozdział 10 — chmurki, tzn. tworzenie chmurek kontekstowych dostosowanych wyglądem do stylu całej strony.
- Rozdział 11 — kontrolki drzewiaste, tzn. komponenty prezentujące strukturę plików i folderów w postaci drzewa elementów.
- Rozdział 12 — wykresy, tzn. tworzenie różnego rodzaju wykresów przy użyciu elementu HTML 5 canvas.
- Rozdział 13 — okna dialogowe i nakładki.
- Rozdział 14 — przyciski, tzn. tworzenie przycisków dostosowanych wyglądem do stylu całej strony. W rozdziale tym autorzy opisują różnice między elementami HTML input typu button a elementami button.
- Rozdział 15 — pola wyboru, przyciski radiowe oraz oparty na nich komponent do oceniania za pomocą gwiazdek.
- Rozdział 16 — suwaki, tzn. komponenty służące do wybierania wartości za pomocą specjalnego suwaka.
- Rozdział 17 — menu wyboru, tzn. tworzenie rozwijanych menu wyboru sformatowanych w taki sposób, aby odpowiadały stylem reszcie strony.
- Rozdział 18 — komponenty do tworzenia list elementów.
- Rozdział 19 — pola do wysyłania plików na serwer.
Zalety
Prezentowana przez autorów metoda tworzenia stron internetowych nie jest może stuprocentowo nowatorska, ale mimo to przykuwa uwagę profesjonalizm z jakim podchodzą oni do jej stosowania oraz umiejętność uporządkowania procesu twórczego w znakomity sposób. Każdy etap powstawania komponentu jest wyraźnie zdefiniowany i ma swój ściśle określony cel, a ponadto wszystkie etapy przeprowadzane są zawsze w z góry określonym porządku, co również pomaga zapanować nad projektem. Dzięki temu, że nic nie jest robione przypadkiem, łatwiej jest zrozumieć tajniki opisywanej techniki oraz zastosować ją we własnym zakresie.
Na pochwalę zasługuje również sposób przygotowania plików z przykładowym kodem źródłowym — są one dostępne na serwerze i panuje w nich idealny porządek. Bez trudu można znaleźć opisywane w książce elementy, aby dostosować je do własnych potrzeb lub wykorzystać je do ćwiczeń. Dodatkowo w zbiorach tych znajduje się biblioteka enhance.js, czyli centralny skrypt prezentowanej przez autorów techniki stopniowego ulepszania.
Kolejnymi atutami tej pozycji są duża ilość rozmaitych porad i wskazówek na temat zapewniania dostępności stron internetowych i ich niestandardowych komponentów także użytkownikom niepełnosprawnym oraz opis niektórych elementów dopiero powstającego języka HTML 5. W tym pierwszym przypadku autorzy nie idą na łatwiznę opisując tylko zaawansowane techniki, które działają wyłącznie w najnowszych i najlepszych przeglądarkach, lecz również pokazują jak dotrzeć do użytkowników mniej popularnych i starszych urządzeń. Jeśli natomiast chodzi o język HTML 5, w książce można znaleźć informacje na temat tego, które jego składniki zostały już zaimplementowane w najważniejszych przeglądarkach oraz jak te implementacje wyglądają z punktu widzenia twórcy stron internetowych.
Na uwagę zasługuje również przygotowanie książki od strony graficznej. Nowe fragmenty kodu i takie, o których jest w danym miejscu mowa są klarownie oznaczone, dzięki czemu łatwo podążać za tokiem myśli autorów.
Zaletą książki bez wątpienia jest również prawie całkowity brak błędów typograficznych i merytorycznych. Zwłaszcza to drugie twierdzenie może się wydawać nieco dziwne, ale niestety w książkach można często spotkać poważne błędy tego typu. Np. w skądinąd bardzo dobrej książce (w której autor również przedstawia nowatorską własną metodę) pt. Stylin’ with CSS: A Designer’s Guide autorstwa Charlesa Wyke-Smitha (New Riders 2008) na stronie 16 znajduje się wzmianka o elemencie HTML o nazwie alt. W tej książce tego typu błędów nie ma.
Wady
Do słabych stron książki należy zaliczyć przede wszystkim jej język. Większość tekstu, zwłaszcza w pierwszej części, stanowią bardzo długie i zawiłe zdania, które niejednokrotnie stanowią nawet same w sobie całe akapity. Winą za to można chyba obarczyć także nie tylko samych autorów, lecz również redakcję. Autorzy opracowali i znakomicie przedstawili własną technikę, szkoda tylko, że nikt im nie pomógł w klarowniejszym sformułowaniu myśli (a przynajmniej pomoc ta była zdecydowanie niewystarczająca).
Pierwsza część książki, mimo iż ważna i potrzebna, nie jest zbyt porywająca. Wspomniane już długie i zagmatwane zdania oraz wielokrotne powtórzenia tych samych informacji sprawiają, że tekst szybko się nudzi i po pewnym czasie traci się koncentrację. To powoduje, że po jej przeczytaniu ma się wrażenie, że przebrnęło się przez jakieś mętne grzęzawisko, a nie przeczytało książkę o technikach webmasterskich.
Jeśli chodzi o powtórzenia, to wygląda to tak, jakby autorzy podzielili między siebie poszczególne rozdziały i nie komunikowali się zbyt często między sobą. Dlatego w wielu rozdziałach można znaleźć te same objaśnienia, np. czym jest tzw. odnośnik wewnętrzny oraz jak się takie odnośniki tworzy (np. w rozdziałach 2, 5, 9 i kilku dalszych) albo informację na temat tego, na czym polega metoda stopniowego ulepszania. Książka zdecydowanie zyskałaby na klarowności, gdyby autorzy przedstawili na początku zestaw podstawowych definicji i później już ich nie powtarzali w tekście, a jedynie odsyłali w razie potrzeby do odpowiedniej strony.
Kolejnym niedostatkiem jest praktycznie pominięcie objaśnienia składni biblioteki JavaScript jQuery, która stanowi bardzo ważny element opisywanych w książce technik. Bez jej znajomości trudno jest zrozumieć przedstawione fragmenty skryptów. Fakt ten dziwi tym bardziej, że autorzy często objaśniają rzeczy banalne nawet dla początkujących, np. do czego służy element div albo jak się tworzy zwykłe łącza (rozdział 3), a nie poświęcają w ogóle miejsca podstawowym elementom jQuery. Z tego powodu niektóre fragmenty skryptów JavaScript mogą dla wielu osób być trudne do zrozumienia.
Pewne braki można znaleźć również w kwestii podawania tekstów źródłowych, a raczej ich braku. Np. w rozdziale 4 znajduje się informacja, że stosunek kontrastu koloru tekstu do koloru tła można sprawdzić za pomocą wielu narzędzi. Nie podano jednak ani jednego przykładowego takiego narzędzia, ani nie napisano gdzie ich szukać.
Niedostatek mogą również poczuć osoby interesujące się technologią CSS. Podczas gdy autorzy sporo miejsca poświęcają powstającej specyfikacji HTML 5, o znajdującej się na podobnym etapie rozwoju specyfikacji CSS 3 praktycznie zapomnieli.
Na zakończenie warto wspomnieć jeszcze o jednej rzeczy. Prezentowana przez autorów metoda nosi nazwę stopniowego ulepszania (ang. progressive enhancement). Jednak w rzeczywistości nie ma w niej mowy o żadnym stopniowaniu — wybór jest zero-jedynkowy, tzn. albo stosujemy wszystkie dodatkowe usprawnienia albo żadnych. Nie jest to wielki problem i trudno tu mówić o strasznym błędzie autorów, ale z pewnością po określeniu „stopniowe ulepszanie” można by się było spodziewać czegoś więcej niż tylko wyboru między dwiema możliwościami.
Podsumowanie
Książek na temat języków HTML, JavaScript i CSS jest wiele. We wszystkich nich można znaleźć mniej więcej podobne informacje podane w mniej lub bardziej klarowny sposób. Dlatego recenzowana tutaj książka zasługuje na wysokie uznanie. Zaprezentowana w niej technika stopniowego ulepszania i pomysł jej realizacji to bardzo ciekawe i nowatorskie podejście do tworzenia stron internetowych. Gorzej jest od strony językowej i można zauważyć pewne niedostatki metodyczne (np. opis tworzenia odnośników HTML przy braku jakichkolwiek wzmianek na temat składni jQuery), ale mimo wymienionych braków niniejsza książka powinna znaleźć się na półce każdego twórcy stron internetowych, który pragnie profesjonalnie wykonywać swoją pracę.
Warto również zauważyć, że znakomitym uzupełnieniem tej pozycji mogłaby być wspomniana już wyżej książka Charlesa Wyke-Smitha tego samego wydawnictwa, w której autor mówiąc skrótowo prezentuje wiele technik tworzenia układów stron przy użyciu CSS.
Uwagi do polskiego tłumaczenia
Nie będę oceniał polskiego tłumaczenia tej książki, ponieważ jestem jego autorem. Chciałbym natomiast przedstawić przy tej okazji jedno wyjaśnienie.
Język książki, o czym już wspominałem, był miejscami bardzo ciężki. Starałem się go trochę uprościć, niektóre pojedyncze zdania oryginału dzieląc nawet aż na cztery części w tłumaczeniu. Dlatego osoby porównujące oryginał z tłumaczeniem nie obeznane z kunsztem pracy tłumacza mogą odnieść wrażenie, że zostało ono wykonane niedokładnie. Myślę, że wyszło to na dobre książce, jeśli chodzi o klarowność tekstu oraz mam nadzieję, że nie zatarłem w ten sposób rzeczywistego przekazu autorów.






Wysyłam...
1 komentarz
WebRocko
08.09.2012
To może być ciekawa pozycja, zwłaszcza gdy prym zaczynają wieść coraz lepsze telefony komórkowe. Chociaż na razie korzystanie z internetu w komórce jest jeszcze nie wygodne, przynajmniej jak dla mnie.
Nie ma trackbacków do wyświetlenia