We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
Ecto: от нуля до продвинутого
About this course
Полный курс по Ecto — от первого запроса до продвинутых техник. Ecto это не ORM, а тандем data mapper и языка запросов: явный, композируемый, без магии. Предполагается знание Elixir (pattern matching, pipe, структуры). Ecto используется в Phoenix, но это самостоятельная библиотека и работает без него — курс это учитывает. Примеры на PostgreSQL (основная СУБД экосистемы), но большинство применимо к MySQL/SQLite.
Курс охватывает четыре столпа Ecto — Repo (доступ к БД), Schema (отображение таблиц), Changeset (валидация и преобразование данных), Query (композируемый DSL запросов) — и ведёт от основ к продвинутому: ассоциации и борьба с N+1, сложные запросы (join’ы, подзапросы, оконные функции, CTE, динамические запросы), транзакции через Ecto.Multi, embedded и schemaless changeset’ы, upsert’ы и bulk-операции, мультитенантность через prefixes, кастомные типы, а также тестирование, производительность и безопасные миграции в проде.
Для разработчика из Rails проведены параллели: Ecto ≈ ActiveRecord, но без магии и с явными changeset’ами; Repo ≈ то, что в AR размазано по моделям; миграции похожи, но полностью обратимы. Ключевое отличие от AR — Ecto разделяет данные (schema), их изменение (changeset) и доступ (Repo), а не смешивает всё в «активной записи».
Темп 1–2 часа в день. Каждый урок содержит теорию, примеры кода, чеклист заданий и квиз. Главный принцип: Ecto делает работу с БД явной — ты всегда видишь, какой SQL выполнится, какие поля принимаются из ввода и когда происходит обращение к базе.