# coding: utf-8

1.1.1 Комментарии для разных читателей

Учебник Rails содержит интегрированные учебники не только по Rails, но и по лежащему в его основе Ruby, а также HTML, CSS, немного JavaScript, и даже чуть чуть SQL. Это означает, что, независимо от ваших знаний веб-разработки, к моменту завершения этого учебника вы будете готовы для более продвинутых Rails ресурсов, а также к более систематичной проработке других упомянутых тем.

Rails получает большую часть своей силы от «магии», то есть от функций платформы (таких, как автоматическое добавление атрибутов объекта из столбцов базы данных), совершающих чудеса, но чьи механизмы могут быть весьма таинственными. Учебник Ruby on Rails разработан, не для объяснения этого волшебства - главным образом, потому что большинству разработчиков приложений Rails никогда не понадобится знать, что находится за занавесом. (В конце концов сам Ruby главным образом (по большей части) пишется на языке программирования C, но Вы не должны копаться в исходниках C, чтобы использовать Ruby.) Если Вы - неисправимый "сдергиватель занавесов", я рекомендую книгу The Rails 3 Way Obie Fernandez в качестве сопроводительной литературы к Ruby on Rails Tutorial.

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

Все читатели: Один общий вопрос при изучении Rails состоит в том, изучить ли Ruby сначала. Ответ зависит от Вашего персонального стиля обучения. Если Вы предпочитаете изучать все систематически с нуля, то изучение Ruby сначала могло бы подойти для Вас, и есть несколько книжных рекомендаций в этом разделе, чтобы дать вам возможность начать. С другой стороны много начинающих Rails разработчиков вдохновляются созданием веб-приложений, и скорее всего не станут сидеть над книгой в 500 страниц о чистом Ruby прежде чем написать единственную веб-страницу. Кроме того, приёмы необходимые для Rails разработчиков отличается от тех, что вы найдете в введении к книге по Ruby, тогда как Rails Tutorial посвящен именно приёмам работы с Rails. Если ваш основной интерес в написании веб-приложений, я рекомендую начинать с Rails Tutorial, а затем читать книги по Ruby. Это не бескомпромиссное предложение: если Вы начнете читать Учебное руководство Rails и почувствуете что Ваше (отсутствующее) знание Ruby, сдерживает Вас, без опасений переключайтесь на книгу Ruby и возвращайтесь, когда почувствуете себя готовым. Вы можете также познакомиться с Ruby, следуя коротким онлайновым учебным руководствам, вроде тех что могут быть найдены в http://www.ruby-lang.org/ и http://rubylearning.com/.

Другой распространенный вопрос, состоит в том, стоит ли использовать тестирование с самого начала. Как было отмечено во введении, Rails Tutorial использует Разработку через тестирование (также называемую "сначала тест" разработкой), которая по моему мнению является лучшим способом разработки Rails приложений, но это действительно превносит значительный объем работы и сложностей. Если вы обнаружили себя застрявшим на тестировании, не стесняйтесь пропустить его при первом прочтении.5 Действительно, некоторые читатели могут запутаться в таких вещах, как тестирование, системе контроля версий, а также в развертывании приложения, если вы не найдете в себе энергии по любому из этих шагов, пожалуйста, пропустите их. Хотя у меня включен только материал, который я считаю чрезвычайно важным для разработки профессиональных Rails приложений, только код основного приложения является строго необходимым в первое время.

Неопытные программисты (не дизайнеры): Учебник Rails не предполагает наличие других знаний, кроме общей компьютерной грамотности, поэтому, если у вас ограниченный опыт программирования, то эта книга является хорошим стартом. Пожалуйста, имейте в виду, что это только первый шаг на долгом пути; веб-разработка включает в себя множество вопросов, таких как HTML / CSS, JavaScript, базы данных (включая SQL), системы контроля версиями и развертывание. Эта книга содержит лишь краткое введение в эти вопросы, но еще многое нужно изучать дополнительно.

Неопытные программисты (веб дизайнеры): Ваши навыки web дизайна будут Вам большим подспорьем, поскольку вы уже, вероятно, знаете HTML и CSS. После прочтения этой книги вы будете готовы работать с увлекательными проектами Rails и у вас будет возможность начать собственный проект. Вы можете обнаружить материал программирования непростым, но язык Ruby необычайно дружелюбен к новичкам, особенно к тем, у кого есть художественные наклонности.

После окончания Ruby on Rails Учебника, я рекомендую, малознакомое програмистам чтиво Beginning Ruby (автор - Peter Cooper), который отчасти использует ту же самую основную концепцию обучения что и Rails Учебник. Я также рекомендую The Ruby Way (автор - Hal Fulton). Наконец, чтобы получить более глубокое понимание Rails, я рекомендую The Rails 3 Way (автор - Obie Fernandez).

Веб-приложения, даже относительно простые, по своей природе довольно сложны. Если Вы абсолютный новичок в веб-программировании и находите Учебник Rails подавляющим, может случиться так, что Вы все же не совсем готовы делать веб-приложения. В этом случае я предложил бы изучить основы HTML и CSS, а затем дать Учебнику Rails еще один шанс. (К сожалению, здесь у меня нет персональной рекомендации, но Head First HTML выглядит многообещающе, и один читатель рекомендовал CSS: The Missing Manual автора David Sawyer McFarland.) Вы могли бы также рассмотреть чтение первых нескольких глав Beginning Ruby, которое начинается с примеров, намного меньших нежели развитое веб-приложение.

Опытные программисты, плохо знакомые с веб-разработкой: Ваш предшествующий опыт означает, что Вы, вероятно, уже понимаете такие идеи как классы, методы, структуры данных, и т.д., что является большим преимуществом. Предупреждаю, что, если Вы ранее программировали на C/C ++ или Java, вы можете найти Ruby немного странным, и может потребоваться некоторое время, чтобы привыкнуть к нему; в конце концов Вы справитесь. (Ruby даже позволит Вам помещать точки с запятой в конце строк, если Вы сильно по ним скучаете.) Учебное руководство Rails освещает все веб-специфичные идеи, которые Вам нужны, так что не волнуйтесь, что не знаете в настоящий момент чем отличается PUT от POST.

Опытные веб-разработчики, плохо знакомые с Rails: у Вас есть большое преимущество, особенно если Вы ранее использовали динамичный язык, такой как PHP или (даже лучше) Python. Основа того, что мы освещаем, вероятно, будет знакома, но разработка через тестирование может оказаться в новинку для Вас, как может быть и структурно оформленный REST стиль, излюбленный Рельсами. У Ruby есть свои собственные характерные особенности, так что они, вероятно, также будут вновинку.

Опытные Ruby программисты: группа Ruby программистов, которые не знают Rails, является малой в настоящее время, но если Вы - член этой элитной группы, можете пролистать эту книгу, а затем перейти к The Rails 3 Way (автор - Obie Fernandez).

Неопытные програмисты Rails: Вы, возможно, читали некоторые другие учебные руководства и сделали несколько малых приложений Rails самостоятельно. Основываясь на отзывах читателей, я уверен, что вы можете многое почерпнуть из этой книги. Между прочим, методы здесь могут оказаться более актуальными чем те, которые Вы добыли, когда первоначально изучали Rails.

Опытные программисты Rails: Эта книга не нужна вам, но многие опытные разработчики Rails удивляются сколько нового они узнают из этой книги, и вы можете наслаждаться перспективой дальнейшего развития Rails.

После прочтения Учебника Ruby on Rails я рекомендую опытным (не-Ruby) програмистам почитать The Well-Grounded Rubyist автора David A. Black, это отличный глубокий материал, описывающий Rails с самых основ, или The Ruby Way автора Hal Fulton, который также имеет высокий уровень, но проявляет более актуальный подход. Затем переходите на The Rails 3 Way углубит ваш опыт по Rails.

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



  • Railscasts: Замечательные бесплатные Rails скринкасты # очень рекомендую их качественный перевод на русский на http://www.railscasts.ru/
  • PeepCode, Pragmatic.tv, EnvyCasts: Замечательные платные скринкасты
  • Rails Guides: Хорошие актуальные и обновленные Rails руководства. Учебник Rails часто рекомендует Rails Guides для более углубленного изучения определенных тем. # их перевод можно найти на http://www.rusrails.ru/
  • Rails блоги: Слишком много, чтобы составить их список, но там содержатся тонны полезной информации.

1.1.2 Масштабирование Rails

Прежде чем двигаться дальше, я хотел бы воспользоваться моментом для решения одного вопроса, преследовавшего Rails прежде всего в первые дни его существования: мнимая неспособность Rails к «масштабируемости«, то есть для обработки большого трафика. Частично этот вопрос опирается на заблуждение; Вы масштабируете сайт, а не фреймворк, и Rails, каким бы обалденным не был – лишь фреймворк. Таким образом, реальный вопрос должен звучать так: «Может ли сайт построенный на Rails масштабироваться?» В любом случае, на этот вопрос теперь можно окончательно ответить утвердительно: некоторые из наиболее нагруженных сайтов в мире используют Rails. Вообще масштабирование выходит за рамки Rails, но будьте уверены, что если Вашему приложению нужно будет справиться с нагрузкой как у Hulu либо как у Yellow Pages, Rails не помешает Вам покорить мир.

# coding: utf-8