Książka dla używających rozumu

Przeczytałem najistotniejsze rozdziały książki Django. Ćwiczenia praktyczne. Książka trafiła na listę bestselerów Helionu, co nie jest niczym dziwnym, jeśli zważyć, że jest to pierwsza polska książka na temat tego pythonowego frameworka i była długo oczekiwana.

Wniosek generalny powinien być na końcu, ale złamię reguły pisania recenzji ;) i sformułuję go teraz. Książka jest bardzo dobra i godna polecenia.

Podstawowymi jej zaletami są:

1. Zwięzłość. Wielu informatyków chcąc pisać jasno pisze rozwlekle i trudno tego uniknąć. Piotr Maliński wprowadza od razu w sedno sprawy nie wdając się w niepotrzebne dywagacje. W ten sposób zmieścił bogatą treść na 85 stronach!

2. Działające przykłady. Aplikacja prezentowana w książeczce po zainstalowaniu rzeczywiście działa. A nie zawsze niestety tak jest w książkowych aplikacjach.

3. Uporządkowanie. Większość rozdziałów jest napisana według przemyślanej koncepcji - zaczyna się od przykładu, następuje jego krótkie omówienie prezentujące te informacje teoretyczne, które są niezbędne dla zrozumienia przykładu, a następnie doskonały spis dostępnych opcji, które pozwolą przykład niemal dowolnie zmieniać.

Czytelnik, który będzie chciał z pomocą tej książeczki nauczyć się Django, a nie miał jeszcze z tym frameworkiem do czynienia, napotka jednak na pewne bariery. Autor jest tego świadom i uprzedza, że książka jest przeznaczona dla czytelnika który zna podstawy pythona oraz główne techniki tworzenia stron internetowych. Lojalnie uprzedza też, że książeczka nie zastępuje obszernej dokumentacji Django. I istotnie, często trzeba przy lekturze książki do tej dokumentacji zaglądać. Nasuwa się pytanie, czy nie byłoby lepiej, żeby autor podał konkretnie miejsca w dokumentacji, które warto przejrzeć przed pracą nad konkretnym zagadnieniem.

Niektórych rzeczy czytelnik musi się bowiem domyślić (zwięzłość bywa także i wadą), a dla początkującego nie będzie to łatwe. Na przykład osoba, która tworzyła aplikacje internetowe w php nie domyśli się tak łatwo, że pliki projektu nie muszą, a nawet nie powinny, znajdować się miejscu do którego ma dostęp serwer www. Oczywiście, autor pisze, że django może być serwowane przez fcgi albo mod_python, ale ktoś kto wie jak działa fcgi i mod_python raczej nie będzie czytał tej książki, a django nauczy się z dokumentacji ;). Inny przykład - Class Meta w modelach. Oczywiście można się domyślić po co jest podklasa (autor tego nie pisze), ale początkujący w Django programista raczej na to nie wpadnie.

Stanowczo zbyt duże uproszczenia zawiera rozdział o konfiguracji serwerów www. Programista internetowy zazwyczaj nie jest specem od serwerów i chciałby tu znaleźć naprawdę gotowe i dobrze opracowane rozwiązania. Można wymagać przeglądania dokumentacji django, ale żeby trzeba było jeszcze przeszukiwać dokumentację apache'a albo nginxa - to już przesada.

Stąd wniosek, że nie do końca wiadomo dla jakiego czytelnika ta książka, choć generalnie dobra, została napisana. Dla początkującego, który chciałby mieć wyczerpujący podręcznik - zawiera zbyt wiele przemilczeń, dla zaawansowanego jest niepotrzebna. Pozostaje mieć nadzieję, że sięgną po nią początkujący - dociekliwi.