Как стать автором
Обновить

Обзор книги «Beginning Rails 3»

Ruby on Rails


С самого своего выхода третья версия этого замечательного фреймворка начала активно вытеснять вторую. Это, конечно, прекрасно, но изменений между версиями довольно много, некоторые имеют статус deprecated. А это значит, что одних только знаний второй версии для полноценного использования Rails будет недостаточно.
Именно так я рассуждал, когда начал искать литературу по третьим рельсам. Почему именно литературу, а не документацию? Потому что только осенью я обратил внимание на этот фреймворк, а учиться лучше всё же по книгам (я так считаю). И какова же была моя радость, когда я наткнулся на сайт книги Beginning Rails 3, которая вышла в свет только в сентябре.

Формат книги


Сразу хочется отметить, что книга эта — изначально e-book, благодаря чему её достаточно комфортно читать с монитора или электронной книги. Разумеется, продаётся и печатная версия, но мне кажется, что лучше (и дешевле, и надёжнее с нашей почтой) купить электронную версию, а потом, если нужно, самостоятельно напечатать.
Книга, к сожалению, на русский язык не переводилась, но написана очень доступным языком и читается без проблем.

Подача материала


Авторы уделяют много внимания не только описанию самого фреймворка, но и его философии. Перед тем как описать использование какого-либо элемента платформы, они плавно подводят читателя к проблеме, которую призван решить этот элемент (например, проблема поддержания актуальности структуры БД при использовании СКВ перед главой о миграциях) и стараются объяснить, почему разработчиками Рельсов выбран именно этот путь решения.
Книга построена на разработке блога. Начиная с простейших CRUD-операций и скаффолдера, к концу книги мы подходим к вопросам тестирования, интернационализации и развёртывания приложения.
Законченные примеры сопровождаются ссылкой на github, откуда можно скачать исходники. В самих листингах, если модифицируется код из старых примеров, внесённые изменения выделяются жирным шрифтом, что сильно упрощает анализ кода. В коде достаточно комментариев, плюс каждое действие потом расписывается авторами достаточно подробно, чтобы по примерам не возникало вопросов. Важные моменты выделены в примечания и предупреждения, которые случайно не проскочишь.

Содержание


Как я уже говорил, книга построена на постепенном создании блога. Каждая глава описывает определённый элемент фреймворка, и параллельно с описанием элемента нам тут же показывают, как его применять в реальном приложении, а не на синтетических примерах.
Но хотелось бы сказать о каждой главе в отдельности.

Chapter 1. Introducing the Rails Framework

В этой главе начиная от причин появления фреймворков вообще, авторы переходят к причинам того, почему стоит остановить свой выбор именно на Rails и в качестве аргументов приводят такие аргументы как удобство самого Ruby (метапрограммирование, DSL, удобный синтаксис, объектно-ориентированность; впрочем, последние два пункта можно подвести и под любые другие языки, но уж как написано), близость фреймворка к принципам agile-разработки, концепции «примата конфигурации», KISS и DRY, удобство «синтаксического сахара».
Далее рассматривается паттерн MVC, модульность фреймворка и, что примечательно, всё же обращают внимание на то, что Rails — это «не серебряная пуля».
В целом глава даёт хорошее представление о том, зачем нужны рельсы и фреймворки вообще, а также какие идеи используются при разработке приложений на Rails.

Chapter 2. Getting Started

Во второй главе всё стандартно для таких книг. Установка Rails на Mac, Linux и Windows, установка SQLite, создание первого проекта (ну кто бы сомневался, что это будет «Hello, world!») и запуск встроенного в рельсы веб-сервера.

Chapter 3. Getting Something Running

А вот тут уже начинается создание того самого блога. Глава представляет собой «быстрый старт» по созданию приложения.
Как и в предыдущей главе рассматривается создание проекта. Но теперь описывается назначение каждого каталога, создание базы данных. Кратко рассматриваются различные генераторы, миграции и скаффолдер.
К концу главы мы получим вполне работающий однопользовательский CRUD-блог.

Chapter 4. Working with a Database: Active Record

Тут всё начинается с понимания сути ORM и ActiveRecord в частности. Объясняется, что реляционный и объектный подходы — это абсолютно разные вещи и что ORM призван «построить мост» между ними.
Далее рассматривается работа с консолью рельсов, которая по ходу книги используется довольно часто.
Ну и основной материал главы — это подробное описание того, что из себя представляет CRUD и достаточно подробного описания этих методов в Rails.
Описываются, конечно не все параметры всех методов, но того, что сказано, вполне достаточно, чтобы потом не потеряться в документации.

Chapter 5. Advanced Active Record: Enhancing Your Models

В этой главе модель рассматривается более глубоко. Поднимаются такие темы как расширение модели своими методами помимо CRUD, ассоциации (очень подробно), расширенный поиск (условия, наборы), валидаторы (а вот тут всё довольно скудно, без документации не обойтись), callback'и модели и вынесение их в отдельные файлы (observer'ы).
Каждая тема идёт параллельно с функционалом блога. Польза от этого становится очевидна когда речь заходит про ассоциации. Действительно подробно расписываются все варианты ассоциаций.

Chapter 6. Action Pack: Working with the View and the Controller

Эта глава оправдывает своё название. В ней рассматривается весь путь прохождения запроса, начиная от роутера и заканчивая рендером. Очень подробно рассматривается RESTful подход, не только «вот вам скаффолдер сделает маршруты, контроллер и шаблоны», но и подробное описание того, как это всё генерируется и как это всё сделать самому.

Chapter 7: Advanced Action Pack

Продолжение шестой главы. Важнейшая часть этой главы — это сессии. Эта тема логически завершается созданием механизма авторизации пользователя на сайте блога. Также тут мы узнаем про вложенные ресурсы и их маршрутизацию, фильтры и хэлперы контроллеров. И всё это, разумеется, сопровождается постепенным улучшением блога.

Chapter 8: Improving Interaction with Ajax

С этой главой у меня возникло больше всего вопросов. Установка JQuery рассматривается, но ни слова про плагины, которые этот процесс упрощают, описывается ручная замена библиотек и правка конфига. Если я не ошибаюсь, существуют готовые решения, которые решают этот вопрос.
Также нет ни слова про RJS-шаблоны. В примерах используется чистый JavaScript с <% ...%> вставками. Я пока ещё не так хорошо знаю рельсы, но RJS из третьей версии вроде не убирали. Да и вообще глава очень скудная и после её прочтения остаётся чувство того, что AJAX в Rails развит не очень сильно.

Chapter 9: Sending and Receiving E-Mail

Основное внимание тут уделено отправке писем. Рассматриваются как простые текстовые письма, так и более сложные, включающие HTML и аттачи.
Также начале главы рассматривается конфигурирование окружения для работы с почтовым сервером, а в конце пара слов про получение писем.

Chapter 10: Testing Your Application

На мой взгляд, это одна из самых интересных глав книги. Очень понятно и подробно рассматриваются сначала юнит-тесты, а потом функциональные и интеграционные тесты. Становится понятно, зачем нужно писать тесты, какие тесты для каких частей приложения применять. Конечно, методика написания хороших тестов тут полностью не описывается, но база для дальнейшего развития в этом направлении даётся хорошая. Достаточно подробно описываются механизмы тестирования, которые встроены в Rails. Весь материал рассматривается на создании набора тестов для блога, с которым мы работаем на протяжении всей книги.

Chapter 11: Internationalization

В этой главе нас сначала знакомят с понятиями интернационализации и локализации, после чего описывают средства Rails предназначенные для построения мультиязычных приложений. Всё просто, понятно и с примерами

Chapter 12: Extending Rails with Plug-ins

Тоже весьма полезная глава. Сначала рассматривается использование плагинов вообще на примере плагина act_as_tagged, а потом нам показывают, как можно создать свой плагин на простеньком примере. В конце главы авторы ещё раз напоминают, что писать свои плагины нужно лишь в том случае, если плагин с нужным функционалом ещё не был написан.

Chapter 13: Deploying Your Rails Applications

Тут нам кратко расскажут о преимуществах развёртывания приложения на хостинге при помощи Capistrano и приведут ссылки на несколько хостингов, где можно разместить своё Rails-приложение.
Дано всё очень кратко, скорее в ознакомительных целях, чем в справочных.

Приложения

В конце книги даны несколько приложений по Ruby, SQL, коммьюнити и Git'у. За исключением коммьюнити приложения смысловой нагрузки практически не несут.

Итог


В целом книга достаточно высокого качества и нацелена на тех, кто только знакомится с Rails. Опытные рельсовики вряд ли найдут что-то особо полезное на её страницах, но, возможно, какие-то отдельные главы помогут и им.
На настольную эта книга не тянет, но если вы только начинаете знакомиться с Rails, то эта книга несомненно вам поможет влиться в ряды рельсовиков.
Теги:ruby on railsrails 3beginning rails 3
Хабы: Ruby on Rails
Всего голосов 43: ↑36 и ↓7 +29
Просмотры1.6K

Похожие публикации

Senior back-end разработчик (Ruby on Rails)
от 200 000 до 320 000 ₽HoodiesМожно удаленно
Team Lead Ruby on Rails
от 300 000 ₽ВГТМосква
Backend Ruby on Rails (Middle / Senior)
от 180 000 до 250 000 ₽Lifetime+МоскваМожно удаленно
Ruby on Rails разработчик (Junior)
от 160 000 ₽Randewoo.ruСанкт-ПетербургМожно удаленно
Backend Ruby On Rails разработчик
от 100 000 до 130 000 ₽RentuТюменьМожно удаленно

Лучшие публикации за сутки