Od dłuższego czasu patrząc najpierw na plany wydawnicze, potem na nowości – natykałem się na dość ciekawy tytył: „Rails. Projektowanie systemów klasy eneterprise”


Ciekawy, bo jestem natywnym programistą Java, który kojarzony jest właśnie z enterprise.
Mimo ciekawości powstrzymywałem się od zakupu tej książki, z kilku powodów. Po pierwsze oryginalna wersja została opublikowana w 2008 roku więc jest już dość leciwa biorąc pod uwagę szybkość rozwijania się frameworka Rails. Po drugie lada dzień wspomniany framework zostanie opublikowany w wersji 3.0, który wprowadza wiele rewolucyjnych zmian. Bałem się po prostu, że książka ta stanie się nieaktualna już w momencie zakupu.

Szczęśliwym trafem stałem się posiadaczem kuponu, który musiałem zrealizować w jednej z trójmiejskich księgarni danego dnia. Będąc jednak w środku zupełnie nie byłem zachwycony zawartością półki (a raczej półeczki) opatrzonej tabliczką „Informatyka”. Większość tytułów to były podręczniki szkolne, które jak na razie jeszcze mnie nie interesują (zainteresują jak dzieciaki pójdą do szkoły :) ). Jedyną pozycją nadającą się do kupna był wymieniony wyżej tytuł. Nie mając większego wyboru kupiłem tą książkę.
Obawy co do nieważności książki były tak duże, że o mało co, nie wylądowała na półce bez czytania. No ale skoro książka już jest to chociaż pierwszy rozdział… i tak już do końca.

Moje obawy stały się w pełni niesłuszne. Książka porusza problemy „okołoprogramistyczne” i jeżeli już w niej natkniemy się na fragmenty kodu, to łatwo go zaadaptować do nowej wersji Rails. Co więcej – po przeczytaniu książka awansowała w moim osobistym rankingu z „książki do starych wersji, częściowo nieaktualne” do „książki, które powinny być pod ręką albo w pamięci”.
Lektura tej książki dostarczyła mi bardzo dużo przydatnych informacji. Co w środku:

Pierwszą rzeczą, której nauczyłem się z książki było pisanie nowych funkcjonalności i wprowadzenie ich do projektu w postaci gemów. Nie ukrywam, że jestem początkującym programistą Ruby’ego i ten rozdział przyniósł mi dużo wiedzy na ten temat. Niezamierzenie przez autora przyniósł mi także sporo wiedzy o Ruby reflection.

Kolejnym tematem w książce są bazy danych i ich optymalizacja. Poruszane jest tu na prawdę dużo ciekawych tematów, walidacja na poziomie baz danych, normalizacja, triggery, korzystanie z „widoków bazodanowych” w aplikacji. Opisane jest także dziedziczenie wielotabelarczyne, które dostarczyło całkiem nowe spojrzenie na railsy. Wiele razy spotkałem się z problemem, które zdają się błahe po przeczytaniu tego rozdziału. Myślę, że dla samego opisu dziedziczenia wielotabelarycznego warto zaopatrzyć się w tą pozycję.

Kolejne rozdziały opisują webservices i jak z nich korzystać efektywnie, oraz problemy cache’owania aplikacji.

Myślę, że książka ta powinna znaleźć się na półce każdego programisty Rails. Mimo, że na wiek książki nie wszystkie (jednak..) informacje są aktualne, jest ich na prawdę niewiele. Reszta w całości lub w części może być śmiało zastosowana w naszym projekcie, aby zwiększyć jego bezpieczeństwo lub optymalne działanie.
.