Connect with us

Разработка

Автоматизируй это

Андрей Неверов, Head of Engineering в Trucker Path, в своем блоге написал о том, что стоит автоматизировать в разработке ПО.

Опубликовано

/

     
     

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

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

Чем больше рутины вы автоматизируете, тем больше времени у вас останется на решение важных продуктовых задач.

Проверьте, настроены и автоматизированы ли у вас следующие вещи:

  1. Сборка релиза и запуск тестов. Коммит в определенную ветку, запуск тестов, сборка артефакта. Все без малейшего участия человека. Мы используем CircleCI и Jenkins.
  2. Проверка качества и стиля кода. Страшно сокращает время и позволяет на ревью не отвлекаться на ерунду и обращать больше внимания на суть. Начните с использования линтера и убедитесь, что команда не игнорирует его ошибки. Можно настроить git-хуки или использовать готовые решения, например, Codacity или CodeClimate.
  3. Меряйте покрытие кода тестами. Нет единой универсальной метрики, мол, “85% покрытия и все круто”, зато вы всегда сможете сопоставить тренд роста количества багов в трекере с изменениями покрытия и следить, чтоб покрытие никогда не падало ниже определенного процента. Попробуйте Codecov.
  4. Заведите журнал ошибок. Это не баг-трекер и не канал с гневными отзывами пользователей — это система автоматического сбора и категоризации ошибок. Чаще всего для этого используется Sentry, причем как для клиентского, так и для серверного кода.
  5. Мониторинг производительности и серверов. Если у вас нет мониторинга, вы в темноте. Что-то где-то упало, все в огне, паника и бежим тушить руками. Поставьте мониторинг и настройте хотя бы базовые оповещения (CPU сервера > 90%, явно что-то не так) и ваша жизнь сразу станет проще. Самые известные инструменты это New Relic и Datadog, а вообще тысячи их.
  6. Собирайте логи так, чтоб потом их можно было прочитать. Когда оно упадет (а оно упадет), вам нужно будет разобраться, что же пошло не так, причем никакого отладчика и возможности восстановить состояние системы у вас не будет. Если у вас не один сервер — удачи в сборе и попытках склеить логи с разных машин. Классическое решение — Syslog, на рынке масса более user-friendly вариантов, таких как Papertrail или Logstash.
  7. Выкиньте свой железный сервер. Если вы не банк или не предприятие оборонки, никакого смысла иметь физические сервера нет. Разместитесь в облаке и забудьте про всякие проблемы с железом и необходимость все это обслуживать. Одни из самых популярных вариантов — AWS и Digitalocean. Для решений от Microsoft можно использовать Azure.
  8. Автоматизируйте создание и тестирование бэкапов. Как гласит народное поверье, инженеры делятся на две категории: те, кто не делает бэкапы и те, кто уже делает бэкапы. Иначе будет весело.

Источник: блог CTO hints в Medium

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: