RailsGirls 2012 Днепропетровск - post mortem
October 10, 2012 in Events6 октября 2012 года я участвовал в организации RailsGirls в Днепропетровске в роли тренера. В целом событие прошло невероятно успешно; каждая из пришедших 30-40 девушек написала и опубликовала свой собственный сайт на Heroku, приблизительно такой (от @Spi_ka), а другие сайты можно посмотреть тут.
Презентации: https://speakerdeck.com/u/rg_ukraine и http://dont-fear-internet.pp.ua/.
Начальный уровень участниц был от просто компьютерно-грамотных до верстальщиц, “инженеров сферы контроля качества” и даже программисток. Схватывали все очень хорошо.
Программирование состояло из:
- генерации обыкновенного сайта
- добавления на него авторизации через Devise
- добавления двух скаффолдов - для категорий и для тематических сущностей (например, турпутевок)
- раскладывания заранее подготовленных шаблонов по инструкции (с некоторыми правками)
- коммита всего этого в Git
- авторизации на Heroku и деплоя приложения туда же
- и свободной программы.
Делюсь пережитыми проблемами.
Организационно
Надо обеспечить достаточное количество роутеров! Порядочный внешний канал - тоже, но не хватало именно подключений к роутеру. Вот этот вопрос на ServerFault объясняет, что проблема в интерференции, а Википедия цитирует цифру в 30 клиентов на точку доступа. Надо учесть, что кто-то будет подключать к вайфаю телефоны, и проверить, что все точки доступа используют разные каналы.
Нестабильно работающий вайфай вызывал, наверное, больше переживаний, чем сама работа.
Еще - хорошо было, что инсталлятор выложили в локальной сети, чтобы не забивать канал его скачиванием.
Программировать лучше начать раньше. Мы начали где-то часа в два (а орг. часть и доклады шли с девяти утра), и было видно, что девочки уже засиделись и заскучали. Возможно, имеет смысл перемежать программирование и доклады.
Технически
Некоторые проблемы применимы только к Windows. Windows был у 90% участниц, поэтому крайне обязательно прогонять курс на Windows и вообще ориентироваться.
Ruby и русский язык
Эти две вещи до сих пор не работают вместе. Например, Ruby не сможет работать с русским именем пользователя - гемы не будут устанавливаться.
Я подготовил сборку RailsInstaller-а, которая ставила домашней папкой C:\Sites
(только для командной строки Ruby), и этим всех проблем с русскими пользователями удалось избежать. К следующим RailsGirls постараюсь опубликовать инсталлятор с еще кое-какими улучшениями.
Другая проблема - если в исходнике есть русские буквы, то без директивы encoding:
Ruby 1.9 этот исходник не загрузит.
RailsInstaller
RailsInstaller должен заканчиваться на более положительной ноте; сейчас он просто выкидывает в командную строку.
Консоль - непонятная.
Все понимают, что в нее надо печатать команды, но на этом знания заканчиваются.
Не знают, что если нажать “вверх”, восстановится последняя команда.
Не знают, что если работает сервер, то печатать что-то в ту же консоль бессмысленно, его нужно остановить.
Учитывая жуткую командную строку Windows, я бы ставил всем Console2.
Были проблемы с тем, что девочки запускали обычную командную строку, а не ту, что установилась с RailsInstaller; соответственно получали неправильное окружение и неработающий Ruby.
Проблемы с запуском генераторов
Генераторы Rails очень чувствительны к пробелам; rails g model User name:string
работает, rails g model User name: string
создает два поля - name
и string
, причем никак по-человечески не объяснить, почему в этом месте нельзя ставить пробел. Аналогично rails g devise :install
сгенерирует авторизацию для модели Install, а не проинициализирует Devise.
Если генератор отработал неправильно, его надо откатить: rails destroy model User
Если прогнали миграции, то их нужно откатить ДО отката генератора (ибо они удалятся)
Вообще если испортить базу, то нужно уметь ее чинить, хотя бы через db:migrate:reset
Ошибки
Не очевидно, что делать, когда выскакивает ошибка Rails; страница ошибки выиграла бы от более ярко выделенного файла и строчки, в которой она произошла.
Редактор
Людям надо принудительно ставить одинаковый редактор (Sublime Text 2 бесплатный и кроссплатформенный); исключения только для тех, у кого есть любимый редактор - у меня таких не оказалось. Предполагаю, что любимые текстовые редакторы бывают только у программистов.
В Sublime Text 2 надо сразу объяснить, как подключить папку с приложением к проекту, и показать Ctrl+P (быстрый поиск).
Формы
Программирование форм - с точки зрения новичка очень сложное занятие. например, описание select
-поля с выборкой из коллекции. Предложение: показывать и использовать Formtastic.
CRUD
Демонстрация удобства Rails на примере скаффолдов понятна программистам, но, мне кажется, не очень понятна не-программистам. То есть, CRUD- скаффолд - не очень-то интересная штука. Хорошо бы придумать другую, более интересную демонстрацию, возможно, такую, в которую скаффолд входит как одна из частей.
Понравился пост? Купи мне кофе