Головна » Статті » Програмні засоби

Rails Girls або магічний світ Ruby on Rails тільки для дівчат (фото-звіт)



Купа емоцій, нових знайомих та, звичайно, вагон мотивації програмувати – от що залишилось  в учасниць після конференції Rails Girls Kiev 2012, що відбувалася 7-8 грудня. Інформація про подію вже звучала у цій новині. Щодо змін, в ході підготовки було відмінено 3й день конференції. А також з близько 200 бажаючих, на подію було запрошено тільки до 60 чоловік, при цьому всім хлопцям були відправлені листи з вибаченнями та відмовою в участі. Все ж таки подія для дівчат, якщо навіть не всі дівчата змогли потрапити – запрошувати хлопців було б нечесно.



Отже, в перший день ми зібрались переважно, щоб познайомитись з організаторами та встановити необхідні для роботи додатки. Організатори – це дніпропетровська компанія Ruby Garage, головні члени якої Володимир Воробйов, Юлія Токарева, Олександр Меховов та Альона Меховова. Окрім цього, кожному столику було дане завдання придумати назву та логотип команди (люди, що сидять за одним столом). Наша команда обрала назву Rubyroid. Окрім цього були ще команди Ruby Bot, Happy New Rails, Ruby Racers, LNick, Ruby Devs та Ruby Dooby Doo. Як бачите, дуже важко було обійтись без слова Рубі у складі назви команди: давалася в знаки неабияка налаштованість учасниць на тему конференції.



Встановлювати додатки допомагали так звані тренери (коучі). Здебільшого це були хлопці. Дуже спокійні та витримані, намагались не просто зробити за нас, те що не виходило, але й допомогти зрозуміти.  Особлива подяка від мене Денису Ягофарову, що виявився дуже добрим педагогом.

Стіни прикрашали досить цікаві плакатики. Один з таких після заходу дістався мені, як трофей.



Вступна промова та встановлення програм зайняли не більше двох годин, і вже о 20 годині ми залишили приміщення компанії Cogniance, що так люб`язно віддала кавалок першого поверху під цей захід.

Наступний етап конференції розпочався у суботу о 9 годині ранку зі створення кожним ескізу сайту своєї мрії. Цей етап тривав більше, ніж розраховували організатори, адже кожна дівчина хотіла досягти найліпшого результату та дійсно відтворити на папері свою мрію. Всі ескізи було розвішено по стінах, а учасницям роздані наліпки з лайками, щоб відмічати ескізи, що найбільш сподобались. В кінці дня була визначена переможниця та нагороджена пухнастим ведмедиком.

О 10.00 розпочалась презентація від Альони Меховової, де вона розповіла  про GitHub – найбільший хостинговий веб-сервіс для спільної веб-розробки та один зі спонсорів Rails Girls. Виявилось, що такі потужні соціальні мережі, як facebook та twitter розміщують свої офіційні репозиторії саме на цьому веб-сервісі. Також Альона пояснила принцип роботи веб-додатків на прикладі BentoBox (японський комплексний обід, що складається з самого необхідного). Ідея полягала в тому, що будь-який додаток реалізується за допомогою чотирьох складових: зберігання даних (бази даних), інфраструктура (сервера та їх обслуговування), логіка (back-end), стиль та структура сайту (front-end).



Після пояснення командам-учасницям були роздані аркуші з чотирма сферами:  Storage, Infrastructure, Style and Structure, Logic. Та рожеві (дівчата, що зробиш) папірці з словами і словосполученнями, які було потрібно віднести до тієї чи іншої сфери. Пастка складалась в тому, що слово SaaS не було куди віднести, бо SaaS (software as a service — програмне забезпечення як послуга) - це бізнес-модель, за якої замовник має доступ до свого програмного забезпечення (ПЗ) через інтренет, але не переймаєтся проблемами створення та підтримки ПЗ та поновлення обладнання, бо всім цим займається виконавець.



Далі о 10.30 Вова розповів трохи про Ruby та його переваги. Юкіхіро Мацумото створив нову оптимізовану мову, взявши найліпші риси багатьох сучасних мов програмування. Таким чином, ви можете помітити схожість з деякими мовами програмування: у синтаксисі з Eiffel та Perl, у принципах ООП з Smalltalk, у деяких інших рисах з Lisp, Python, Dylan.



Об 11.45 розпочалося перше знайомство з Ruby on Rails на сайті http://tryruby.org. Дуже приємний інтерактивний сайт для початку навчання. Легкий та зрозумілий для будь-кого. Також для перевірки роботи простих операторів та запитів у Ruby ми використовували pry-debugger в консольному вікні.



Наскрізною темою всієї конференції були котики – в презентаціях, прикладах, на наліпках. Тому для того, щоб пояснити принцип роботи та використання класів у ООП теж був взятий котячий приклад.

На моєму досвіді це був перший настільки зрозумілий приклад. Спробую швидко його пояснити. Створюємо клас з назвою Cat. Зазвичай коти сигналізують нам про свій стан: коли вони задоволені життям та ситі вони муркотять коли ж голодні – нявкають, щоб їх нагодували.  Клас Cat відповідає за всіх котів світу. То надамо котам функцію make_some_noise. Якщо коти ситі (тобто @state == :full) вони казатимуть "Mrrrr Mrrrr”, в інших випадках (else) , будуть просити їжі "Mew mew!”  Ще надамо функцію годування котів eat_some_food - присвоюємо змінній @state, що відповідає за стан кота, значення full, що означатиме, що після виклику функції eat_some_food кіт стає ситим.



Тепер створюємо кота з ім`ям Том, який буде мати такі самі базові функції, як і всі інші коти. Тобто, коли котик буде нявкати (при виклику функції tom.make_some_noise) – ми будемо знати, що його потрібно нагодувати (tom.eat_some_food), щоб він знов почав муркотіти.

Примітка: Після знаку "=>” показаний результат роботи функції.



Після коротенького ланчу о 12.15 відбулася презентація від Леоніда Шевцова – представника компанії Railsware (партнера заходу). Основною темою презентації була концепція MVC, на яку спирається Ruby on Rails. Model-View-Controller (MVC) має багато переваг у порівнянні з іншими традиційними концепціями, наприклад, відділяє логіку вашого додатку від його безпосереднього відображення і таким чином робить програмний код більш прозорим та зручним для перегляду. Модель відповідає за зберігання даних, шаблони за їх відображення, а контролер за вибірку. Також Леонід розповів про scaffold, до дозволяє отримати швидку реалізацію CRUD (Create, Retrieve, Update, and Delete) операцій для будь-якої бази даних. Вони виглядають не дуже гарно, але досить ефективні, тим більше, що згодом можна замінити надані шаблони та операції на свої.



Презентація була адаптована для учасниць, всі приклади були взяті з життя дівчат. Поняття «модель» доповідач дуже цікаво пояснював на прикладі жіночих туфель.



О 12.30 було розпочато workshop – написання додатку. В кінці дня ми повинні були мати працюючий інтернет-додаток «Подарунки для друзів». На цей міні-сайт зможуть бути запрошені друзі, які мають зареєструватись, після чого зазначити список подарунків, що вони б хотіли отримати на Новий Рік. Таким чином, ніяких більше незручностей - всі друзі отримають подарунки, що бажають.

Нульовим кроком у створенні додатку (звісно, нульовим – я не помилилась, у світі програмістів розрахунок починається з нуля) було знайомство з інструментами розробки. Для розробки були необхідні: текстовий редактор (в моєму випадку, Sublime Text), Terminal / CMD – командний рядок та будь-який браузер.

Наступним кроком було через термінал створити директорію Projects, а в ній директорію Gifts, після чого запустити rails server.



До обіду ми встигли зробити ще всього один крок – створити scaffold для користувачів (команда rails generate scaffold User name:string). Scaffold сам по собі нічого не генерує, але завантажує інші генератори. Налаштування для генераторів можна прописувати у файлі config/application.rb кореневої директорії Rails або ж користуватись стандартними.

Обід розпочався о 13.45. Всі добре підкріпились сандвічами, фруктами та солодощами перед продовженням реалізації додатку.



Наступним кроком розробки став Дизайн додатку, тому неможливо було обійтись без презентації на тему HTML/CSS/Javascript від Саші Меховова, що мала назву «Don’t fear the Internet» (ви також маєте змогу продивитись її на сайті http://dont-fear-internet.pp.ua). Саша розповів про основні необхідні блоки кожного сайту: header, menu, sidebar, footer, adv і т.д., про основні теги HTML та структуру селекторів і елементи стилів в CSS. Пояснив нумеровані (<ol>) та не нумеровані (<ul>) списки на прикладі ланчу. В гамбургері важлива послідовність продуктів, а при приготуванні кави ні. Якщо ви спочатку змішаєте цукор з кавою, а потім заллєте водою – особливо нічого не зміниться, але якщо покласти дві булки зверху котлети – вже гамбургеру не вийде.



Найбільш яскравим слайдом був наступний. Саша пояснив, що зрозуміти його зможуть лише ті, хто знайомі з кроссбраузерністю при верстці. Справа в тому, що Internet Explorer найбільш вибагливий в роботі. Навіть, якщо вже всі браузери відображають сторінку однаково, Internet Explorer в більшості випадків все одно надасть своє несподіване бачення вашого коду.



Продовжуємо розробку додатку. Вносимо зміни в Gemfile для того, щоб отримати доступ до Twitter Bootstrap проекту та отримати вже готові стилі прикрашення нашого веб-додатку.

Крок 4. Створення scaffold’у для подарунків (Gifts). Чим далі в ліс – тим більше дров. Без допомоги тренерів було не обійтись.



Далі ми додали можливість реєстрації та аутентифікації користувачів в нашому додатку та додали фільтр before_filter :authenticate_user! у контролер app/controllers/application_controller.rb для того, щоб тільки зареєстровані користувачі могли продивлятись списки подарунків інших користувачів.

Останнім кроком було додати можливість користувачам запрошувати у додаток своїх друзів через email. Налаштовуємо поштовий сервер (ми скористались сервісом gmail) і все! Наш додаток готовий! Дівчата, що впорались з завданням раніше інших, мали можливість додати деякі функції: копіювати подарунок зі списку друга у свій список бажань, обирати та маркувати подарунок зі списку бажань друга, який ви обрали йому подарувати (щоб хтось інший не подарував те саме). А також додати інтерактивності додаткові за допомогою CoffeScript (або JavaScript).



О 18 годині вечора більшість учасниць почала завантаження свого додатку на сайт Heroku. Спочатку було необхідно сгенерувати git-проект та відправити в локальник git-репозиторій. Після чого створити власний акаунт на сайті Heroku та завантажити туди свій проект.

Було дуже приємно, що якщо хтось не встигав зробити всі завдання, інші учасники та тренери роздавали свої контакти для того, щоб допомогти успішно завершити свій проект та розібратись в тому, що залишилось не зрозумілим після конференції.

На завершення Вова Воробйов провів ще одну презентацію з назвою «Як жити далі», де розповів, як далі розвивати свої навички з роботою в Ruby, а також надав інформацію щодо сервісів і сайтів, де можна знайти корисну інформацію для навчання. Ось вони: Hackety Hack, Code School, Try Ruby, Ruby Koans, Ruby on Rails Tutorial, Rails Guides, Codecacademy, Mendicent University, Stackoverflow.



Близько 19.30 розпочалась afterparty з шампанським та тістечками. Тут вже кожен міг розповісти, як потрапив на захід, де працює, чому саме Ruby і таке інше.



А ось і наші організатори-доповідачі, вже у розслабленому стані, як ви можете бачити по Сашиному обличчі :)



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

Організатори намагались зробити конференцію цікавою та корисною навіть для людей, що ніколи не виходили за межі навичок користувача. Намагались надавати зрозумілі та наочні приклади, та нарешті довести дівчатам, що вміння програмувати зовсім не відноситься до надможивостей. А це цікавий творчий процес, де кожен розробник має свій власний почерк та постійну мотивацію для розвитку.

І все ж таки жодні слова не опишуть емоцій учасниць ліпше за фотографію Саші Палеєвої наших «п`ятничних обіймань»! Будемо чекати на наступні IT-заходи, і нехай вони проходять на такому ж високому рівні, як і Rails Girls Kiev 2012.


Категорія: Програмні засоби | Додав: systems (12.12.2012) | Автор: Лобанок І
Переглядів: 27455 | Коментарі: 1 | Теги: програмування, семінар по програмуванню, мова програмування Ruby, магічний світ Ruby on Rails, тільки для дівчат, Rails Girls, розробка, Ruby on Rails | Рейтинг: 5.0/4
Всього коментарів: 1
avatar
0
1
замість LNick потрібно RubyLNick

Дуже вдала стаття й захід, сподіваюсь продовження буде... :-)
avatar