Автоматизация рутины
Автоматизация рутины — практика замены повторяющихся ручных действий скриптами, инструментами и процессами, освобождающая время для творческой и высококвалифицированной работы.
Зачем нужно
Разработчик, автоматизирующий рутину, перестаёт делать одно и то же вручную каждый день. Это не только экономит время, но и снижает количество ошибок: автоматика не забывает запустить тесты перед коммитом или добавить лог в файл. Автоматизация — одна из ключевых компетенций 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) |
| Автоматизировать то, что меняется | Поддержка скрипта дороже ручной работы | Автоматизировать стабильные процессы |
Связанные темы
- _MOC Процессы
- Технический долг -- управление
- Практика -- кодить каждый день
- Тайм-менеджмент -- Pomodoro