Анализатор качества репозиториев
Проект, который помогает автоматически следить за качеством репозиториев на гитхабе. Он отслеживает изменения и прогоняет их через встроенные анализаторы. Затем формирует отчеты и отправляет их пользователю.
Цель
Проект ориентирован на работу с асинхронным кодом с помощью ActiveJob и интеграцию с Github. Интеграции с различными сервисами часто встречаются в практике и требуют понимания принципов общения серверов между собой, протоколов. Примеры интеграций - отправка событий для сбора аналитики, платежные системы.
Особенность HTTP и классических веб-приложений такова, что они сервер и клиент ждут ответа и запроса друг от друга. Пользователь вводит адрес сайта, заходит на него и ждет, когда страница загрузится. В обычном случае пользователь будет ждать, когда страница загрузится полностью, чтобы приступить к дальнейшим действиям. Если же нужно выполнить какой-то сложный запрос, например калькуляцию, выборку из базы данных, подготовить какие-то данные, то пользователь снова будет ждать ответа от сервера. Чем больше больших и тяжелых операций выполняется, тем дольше пользователь будет ждать результата. Помимо ожидания проблема еще заключается в том, что другие пользователи могут также пострадать. Например если сразу несколько человек будут выполнять тяжелую операцию. Чтобы избежать этого (и не только по этим причинам) используют асинхронные задачи. Создается очередь в которой все тяжелые задачи выполняются постепенно. Но такой подход меняет способ взаимодействия с пользователем и обработкой ошибочных ситуаций, которые могут произойти при работе асинхронного кода. Пользователю необходимо сообщить, что задача будет выполнена и отобразить текущий статус, который будет изменяться. А в выполняемой задаче нужно предусмотреть работу с возникшими ошибками, отслеживать запущенные задачи, завершенные и еще не начатые.
Описание
Проект Github Quality — это сервис, где разработчики могут запустить проверки кода в своих репозиториях и получить отчёт о состоянии кодовой базы, текущие ошибки. Аналог: codeclimate.com
Наставники



Проекты входят в стоимость обучения на любом плане: самостоятельном, групповом и индивидуальном. Дополнительно платить не нужно.
Проекты дают опыт разработки в реальной среде. Проходите каждый проект сразу после изучения курсов, которые стоят в учебном плане перед ним, — это отличный способ глубже разобраться в материале.
Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.
Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».
Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться.
Автоматизированные тесты и линтер. В групповом и индивидуальном форматах наставник дополнительно проверит то, что тестами проверить невозможно (архитектуру проекта, правильность именования, удачность решений), и проведёт код-ревью, чтобы сделать проект ещё качественнее.
Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.