# Сделайте процесс сборки своим

(В оригинале - Own (and Refactor) the Build)

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

Одна из причин, по которым многие в общем-то хорошие программисты воспринимают скрипты сборки как что-то второстепенное – это то, что они написаны на языке, отличном от основного используемого. Другая причина – то, что сборка не является в полной мере «кодом». При этом большинство программистов рады изучить новый язык, а сборка – это то, что создает выполняемую программу для конечных пользователей. Код бесполезен до тех пор, пока не будет собран. Сборка – важная часть процесса, и решения на уровне процесса сборки могут сделать код проще.

Скрипты сборки, написанные с использованием неправильных идиом, сложно сопровождаемы и, что гораздо более важно, сложно улучшаемы. Лучше потратить некоторое количество времени, чтобы понять, как это делать правильно. Ошибки могут возникнуть из-за сборки с неправильными зависимостями или проблемами в конфигурации.

По сложившейся традиции, тестирование стало задачей команды контроля качества. Тестирование также должно давать предсказуемые результаты. Примерно то же самое правило работает и для сборки – сборка должна быть в зоне ответственности команды разработки.

Понимание процесса сборки может упростить весь цикл разработки и снизить расходы. Простой скрипт сборки позволяет новому разработчику быстро влиться в поток. Автоматизация сборки позволяет получать воспроизводимые результаты у всех в команде, избегая ситуаций «А у меня оно работает». Многие инструменты сборки позволяют вам генерировать отчеты о качестве кода, давая возможность выявить проблемы на более раннем сроке. Потратив время на понимание того, как сделать скрипты сборки своими, вы можете помочь и себе, и всем остальным в команде. Вы сможете сфокусироваться на разработке функциональности, удовлетворении заказчиков и создании более приятного рабочего окружения.

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

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


---

# 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_76.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.
