Автоматизация рутины

Автоматизация рутины — практика замены повторяющихся ручных действий скриптами, инструментами и процессами, освобождающая время для творческой и высококвалифицированной работы.

Зачем нужно

Разработчик, автоматизирующий рутину, перестаёт делать одно и то же вручную каждый день. Это не только экономит время, но и снижает количество ошибок: автоматика не забывает запустить тесты перед коммитом или добавить лог в файл. Автоматизация — одна из ключевых компетенций Senior-разработчика.

Где используется

  • CI/CD — автоматический запуск тестов, сборки и деплоя
  • Разработка — скрипты генерации кода, линтинг, форматирование
  • DevOps — мониторинг, алерты, бэкапы
  • Личная продуктивность — шаблоны, горячие клавиши, text expanders

Что автоматизировать

В разработке

# Git hooks — автоматически перед коммитом
# .husky/pre-commit
npm run lint
npm run test:unit
# Коммит не пройдёт при ошибках

# package.json scripts — стандартизация команд
{
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "test": "vitest",
    "lint": "eslint src --ext .ts,.tsx",
    "format": "prettier --write src/**/*.{ts,tsx}",
    "prepare": "husky install"
  }
}

CI/CD (GitHub Actions)

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with: { node-version: 18 }
      - run: npm ci
      - run: npm run lint
      - run: npm test
      - run: npm run build

Личная автоматизация

Snippets / Text Expanders:
  ;cl → console.log
  ;fn → const functionName = () => {}
  ;ac → // TODO: [AC] — acceptance criteria

Shell aliases (~/.bashrc):
  alias gs="git status"
  alias gc="git commit -m"
  alias gp="git push"
  alias ni="npm install"
  alias nd="npm run dev"

VS Code snippets:
  Ctrl+Shift+P → "Configure User Snippets"

Принцип: если делаешь 3 раза — автоматизируй

Чеклист кандидата на автоматизацию:
✓ Делаешь вручную больше 3 раз?
✓ Есть чёткая последовательность шагов?
✓ Не требует творческих решений?
✓ Занимает больше 2 минут?

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

Инструменты

Git hooks:      Husky + lint-staged
Линтинг:        ESLint, Prettier (auto-format on save)
Тесты в CI:     GitHub Actions, GitLab CI
Задачи сборки:  npm scripts, Makefile
Шаблоны кода:   VS Code Snippets, Plop.js
Скрипты:        bash, Node.js, Python
Деплой:         Netlify/Vercel auto-deploy on push

Частые ошибки

Ошибка Проблема Решение
Автоматизировать слишком сложное Скрипт хрупкий, ломается — хуже ручного Начинать с простого и стабильного
Нет документации к скрипту Через месяц непонятно, что делает Добавить README или комментарии
Pre-commit hook слишком медленный Разработчики отключают хуки Линтить только изменённые файлы (lint-staged)
Автоматизировать то, что меняется Поддержка скрипта дороже ручной работы Автоматизировать стабильные процессы

Связанные темы

Ресурсы