Использование утилиты Make для автоматизации бизнес-процессов - страница 3

Шрифт
Интервал



# Правило сборки объектных файлов

%.o: %.c

$(CC) $(CFLAGS) -c $< -o $@


# Очистка временных файлов

clean:

rm -f $(OBJECTS) $(EXECUTABLE)


# Философия: .PHONY

.PHONY: all clean

```


В этом Makefile определены переменные для компилятора, флагов компиляции, списка исходных файлов и объектных файлов. Основная цель `all` зависит от исполняемого файла, который, в свою очередь, зависит от объектных файлов. Также определено правило для сборки каждого объектного файла и цель `clean` для очистки временных файлов. Директива `.PHONY` указывает, что цели `all` и `clean` не являются именами файлов.


## Глава 4: Практическое применение Make в бизнес-процессах


### Автоматизация отчетности


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


#### Пример Makefile для автоматизации отчетности


```makefile

# Переменные

DATA_DIR = data

REPORT_DIR = reports

SCRIPTS = generate_report.py analyze_sales.py

REPORT = $(REPORT_DIR)/sales_report.pdf


# Основная цель

all: $(REPORT)


# Правило генерации отчета

$(REPORT): $(DATA_DIR)/sales_data.csv $(SCRIPTS)

python3 $(SCRIPTS) $(DATA_DIR)/sales_data.csv

pdflatex $(REPORT_DIR)/sales_report.tex


# Очистка временных файлов

clean:

rm -f $(REPORT_DIR)/*.aux $(REPORT_DIR)/*.log $(REPORT_DIR)/sales_report.pdf


.PHONY: all clean

```


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


### Управление обработкой данных


Бизнес-процессы часто включают обработку больших объемов данных. Make может автоматизировать процесс извлечения, преобразования и загрузки данных (ETL), обеспечивая последовательное выполнение всех этапов обработки.


#### Пример Makefile для ETL-процесса


```makefile

# Переменные

DATA_DIR = data

TEMP_DIR = temp

OUTPUT_DIR = output

SCRIPTS = extract_data.py transform_data.py load_data.py

RAW_DATA = $(DATA_DIR)/raw_data.json

TRANSFORMED_DATA = $(TEMP_DIR)/transformed_data.csv

LOADED_DATA = $(OUTPUT_DIR)/loaded_data.db


# Основная цель

all: $(LOADED_DATA)


# Правило извлечения данных