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