Podlodka #87
Build-системы
Каждый день многие из нас неоднократно запускают эту команду в терминале или нажимают на заветную кнопочку в своей любимой среде разработки. Сборка – это тот процесс, который превращает сырые исходники и ресурсы в приложения и сервисы, которые можно предоставить пользователям. Возрастающая сложность приложений ведет к тому, что процесс сборки пропорционально усложняется, и нам нужны специальные инструменты, чтобы решать эту задачу. Именно об этих инструментах, а именно о build-системах, мы поговорим в этом выпуске с Артёмом Зиннатуллиным из компании Lyft.
Артём Зиннатуллин
Lyft
Артем Зиннатуллин разрабатывает и поддерживает мобильную инфраструктуру в Lyft: системы сборки, тулинг, инфраструктурный бэкенд, Kubernetes, архитектура, библиотеки.
Стало интересно? Послушайте весь выпуск!
Содержание
00:00:45 – Знакомство с гостем
00:07:32 – История развития build-систем
00:12:52 – Ant и Maven
00:17:03 – Про зависимость по исходникам
00:18:50 – Gradle
00:24:40 – Про узкоспециализированные build-системы
00:29:13 – Что должна уметь современная build-система
00:29:41 – Инкрементальная сборка
00:31:38 – Remote cache
00:36:51 – Параллельность сборки
00:37:43 – Мониторинг файловой системы
00:39:39 – Запуск тестов
00:40:57 – Build-система Xcode
00:42:31 – Язык описание конфигурации
00:47:56 – ABI extraction
00:54:54 – Использование неблокирующих API операционной системы
00:56:41 – Remote execution
01:07:20 – Bazel и Buck
01:13:47 – Как устроены билды в Lyft
01:20:58 – Как выбрать build-систему
01:26:08 – Модуляризация
01:28:53 – Какие скиллы нужны build-инженеру
01:44:05 – Подведение черты
01:45:38 – Вопрос Стасу

Полезные ссылки
Gradle – https://gradle.org/
Buck – http://buckbuild.com/
Bazel – https://bazel.build/
Skylark – https://docs.bazel.build/versions/master/skylark/language.html
ABI – https://en.wikipedia.org/wiki/Application_binary_interface
API – https://en.wikipedia.org/wiki/Application_programming_interface
Mainframer – https://github.com/buildfoundation/mainframer
Twitter Артёма – http://twitter.com/artem_zin
Книга Google – Site Reliability Engineering – https://landing.google.com/sre/books/