Лучший способ изучить Rails. Введение в Ruby on Rails. Я слышал, что Rails отлично подходит новичкам. Почему

Вайбер на компьютер 21.02.2019
Вайбер на компьютер
  • Tutorial

Ниже я расскажу о том, как собрать Хромиум в домашних условиях, как выбрать задачу из системы баг-трекинга и как сделать так, чтобы ваш код оказался в репозитории.

Для начала хочу сказать, что по адресу www.chromium.org/Home находятся подробнейшие инструкции на все случаи жизни - начиная от получения исходного кода и заканчивая инструкциями по отправке ваших патчей на коммит. Кроме того, рекомендую прочитать этот документ и пройтись по ссылкам в нем.

Процесс для независимого разработчика состоит из следующих шагов:

  1. Собрать Хромиум.
  2. Выбрать баг из Issues List.
  3. Исправить баг, протестировать.
  4. Отправить баг на ревью.
  5. Исправить review issues, перейти к шагу 4.
  6. Попросить ревьюера закоммитить ваш код.
  7. Наслаждаться результатом.
Ниже - подробнее о каждом из шагов.
Шаг 1. Собрать Хромиум
Для сборки требуется достаточно современный компьютер, различные документы на вышеуказанном сайте рекомендуют многоядерный процессор и не менее 8 Гб памяти. Кроме того, потребуется около 60 Гб свободного пространства на жестком диске, в качестве которого рекомендуют использовать отдельный SSD.

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

Мне удалось собрать Хром под Windows и Linux. Под Mac OS не удалось провести линковку, хотя компиляция прошла успешно.

Для сборки под Windows использовался компьютер пятилетней давности с двухядерным процессором и 3 Гб памяти. Полная сборка заняла около 6 часов (не могу сказать точнее, я ставил билд на ночь), плюс линковка - более получаса (на 32 битах оказалось невозможным включить инкрементальную линковку).

Для сборки версии под Линукс был арендован виртуальный сервер в облаке у одного из российских хостеров. Ресурсы там выделяются по запросу и при билде использовалось около 8 Гб памяти и 8 ядер процессора. Оплата там снимается за использованные ресурсы и билд с нуля обошелся, кажется, в 35 рублей. Время полного билда - около часа.

Для сборки под Mac OS использовался хакинтош в виртуальной машине, компиляция заняла больше десяти часов. Я не стал тестировать сборку под этой ОС, лишь убедился, что мои изменения не сломали билд.

Как сказал мне один из работников Google, разработчики, работающие над Хромом, используют два билд бокса с разными операционными системами на их собственный выбор. Он также добавил, что Chrome отличается от Chromium лишь наличием нескольких проприетарных модулей и логотипом. Процесс работы сотрудника Google над Chrome полностью совпадает с процессом работы независимого контрибьютора за исключением того, что сотрудник Google имеет доступ к некоторым закрытым записям в баг-трекере, связанным, например, с безопасностью.

Шаг 2. Выбрать баг из Issues List
Если сборка прошла успешно, вы можете найти открытый баг и попытаться его исправить. Все дефекты, относящиеся к браузеру, находятся в баг-трекере по адресу code.google.com/p/chromium/issues/list .

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

Шаг 3. Исправить баг, протестировать
На этом шаге у вас уже есть работающая сборка и выбранный баг. Все, что вам остается, это попытаться воспроизвести баг и выяснить его причину, пользуясь отладчиком и здавым смыслом. Я пользовался Microsoft Visual C++ 2008 Express Edition (в данный момент они рекомендуют использовать версию 2010).

К счастью, некоторые несоответствия кода гайдлайнам находятся автоматически утилитой gcl, которая используется для создания чейнджлиста перед отправкой на ревью (так, у меня она нашла пробелы в конце строки, которые я не заметил).

Если это ваш первый фикс бага в проекте, то помимо изменений в коде вам необходимо внести ваше имя в файл AUTHORS и включить это изменение в ваш коммит.

Шаг 4. Отправить баг на ревью
Ревью кода перед коммитом в проекте обязательно. Если у автора кода нет прав на запись в репозиторий (а это как раз наш случай), то именно ревьюер, как правило, коммитит код.
Шаг 5. Исправить review issues, перейти к шагу 4
Ревьюеры обычно отвечают на письма в течении 24-48 часов. В моих случаях было несколько раундов ревью, и, насколько я понимаю, это распространенная практика. После того, как все ревьюеры ответят LGTM (looks good to me), вы можете попросить одного из них закоммитить ваш код.
Шаг 6. Попросить ревьюера закоммитить ваш код
Я обычно просто писал что-то вроде “Could you please commit it for me?” и получал через некоторое время письма от tryserver, а потом от commit-bot о том, что код попал в репозиторий.
Шаг 7. Наслаждаться результатом
В целом весь процесс оставил у меня самые положительные впечатления. Код качественный, все организационные и технические моменты подробно задокументированы на сайте chromium.org и в исходном коде. Утилиты удобные, а люди - дружелюбные.

С удовольствием отвечу на вопросы в комментариях.

Теги:

  • chromium
  • google chrome
Добавить метки 13 февраля 2012 в 16:06

Лучший способ изучить Rails

  • Ruby on Rails

Доброго времени суток!

Предисловие

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

Введение

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

Однако, изучение Ruby on Rails является достаточно простым занятием. Это невероятно мощный фреймворк, который имеет огромное сообщество, продвигающее его вперёд. Итак, у нас возникает вопрос: какой способ изучить Rails является лучшим? Вот он - план занятий.

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

Пункт 1: работа с упражнениями в «Try Ruby»

Вы можете подумать, что изучение Ruby является здесь самым важным шагом, но это не так. Часть из тех, кто приступает к детальному изучению Ruby, прекращает изучение и просто остаётся работать с текущим языком и фреймворком. Не делайте этого! . Не бойтесь изучать этот язык (или любой другой). Ruby - весёлый, великолепный и простой для изучения язык. Плюс ко всему, не стоит забывать о том, что вам не обязательно изучать его на все 100%. Вам достаточно лишь знать основу.

Наиболее рекомендуемым инструментом для погружения в синтаксис Ruby является сайт TryRuby . Он представляет собой интерактивную среду, которая позволяет попробовать синтаксис в действии. Если вы наберёте help , то будете приглашены ознакомиться с пятнадцатиминутным руководством, который обучит вас базису. Не стоит забывать, что у руководства две главы, с которой вы можете ознакомиться набрав help 2 .

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

Пункт 2: установка Ruby и Ruby on Rails

Если вы хотите изучить Rails, то вам без сомнений придётся установить его на ваш компьютер. Здесь представлено несколько решений, исходя из того, какая у вас ОС. Если у вас Mac или Linux-based компьютер, то я рекомендую вам использовать RVM. Это великолепный инструмент, предназначенный для установки Ruby. Собственно, вот инструкция по самой установке. Если же у вас Windows, то вам придётся воспользоваться RubyInstaller.

Следующим шагом является установка самого Rails. Для этого вам необходимо установить RubyGems. Если же вы используете RVM, то примите мои поздравления - у вас RubyGems уже установлен. Если же у вас Windows, то советую проследовать сюда. Чтобы установить Rails, вам необходимо воспользоваться командой gem install rails и, тада, всё сделано!

Пункт 3: ознакомление с введением в Rails от Jeffrey Way


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

  • Models and generators
  • Test-driven development (TDD)
  • ActiveRecord
  • RSpec and Capybara
  • Partials
а также многое другое…

Пункт 4: изучите курс Rails For Zombies

Я всегда думал, что изучение по примерам является самым лучшим способом изучить язык или фреймворк. Бесплатный и невероятно мощный курс, с которым вы должны обязательно ознакомиться - Rails For Zombies, созданный ребятами из EnvyLabs. Данный курс является интерактивным, что означает, что после просмотра каждого видео вы будете работать над полезными и интересными упражнениями.

До этого времени я рассказывал вам об инструментах интерактивных и бесплатных. Время халявы прошло! Сейчас вам следует приобрести книгу под названием Agile Web Development with Rails . Она призвана научить вас использовать Rails путём строения веб сайта с нуля. Она проходит базовые основы, такие как контроллёры, модели, «scaffolding», функциональное тестирование, а также немного AJAX. Приобретите хотя бы последнее издание.

Пункт 6: постройте простой блог

Я знаю, что это звучит довольно скучно (покрайней мере для меня), но это великолепный пример, который используется везде по причине того, что он является довольно простым и быстрым для написания. Пойдя таким путём, вы будете способствовать закреплению ваших знаний и навыков. Но я предлагаю вам не заниматься копипастом (этим вы ничего не добъетесь, разве что 10 минут лишней траты электроэнергии), а попытаться написать его постепенно, по памяти, иногда лишь подглядывая в книгу затем, чтобы посмотреть как работает тот или иной метод.

Пункт 7: добавьте новые возможности в ваш блог

Великолепно! Вы всё-таки построили свой собственный блог. Но всё-таки в нём нет полновесного функционала, а лишь представлены базовые функции, присущие каждому блогу. Хорошо, давайте чуть-чуть поработаем и добавим систему аутентификации.

На самом деле я не хочу сейчас заставлять вас делать что-либо сложное, ведь вы уже порядочно потрудились. В качестве системы аутентификации вы можете использовать какой-нибудь готовый гем (Omniauth, например). Заодно и с имплементацией гемов в ваш проект разберётесь.

Также советую посмотреть этот скринкаст от Ryan Bates, в котором описывается создание простой системы аутентификации с нуля. После имплементации системы, следует добавить возможность удаления/редактирования постов, если вы ещё не сделали этого. Если же задание уже выполнено, то пора переходить к следующему пункту.

Пункт 8: создание чего-нибудь своего

На данном этапе вам пора стать более креативным и подумать о создании какого-нибудь сервиса (например, фотохостинг). Не стоит останавливаться на дизайне вашего второго веб сайта. Возьмите что-нибудь готовое. Например,

Я уже давно хотел изучить Ruby on Rails на каком-то базовом уровне. Без конкретной цели. Скорее просто для себя, чтобы лучше понять, что же в нем такого особенного (в отличие от 100500 других технологий и фреймворков), что позволяет быстро создавать и масштабировать довольно нагруженные интернет-проекты. Вторичной причиной стало желание попробовать новые подходы к обучению. Когда я учился на программиста, у нас были только книги и форумы, где можно спросить совета. Сейчас есть интерактивные учебники и онлайн-школы программистов, огромное количество скринкастов (почти мечта: смотреть, как программируют гуру), базы знаний вроде stackoverflow.com и тонны исходных кодов на GitHub, где можно часами изучать исходники настоящих профи. Следующие несколько ночей (а днем банально некогда) я решил выделить на то, чтобы попробовать новые способы обучения в действии.

Ночь первая

Начинать учить Ruby on Rails без хотя бы минимального знания непосредственно Ruby было бы странным. Я уже когда-то брался за интерактивный гид ruby-lang.org . Но как прошел его, так и сразу все забыл. Его создатели обещают, что на прохождение и усвоение синтаксиса Ruby уйдет пятнадцать минут. У меня ушло тридцать. Правда, с постоянным отвлечением на Twitter. Процесс выглядит примерно так. Тебе говорят: «Массивы в Ruby объявляются так, а данные из массивов извлекают вот так. Теперь давай попробуй сделать массив и извлечь из него N элементов. А мы проверим». Читаешь, как все устроено, и сразу пробуешь. Ruby ты так, конечно, не выучишь. Лучше это воспринимать как супер-экспресс-курс, который работает.

И все-таки сам Ruby - это очень далеко от фреймворка Ruby on Rails. Хотелось освоить именно рельсы. Из нашей статьи про образование онлайн я точно помнил о нашумевшем курсе Zombie for Rails railsforzombies.org . Это так же, как и Try Ruby, интерактивный учебник, который прямо с места в карьер начинает тебя учить готовить рельсовые приложения. Сначала тебе читают мини-лекцию (на английском, но все предельно понятно - включи субтитры) о структуре файлов рельсового приложения, CRUD-подходе для работы с данными, объясняют, как реализована модель MVC в рельсах, и так далее. После каждого видео тебе предлагают выполнить задания на закрепление материала. Все кажется простым и понятным, курс пролетает незаметно за час-другой (он небольшой). Но! Почувствовал ли я после курса, что смогу написать рельсовое приложение? Увы, нет!

Ночь вторая

Одна из причин, почему после Rails for Zombies появляются некоторые базовые знания, но не появляется уверенности, - это виртуальная среда, в которой проходит обучение. С одной стороны, она до предела уменьшает порог входа: можно не заботиться об окружении. С другой стороны, ничего реального по ходу дела ты не создаешь - никакого тебе «Hello World» на выходе. И главное, с какой стороны подступаться к его созданию, непонятно. С этого момента я хотел попробовать Ruby on Rails в деле, реально установив его в системе (до этого можно было даже не стараться), и с нуля создать простое приложение.

Уже не помню как, но совершенно случайно я наткнулся на очень удачный курс скринкастов на русском языке rails.hasbrains.org . Спасибо автору за грамотное изложение: он методично объясняет принципы работы рельсового приложения в деталях, по ходу погружая тебя во все необходимые тонкости. Короче говоря, всю вторую ночь эксперимента я смотрел первую половину из более чем тридцати эпизодов этих скринкастов.

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

Ночь третья

На третью ночь остались последние эпизоды скринкастов, которые удалось посмотреть в один присест: работа с рельсами уже не казалось такой дикой. В этот момент мне кто-то рассказал о том, что у курса Rails for Zombies есть толковое и гораздо более глубокое продолжение. Правда, курс уже платный и хостится в рамках школы программирования Code School www.codeschool.com . Отдать 25 баксов, чтобы получить доступ ко всем курсам школы, было не жалко. Это стоимость на месяц, поэтому, если не понравится, не забудь отменить подписку.

Курс Rails for Zombies 2 действительно оказался очень удачным. Правда, многое стало повторением того, что я увидел в скринкастах, - но это было даже отчасти приятно. Пять уровней и пять блоков упражнений, которые делаешь прямо в интерактивной консоли. К этому моменту рельсы уже казались логичными, понятными и пригодными к использованию.

В Code School можно программировать прямо в браузере, выполняя задания курса

Что дальше?

Научился ли я делать сложные проекты? Нет. Но точно осознал подходы, используемые в рельсах, и понял их удобство. Научился быстро создавать простые приложения и в суперкороткий срок наращивать его функционал с помощью гемов, написанных сообществом. Я поймал кураж и дальше с удовольствием учусь лучшим практикам по программам Code School (сейчас смотрю курс по юнит-тестам). И меня чертовски радует то, что изучать технологии стало так просто.



Рекомендуем почитать

Наверх