Проект модуля #4

Анализатор качества репозиториев

Разработчик на Ruby on Rails

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

2-4
недели

Цель

Проект ориентирован на работу с асинхронным кодом с помощью ActiveJob и интеграцию с Github. Интеграции с различными сервисами часто встречаются в практике и требуют понимания принципов общения серверов между собой, протоколов. Примеры интеграций - отправка событий для сбора аналитики, платежные системы.

Особенность HTTP и классических веб-приложений такова, что они сервер и клиент ждут ответа и запроса друг от друга. Пользователь вводит адрес сайта, заходит на него и ждет, когда страница загрузится. В обычном случае пользователь будет ждать, когда страница загрузится полностью, чтобы приступить к дальнейшим действиям. Если же нужно выполнить какой-то сложный запрос, например калькуляцию, выборку из базы данных, подготовить какие-то данные, то пользователь снова будет ждать ответа от сервера. Чем больше больших и тяжелых операций выполняется, тем дольше пользователь будет ждать результата. Помимо ожидания проблема еще заключается в том, что другие пользователи могут также пострадать. Например если сразу несколько человек будут выполнять тяжелую операцию. Чтобы избежать этого (и не только по этим причинам) используют асинхронные задачи. Создается очередь в которой все тяжелые задачи выполняются постепенно. Но такой подход меняет способ взаимодействия с пользователем и обработкой ошибочных ситуаций, которые могут произойти при работе асинхронного кода. Пользователю необходимо сообщить, что задача будет выполнена и отобразить текущий статус, который будет изменяться. А в выполняемой задаче нужно предусмотреть работу с возникшими ошибками, отслеживать запущенные задачи, завершенные и еще не начатые.

Описание

Проект Github Quality — это сервис, где разработчики могут запустить проверки кода в своих репозиториях и получить отчёт о состоянии кодовой базы, текущие ошибки. Аналог: codeclimate.com

Main page Repositories views Repository checks list Check view

Наставники

Аватар наставника Артём Кривоножко
Артём Кривоножко
Активист питерского Ruby-сообщества. Работал с Rails-проектами в разных сферах: образование, доставка продуктов, нагрузочное тестирование. Также пишет на PHP, Node.js, Java, Elixir. Любит математику, тервер и статистику. Выступает на конференциях и митапах
Аватар наставника Артём Рашев
Артём Рашев
В веб-разработке со студенческой скамьи. Устав быть заложником экосистемы Microsoft, перешел на светлую сторону Ruby. Тимлидил небольшую команду, строил архитектуру системы в криптовалютном стартапе. Много пишет на TypeScript, но Ruby остается главной специализацией
Аватар наставника Василиса Тюльберова
Василиса Тюльберова
Более 5 лет в разработке. Стэк – Ruby, чуть меньше JS (React, Angular, Ember). Любит тесты, гибкую разработку, код-ревью и хорошую инженерную культуру. Пришла на Хекслет, чтобы помочь новичкам делать первые шаги в профессии
Аватар наставника Давид Саламау
Давид Саламау
Отличник физико-математических наук, рубист с 6-летним стажем, ведущий разработчик в крупной компании. Считает, что программисту особенно важно развивать коммуникативные навыки. Владеет этим софт-скиллом сам и учит других
Сколько стоят проекты?

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

Зачем проходить проекты?

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

Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.

Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».

Что делать, если возникли трудности во время выполнения проекта?

Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться. Попросите о помощи в нашем Slack-чате в канале #hexlet-projects.

Кто проверяет проекты?

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

У меня другой вопрос

Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.