# Шаг назад - и автоматизируйте, автоматизируйте, автоматизируйте!

(В оригинале - Step Back and Automate, Automate, Automate)

Я работал с программистами, которые, когда их просили подсчитать количество строк кода в проекте, вручную открывали код в текстовом редакторе и суммировали значение «количество строк» для каждого файла. Через некоторое время они вновь повторяли эту процедуру, когда их снова об этом просили. И еще раз. И еще. И это было плохо.

В другой раз я работал на проекте, имеющем громоздкий процесс сборки, включающий помещение результата на сервер и множество кликов мышкой. Однажды этот процесс был автоматизирован, после чего скрипт запускался сотни раз, гораздо чаще, чем предполагалось изначально. И это было хорошо.

Итак, почему люди делают одну и ту же рутинную работу множество раз вместо того, чтобы вернуться на шаг назад и найти время на ее автоматизацию?

## Первое частое заблуждение: автоматизация – это только для тестирования.

Безусловно, автоматизация тестирования – супер, но зачем на этом останавливаться? Повторяющиеся задачи есть в любом проекте: контроль версий, компиляция, сборка, генерация документации, отчеты. Для большинства этих задач скрипт будет работать лучше, чем мышка. Да и выполнение скучной работы делается быстрее и надежнее

## Второе частое заблуждение: у меня есть IDE, мне не нужна автоматизация.

Вы когда-нибудь слышали аргумент «Но ведь это работает (компилируется/запускается/проходит тест) на моей машине» от своих коллег? Современные IDE имеют тысячи настроек, и невозможно обеспечить, чтобы у каждого в команде эти настройки были идентичными. Системы автоматизации сборки вроде Ant или Autotools обеспечивают вам повторяемость эксперимента.

## Третье частое заблуждение: мне придется изучить экзотические инструменты, чтобы реализовать автоматизацию.

Вы можете многого добиться со встроенным в ОС языком (например, bash или PowerShell) и системами автоматизации сборки. Если необходимо взаимодействовать с web-сайтами, используйте инструмент вроде iMacros или Selenium.

## Четвертое частое заблуждение: я не смогу автоматизировать это потому что я ничего не могу сделать с этим форматом файлов.

Если в вашем процессе присутствуют документы Word, таблицы или изображения, автоматизация действительно может оказаться непростой. Но – действительно ли вам нужны именно эти форматы? Можете ли вы использовать обычный текст, текстовые таблицы, XML, инструмент генерации рисунка из текстового файла? Иногда небольшая настройка процесса может дать серьезный выигрыш в снижении рутины.

## Пятое частое заблуждение: у меня нет времени в этом всем разобраться.

Вам не нужно изучить весь bash или Ant, чтобы начать. Изучайте в процессе использования. Как только у вас появится задача, которую, вам кажется, можно автоматизировать, изучите только то, что нужно для ее автоматизации. И сделайте это как можно раньше, ведь в начале проекта найти «лишнее» время проще. И как только у вас получится, вы (и ваш босс) увидите, что в автоматизацию стоит инвестировать ресурсы.

Автор оригинала - [Cay Horstmann](http://programmer.97things.oreilly.com/wiki/index.php/Cay_Horstmann)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/ru/thing_95.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
