Проект программы

Проект

Генератор форм (Ruby)

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

2-4

недели

Цель

Настройка окружения

Первый проект прокачивает работу с экосистемой Ruby. Студенты учатся запускать любые программы, написанные на Ruby. Знакомятся с интерпретатором языка и его возможностями по быстрой отладке и проверке работы небольших кусков кода. Знакомятся с bundler. Утилитой, через которую происходит управление проектами: установка и обновление дополнительных библиотек, публикация пакета и многое другое.

Здесь же идет формирование правильной инженерной культуры. Одно из первых заданий в настройке — это подключение линтера (Rubocop), который автоматически следит за стилем кода и находит потенциальные ошибки. Код, соответствующий стандартам кодирования, гораздо проще в анализе и значительно выше оценивается другими программистами. Это, в том числе, важно при демонстрации проектов на собеседованиях.

Автоматизированные тесты – неотъемлемая часть профессиональной разработки. Генератор форм — удобный и простой проект для написания тестов до кода. Практикуя TDD мы можем тестировать наше приложение до его написания. Тесты помогут эффективно писать, отлаживать и рефакторить код.

Архитектура

В ходе разработки понадобится выполнять множество операций: парсинг входящих данных, построение формы, формирование необходимого вывода. Все это требует хорошей организации кода. Модульность и абстракции выходят в этом проекте на новый уровень.

Разделение внутренней архитектуры формы и представления позволяет подключать новые шаблонизаторы.

Описание

Генератор Форм — библиотека, с помощью которой удобно создавать формы в шаблонах сайтов. Это популярная задача, для решения которой существует множество библиотек, например, библиотека, встроенная в Rails или популярный gem SimpleForm.

Пример использования:

User = Struct.new(:id, :name, :job)

user = User.new

html = HexletCode.form_for user, url: '/users' do |f|
  f.input :name
  f.input :job, as: :text
  f.submit
end

puts html
# Будет выведено:
# <form action="/users" method="post">
#   <label for="name">Name</label>
#   <input name="name" value="" type="text">
#   <label for="job">Job</label>
#   <textarea cols="20" rows="40" name="job"></textarea>
#   <input type="submit" value="Create">
# </form>

Вопросы и Ответы

Проекты входят в стоимость обучения на любом плане: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845