Изучение Rails на примерах |
- Statistics
- Participants
- Translate into Russian
- Translation result
- 90% translated in draft. Almost done, let's finish it!
Введение
Моя компания (CD Baby), была одной из первых компаний, которая открыто перешла на Ruby on Rails, но затем вернулась на PHP (Google расскажет об этой драме). Эту книгу, написанную Майклом Хартл (Michael Hartl), так рекомендовали, что я должен был прочесть её, и Ruby on Rails Tutorial это всё, что я использовал, чтобы вернуться к Rails снова.
Хотя я уже прочел много книг по Rails, это одна из немногих, которая, наконец, зацепила меня. Было много написано книг типа "Путь Rails" — после которых я чувствовал себя неестественно, но после этой книги я наконец почувствовал себя естественно. Это также единственная книга по Rails, которая соблюдает методику "разработка через тестирование" в течении всего времени, этот подход строго рекомендуется специалистами, но никогда не был так чётко продемонстрировал ранее. Наконец, Git, GitHub и Heroku присутствуют в демо-примерах, автор действительно дает вам почувствовать, какого это, делать реальный проект. Код учебных примеров не изолирован.
Прямое повествование — отличный формат. Лично я прошел Rails Tutorial в течении трёх долгих дней, делая все примеры и задачи в конце каждой главы. Делайте всё от начала до конца, ничего не пропуская, для получения наилучшего эффекта.
Не скучайте!
Derek Sivers (sivers.org)
Ранее: один из основателей CD Baby
В настоящее время: основатель Thoughts Ltd.
Благодарности
Учебник Ruby On Rails во многом обязан моей предыдущей книге по Rails, RailsSpace и, следовательно, моему соавтору Aurelius Prochazka. Я хотел бы поблагодарить Aure как за работу, которую он проделал над предыдущей книгой, так и за поддержку этой. Я также хотел бы поблагодарить Debra Williams Cauley, моего редактора обеих книг RailsSpace и Rails Tutorial; пока она водит меня на бейсбол, я продолжаю писать книги для нее.
Я хотел бы поблагодарить большой список тех, которые учили и вдохновили меня на протяжении многих лет: David Heinemeier Hansson, Yehuda Katz, Carl Lerche, Jeremy Kemper, Xavier Noria, Ryan Bates, Geoffrey Grosenbach, Peter Cooper, Matt Aimonetti, Gregg Pollack, Amy Hoy, Dave Chelimsky, Pat Maddox, Tom Preston-Werner, Chris Wanstrath, Chad Fowler, Josh Susser, Obie Fernandez, Ian McFarland, Steven Bristol, Giles Bowkett, Evan Dorn, Long Nguyen, James Lindenbaum, Adam Wiggins, Tikhon Bernstam, Ron Evans, Wyatt Greene, Miles Forrest, хороших людей из Pivotal Labs, команду Heroku, thoughtbot ребят, и команду GitHub. Наконец, многих читателей, всех не перечислить, написавших множество сообщений об ошибках и предложений, во время написания этой книги, и я с благодарностью признаю их помощь в написании книги настолько хорошей насколько это возможно.
Об авторе
Майкл Хартл - программист, издатель и предприниматель. Майкл был соавтором RailsSpace, бестселлера Rails tutorial book, опубликованного в 2007 году и был сооснователем и ведущим разработчиком Insoshi, популярной социальной сети на платформе Ruby on Rails.
Ранее он преподавал теоретическую и компьютерную физику в калифорнийском институте технологий(Caltech) в течение шести лет , где он получил награду "Жизненные достижения" за отличное преподавание в 2000 году. Майкл закончил Гарвард, имеет степень по физике и выпускник Y Combinator program.
Копирайты и лицензии
Ruby on Rails Tutorial: Learn Rails by Example. Copyright © 2010 by Michael Hartl. All source code in Ruby on Rails Tutorial is available under the MIT License and the Beerware License.
Copyright (c) 2010 Michael Hartl
Настоящим разрешением утверждено: бесплатно для всех!
получение копии этого ПО и связанной документации.
(так называемое Software), называемое далее Software за исключением
ограничений, включающих введение ограничение прав использования,
копирования, модификации, объединения, публикации, дистрибуции, сублицензирования и/или продажи
копий Software, и допуская персональное использование
Software конечными пользователями при выполнении следующих
условий:
Прилагаемая к документам об авторском праве записка и записка с разрешением должны быть включены во все копии значительных частей программного обеспечения.
.
ДАННОЕ ПО ПРЕДОСТАВЛЕНО «КАК ЕСТЬ» БЕЗ КАКИХ БЫ ТО НИ БЫЛО ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, СООТВЕТСТВИЯ ПО ЕГО ПРЕДНАЗНАЧЕНИЮ И ЦЕЛОСТНОСТИ ПО. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПО ИЛИ ИСПОЛЬЗОВАНИЕМ ПО ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПО.
.
.
.
.
.
.
.
.
.
* "THE BEERWARE LICENSE" (Revision 42):
* Весь код написан Майклом Хартлом. До тех пор пока вы осознаете это, вы можете
делать с ним все что захотите. Если мы когда нибудь встретимся, и если это того стоило
вы можете купить мне банку пива в качестве обмена.
* ---------------------------------------------------------------------------
*/
Глава 1: Развертывание
Добро пожаловать в Rails Tutorial: Изучаем Rails на примерах. Цель этой книге дать лучший ответ на вопрос: "Если я хочу научиться веб-разработки на Ruby On Rails, где я должен начать?" К моменту как Вы завершите Ruby on Rails Tutorial, вы будете иметь все знания необходимо разрабатывать и развертывать собственные веб-приложения. Вы также будете готовы извлечь выгоду из многих более продвинутых книг, блогов и видеороликов, которые являются частью процветающей образовательной экосистемы Rails. Наконец, так как Ruby on Rails Tutorial использует Rails 3.0, знания, полученные здесь будут полностью соответствовать современным требованиям новейшей и самой лучшей версии Rails.
1. Ruby on Rails Tutorial следует по существу тому же подходу, что и моя предыдущая книга Rails; 2. преподавании веб-разработки Rails путём создания реального приложения с нуля. Как отмечает Дерек Сиверс в предисловии, эта книга структурирована линейно, поэтому следует читать от начала до конца. Если вы привыкли к прыгать в технических книг, применение этого линейного подхода может потребовать от Вас некоторой корректировки, но я предлагаю попробовать. Вы можете думать о Ruby on Rails Tutorial как о видео-игре, где Вы - главный герой, получающий новый уровень, как Rails разработчик, в каждой главе. (упражнения - это минибоссы)
В первой главе, мы начнем с установки ПО и настройке окружения (часть 2.1). Мы создадим наше первое RoR-приложение под названием "first_app". Rails Tutorial придаёт особое значение хорошей практике по разработке ПО, так что немедленно после создания свежего Rails проекта мы поместим его под контроль версий Git (часть 1.3). И, верите или нет, в этой главе мы даже поместим наше первую программу в веб развернув его в производство.
Во второй главе, мы создадим второй проект, которым продемонстрирует нам базовые возможности Rails. Для быстрой разработки, мы воспользуемся scaffolding'ом. (часть 1.1) для генерирования кода; так как этот код одинаково некрасив и сложен, Глава 2 будет сосредоточена на взаимодействии с демо приложением через URL используя веб браузер.
В третьей главе мы создадим пример прикладной программы (под названием sample_app), на этот раз написав весь код с нуля. Мы разработаем программу используя метод разработки через тестирование (TDD), начиная в главе 3 создавая статичные страницы и затем добавляя немного динамичного содержания. Мы проведем небольшой тур в главе 4 для того чтобы изучить язык Ruby с точки зрения Rails. Затем, в главах 5-10, мы закончим создание программы, создав план сайта, модель пользовательских данных, и полную систему регистрации и идентификации. Наконец, в главах 11 и 12 мы добавим микроблог и социальные возможности, сделав рабочий образец сайта.
Последнее приложение будет иметь мало сходства с популярными социальными сайтов микроблога - сайтов, которые ,по совпадению, тоже написаны на Rails. Несмотря на концентрации общих усилий на этом конкретном примере, особенный упор на протяжении всего курса Rails Tutorial будет сделан на главных принципах, поэтому имея твердую основу не важно какой вид приложения вы хотите создать.
Часть 1.1. Scaffolding: Быстрее, легче, более привлекательно.
С самого начала, Rails имело преимущество в очевидном чувстве волнения, начиная с знаменитого 15-минутного видео в блоге создателя Rails Дэвида Хансона, которое теперь
При написании Учебника Ruby on Rails было заманчиво положиться на подход scaffolding - он быстрее, легче, обольстительней. Но сложность и огромный объем кода в scaffolding могут быть крайне подавляющими для начинающего разработчика Rails, может быть Вы сможете его использовать, но Вы, вероятно, не будете понимать его. Следуя scaffolding подходу Вы рискуете превратиться в виртуозного генератора скриптов с пустяковыми (и хрупкими) фактическими знаниями Rails.
В Ruby on Rails Учебнике, мы будем придерживаться (почти) полярно противоположного подхода: хотя Глава 2 и разрабатывает небольшое демонстрационное приложение, с использованием scaffolding, ядро Учебника - пример приложения, которое мы начнем писать в Глава 3. На каждом этапе разработки примера приложения мы будем генерировать маленькие, съедобного размера куски кода, достаточно простые для понимания, но все же достаточно непривычные, требующие усилий. Суммарный эффект будет более лубоким, а более гибкое знание Rails даст Вам хорошие предпосылки для, написания веб-приложения почти любого типа.
1.1 Введение
Со времен его дебюта в 2004 году, Ruby on Rails быстро стал одним из самых мощных и популярных фреймворков для построения динамических веб-приложений. Пользователи Rails охватывают широкий диапазон задач, начиная со стартапов и заканчивая огромными компаниями: Posterous, UserVoice, 37signals, Shopify, Scribd, Twitter, Hulu, the Yellow Pages - вот список сайтов, использующих Rails и он все пополняется и пополняется. Также существуют веб-магазины по разработке, специализируюшие на Rails, такие как ENTP, thoughtbot, Pivotal Labs, Hashrocket и еще бесчисленные независимые консультанты, трейнеры и контрагенты.
Что же делает Rails таким замечательным? Во-первых, Ruby on Rails на сто процентов открыт, доступен в силу лицензии MIT, и в результате его можно загрузить и использовать бесплатно. Rails также обязан своим успехом его элегантному и удобному дизайну; также используя гибкость языка Ruby, лежащего в его основе, Rails эффективно создает предметно-ориентированный язык для написания веб-приложений. Как результат много общих заданий по веб-программированию - такие как генерирование HTML, составление моделей данных , и роутинг URL - это все легко реализуется использованием Rails, и в результате получается компактное и надежное приложение.
Rails также быстро адаптируется к новым тенденциям в веб-технологиях. Например, Rails был одним из первых, кто полностью реализовал архитектурный стиль REST для веб-приложений. И когда другие фреймворки успешно разрабатывают новые техники, создателель Rails David Heinemeier Hansson, и команда, пишушая ядро Rails, не стесняется включать свои идеи. Пожалуй, наиболее ярким примером является слияние Rails и Merb, соперник Rails, так что Rails теперь получает преимущества от модульной конструкции из Merb, стабильного API, а также повышеной производительности.
Наконец, Rails выграло от необычайно увлечённого и разнообразного сообщества. Результаты: сотни участников, хорошо посещаемые конференции, огромное количество плагинов и гемов (автономные решения конкретных проблем, таких как нумерация страниц и загрузка изображений), богатый набор информативных блогов, и множество обсуждений на форумах и IRC каналов. Большое количество активных программистов Rails облегчает поиск ошибок приложения в гугле, почти всегда находятся соответствующие сообщения в блогах или обсуждениях на форумах.
1.1.1 Комментарии читателей
Rails Tutorial содержит интегрированные учебники не только для Rails, но и для лежащего в основе Ruby, а также HTML, CSS, JavaScript некоторые, и даже немного SQL. Это означает, что, независимо от ваших знаний веб-разработки, к моменту завершения этого учебника вы будете готовы для более продвинутых Rails ресурсов, а также для более систематического подхода в изучении других упомянутых вопросов.
Rails получает большую часть своей силы от "магии", то есть от оссобенностей фреймворка (таких, как автоматическое добавление атрибутов объекта из названий столбцов базы данных), совершающих чудеса, но, эти механизмы могут быть весьма таинственны. Ruby on Rails Tutorial не предназначен для объясния этого волшебство, главным образом потому, что большинство разработчиков Rails приложение не нужно знать, что внутри. (В конце концов, Ruby сам написан на языке программирования Си, но вам не придётся копаться в исходный коде Cи при использовании Ruby.) Если вы хотите разобраться глубже, то я рекомендую "The Rails 3 Way" by Obie Fernandez в качестве сопроводительной литературы к Ruby On Rails Tutorial.
Хотя эта книга не имеет особых условий, вы должны, конечно, по крайней мере иметь некоторый опыт работы с компьютером. Если вы даже никогда не использовали текстовый редактор прежде, будет тяжело, но если у вас достаточно решимости вы, вероятно, дойдёте до конца. Rails Tutorial предназначен для обучения разработки на Rails вне зависимости от вашего знаний, но ваш путь будет зависеть от конкретных обстоятельств.
Читатели задаются один общим вопросом, при изучении Rails нужно ли учить сначала Ruby. Ответ зависит от вашего личного предпочтения в обучении. Если вы предпочитаете учиться систематически с нуля, то выучив сначала Ruby будет полезно для вас, и для вас есть несколько рекомендаций в этом разделе, чтобы вы начали обучение. С другой стороны, многие разработчики Rails хотят сразу писать веб-приложения, и не хотят сидеть над 500-страничной книгой на чистом Ruby перед тем, как напишут простейшую веб-страничку. Кроме того, приёмы необходимые для Rails разработчиков отличается от тех, что вы найдете в введении в книге по Ruby, когда как Rails Tutorial посвящен именно приёмам работы с Rails. Если ваш основной интерес в написании веб-приложений, я рекомендую начинать с Rails Tutorial, а затем читает книги по Ruby. Но если вы начнете читать Rails Tutorial и считаете, что у вас не хватка знаний по Ruby сдерживает вас, не стесняйтесь, чтобы перейти к книге Ruby и затем вернуться, когда вы почувствуете, что готовы. Вы можете также попробовать на вкус Ruby, рассматривая краткие интерактивные учебные пособия, такие как http://www.ruby-lang.org/ и http://rubylearning.com/.
Другой распространенный вопрос, который состоит в том, стоит ли использовать тестирование в начале. Как было отмечено во введении, Rails Tutorial использует Разработку через тестирование (или сначала тестирование, потом разработка), что на мой взгляд, лучший способ разрабатывать Rails приложения, но это превносит значительный объем работы и сложностей. Если вы обнаружили застряли на тестировании, не стесняйтесь, чтобы пропустить их при первом прочтении. Действительно, некоторые читатели могут запутаться в таких вещах, как тестирование, системе контроля версий, а также в развертывании приложения, если вы не найдете в себе энергии по любому из этих шагов, не стесняйтесь, чтобы пропустить их. Хотя у меня включен только материал, который я считаю чрезвычайно важным для развивающихся профессиональных Rails приложений, только код основного приложения, строго необходимым в первый время.
Неопытные программисты (не дизайнеры): Учебник Rails не предполагает других знаний, чем общие знания компьютера, поэтому если у вас ограниченный опыт программирования, то эта книга является хорошим стартом. Пожалуйста, имейте в виду, что это только первый шаг в долгий путь; веб-разработок включает в себя множество вопросов, такие как HTML / CSS, JavaScript, базы данных (включая SQL), системы контроля версияй и развертывание. Эта книга содержит краткое введение в эти вопросы.
Неопытные программиста (дизайнеры): Ваши дизайнерские навыки дают вам огромное преимущество, по скольку вы уже вероятно знаете HTML и CSS. После прочтения этой книги вы будете готовы работать с увлекательными проектами Rails и у вас будет возможность начать собственный проект. Вы можете подумать, что материал слишком сложен, но язык Ruby обычно расположен к начинающим, особенно к тем, у кого есть художественные задатки.
После завершения учебного пособия Ruby on Rails я рекомендую то, что программисты никогда не читают, Beginning Ruby Питера Купера, которое разделяет основные инструкции учебного пособия Rails. Также я рекомендую The Ruby Way Хола Фултона. И наконец, чтобы достигнуть глубинного понимания Rails я рекомендую The Rails 3 Way Оби Фернандеза.
Веб- приложения. даже если они одного типа, по своей природе довольно разнообразны. Если вы только начинаете в веб программировании и находите учебное пособие Rails непреодолимо трудным, возможно вы не совсем еще готовы создавать веб приложения.В таком случае я предлагаю изучить основы HTML и CSS, а затем дать учебному пособию по Rails еще один шанс. (К сожалению, я не имею личных рекомендаций в этой области , но Head First HTML выглядит обещающе и также читатели CSS рекомендуют: The Missing Manual Девида Сейвера Мак фарланда.) Вы должно быть также рассмотрели первые несколько глав Beginning Ruby, которые начинаются с простых форм, которые намного меньше чем полномасштабный web app.
Опытные программисты, но новички в веб-разработке: Ваш предыдущий опыт означает, что вы возможно уже поняли идеи классов, методов, данных, структур и так далее. , что дает вам огромное преимущество. Стоит побеспокоится лишь если ваши знания основаны на C/C++ или Java, вы можете найти Rubу лишь малой частью добавлений и может потребоваться немало времени чтобы к нему привыкнуть; просто придерживайтесь этого иногда. ( Ruby даже позволит вам поставить точку с запятой в конце строки, если вы много их пропустите). Учебник по Rails охватывает все нужные вам специфические идеи по вебу, так что не волнуйтесь если не знаете текущий PUT из POST.
Опытные веб-разработчики, но новички в Rails: Вы имеете большое преимущество, особенно если вы использовали динамические языки, такие как PHP или (что лучше) Python. Основы, которыми мы владеем, покроют, вероятно, давно знакомые, но не испытанные в разработке, возможно новые для вас, как возможно
Опытные программисты на Ruby: Общество программистов на Ruby, кто не знает Rails незначительно мало сейчас, но если вы относитесь к такой группе, вы можете проглядеть эту книжку и затем переключиться на The Rails 3 Way Оби Фернандеза.
Неопытные программисты на Rails : Вы возможно читали некоторые другие учебники и создавали небольшие Rails приложения сами. Базируясь на прочитанном материале, с уверенностью могу сказать, что вы все еще можете извлечь массу полезной информации из этой книги. Из всего ,что есть, техники тут более современны, чем те,что вы почерпнули уже изучая Rails.
Опытные программисты Rails: Эта книга не нужна вам, но многие опытные разработчики Rails удивляются сколько нового они узнают из этой книги, и вы можете наслаждаться перспективой дальнейшего развития Rails .
После прочтения учебного пособия Ruby on Rails я рекомендую опытным программистам (не на Ruby ) почитать The Well-Grounded Rubyist Девида А. Блека, это отличный углубленный материал , описывающий Rails с самых основ, или The Ruby Way Хола Фултона, который также имеет высокий уровень, но требует более тематического подхода. Переход на The Rails 3 Way углубит ваш опыт по Rails.
И в конце этого обучения, не имеет значения когда вы начали, вы уже будете готовы к более продвинутым ресурсам Rails. Тут я кое-что рекомендую:
* Railscasts: Excellent free Rails screencasts
* PeepCode, Pragmatic.tv, EnvyCasts: Excellent commercial screencasters
* Rails Guides: Хорошие тематические и современные рекомендации. Учебник по Rails часто рекомендует Rails Guides для более углубленного изучения специфических тем.
* Rails blogs: Слишком много, что бы выстроить их в список,но содержит тонны полезной информации.
1.1.2 Масштабирование Rails
Прежде чем двигаться дальше, я хотел бы воспользоваться моментом для решения одного вопроса, преследовавшего Rails прежде всего в первые дни его существования: мнимая неспособность Rails к масштабируемости, то есть для обработки большого трафика. Частично этот вопрос опирается на заблуждение, вы масштабируете сайт, а не фреймворк, а Rails - это лишь фреймворк. Таким образом, реальный вопрос должен звучать так: "Может ли сайт построенный на Rails масштабироваться?" В любом случае, на этот вопрос в настоящее время можно окончательно ответить утвердительно: некоторые из наиболее нагруженных сайтов в мире используют Rails. Вообще масштабирование выходит за рамки Rails, но будьте уверены, что если вашему приложению нужно будет справиться с нагрузкой от Hulu либо от Yellow Pages, Rails не помешает вам.
1.1.3 Соглашения
Соглашения в этой книге в основном не требуют пояснений, и в этом разделе я упомяну некоторые. Во-первых, как в HTML, так и PDF издание этой книги полны ссылок на внешние сайты.
Во-вторых, ваш покорный автор линуксоид/маковод и не использует венду в качестве своей основной ОС более чем десять лет, в результате чего, Rails Tutorial имеет привкус никсов. Например, в этой книге все примеры используют командную строку в стиле никсов:
<code>$ echo "hello, world"
hello, world</code>
Rails поставляется с большим количеством команд, которые можно запустить в командной строке. Например, в п. 1.2.5 мы запускаем локальный веб-сервер следующим образом:
<code>$ rails server</code>
Rails Tutorial будет использовать косую черту в качестве разделителей директорий, мой пример приложения, например, живет в
<code>/Users/mhartl/rails_projects/first_app</code>
Корневой каталог для любого приложения называется Rails root, и отныне все директории будут привязаны к нему. Например, директория настроек моего примера приложения находится в
<code>/Users/mhartl/rails_projects/first_app/config</code>
Это означает, что когда речь идёт о файле
<code>/Users/mhartl/rails_projects/first_app/config/routes.rb</code>
Я буду опускать путь до корневой директории Rails и писать <code>config/routes.rb</code> для краткости.
Наконец, Rails Tutorial зачастую показывает вывод различных программ (команды оболочки, состояния, версии, статусы, Ruby программ, и т.д.). Из-за бесчисленных малых различий между различными компьютерными системами, выход вы видите, не всегда могут договориться именно с тем, что показано в тексте, но это не повод для беспокойства. Кроме того, некоторые команды могут вызвать ошибки в зависимости от вашей системы. Я поручаю вам находить эти ошибки в гугле, это среди прочего является хорошей практикой для реальной разработки программного обеспечения.
1.2 За работу
Настало время, чтобы начать разрабатывать на Ruby On Rails наше первое приложение. Здесь будет немного лишних действий, особенно если у вас нет опыта программирования, так что не расстраивайтесь, вам потребуется время, чтобы начать работу. Проблема не только вас, каждый разработчик проходит через это(часто более чем один раз), но будьте уверены, что эти усилия будут щедро вознаграждены.
1.2.1 Средства разработки
Принимая во внимание различные своеобразные настройки и предпочтения, вероятно, что существует столько вариантов сред разработки, сколько и Rails программистов, но по крайней мере две общие темы: текстовый редактор/ командная строка и интегрированная среда разработки (IDE). Рассмотрим последнее первый.
Original (English): Learn Rails by Example
Translation: © gafar, mystdeim, weblomaster, blackkitty131, jonygreen, Shepelin.Denis, hostage, razor-empire, space_indus, Night .
