Начало Рецепты за две минуты
Рецепты за две минуты
Что такое рецепт, из чего он состоит и почему вокруг него нет путей и строк.
Рецепт это именованный блок действий. Он может зависеть от других рецептов и использовать их результат. Пользователь пишет рецепты сам, встроенных «системных рецептов» нет. Встроенными бывают только команды и адаптеры инструментов (сборка, git, файлы, dat), но команда сама по себе не рецепт.
Из чего состоит рецепт
- Имя. Произвольное, по нему на рецепт ссылаются другие.
- Зависимости. Какие рецепты должны отработать раньше.
- Тело. Что рецепт делает: берёт данные, преобразует, кладёт результат.
Рецепт работает с объектами, а не со строками
В Anchor Code server и client это типизированные объекты, а не пути на диске и не JSON с настройками. Выбранный проект подставляется сам, поэтому в рецепте нет project..
// ЧЕРНОВИК. Показывает смысл, не исполняется.
recipe BuildLcoin {
dependsOn(GenerateShops);
GenerateShops.output
.select(server.shops.lcoin.id)
.replaceIn(client.dat.shopProducts);
}
Как читать: сначала должен отработать GenerateShops, потом из его результата берётся магазин, который в выбранном проекте привязан как L-Coin, и записывается в нужную таблицу клиента.
Черновик. Слово
recipeбез кавычек, формаdependsOn(...), свойствоoutput, методыselectиreplaceInи имяshopProductsне утверждены. Это набросок смысла, а не контракт и не выполняемый код.
Что гарантируется уже сейчас
- Видимость не равна праву. Рецепт, который может прочитать данные, не получает права их менять.
- Сначала предпросмотр, потом действие. Ничего не меняется на сервере, в клиенте, в Git или на живой системе молча.
- Если цель неоднозначна, это ошибка с объяснением, а не угадывание.
Дальше: Первый рецепт.