Обзор учебного пособия
Go ent
- мощный и простой в использовании фреймворк ORM, разработанный Facebook. Он позволяет разработчикам определять модели данных на языке Go, а затем преобразовывать эти модели в типобезопасный API запросов, используя технологию генерации кода ent
. Его преимущества включают:
-
Модель графовой структуры:
ent
определяет схему базы данных как графовую структуру, что делает отношения данных понятными и легкими в обслуживании. - Код как схема: Схема данных определяется путем написания кода на Go, что означает полную поддержку IDE, включая автозаполнение кода и проверку типов.
-
Типобезопасность: Благодаря генерации кода,
ent
обеспечивает статическую проверку типов, уменьшая возможность ошибок времени выполнения. -
Простота запросов: Независимо от того, является ли запрос простым или сложным обходом графа,
ent
предоставляет простой и мощный API для выполнения задач. - Расширяемость: Если стандартной функциональности недостаточно для удовлетворения конкретных требований, можно использовать шаблоны Go для расширения, предоставляя разработчикам больше свободы.
Рассмотренные темы
В этом учебном пособии мы рассмотрим следующие темы:
- Начало работы: Объяснение установки фреймворка ent, инициализации проекта и выполнения основных операций CRUD.
-
Определение схемы:
- Определение поля: Как определять поля в модели.
- Определение индекса: Как определять индексы в фреймворке ent.
- Генерация кода: Введение в использование встроенных инструментов генерации кода ent.
- Подключение к базе данных: Объяснение конфигурации и подключения различных типов баз данных в фреймворке ent.
- Операции над сущностями: Введение в создание, запрос, обновление, удаление и операции с пагинацией вокруг сущностей ent.
- Определение ассоциаций сущностей: Введение в отношения между сущностями.
- Запросы ассоциаций сущностей: Объяснение выполнения объединенных запросов (обход графа) и загрузки со связями.
- Предварительная загрузка в запросах с ассоциациями: Объяснение функции предварительной загрузки в запросах с ассоциациями.
- Транзакции: Методы для поддержания согласованности данных с использованием транзакций в ent.
- Агрегационный анализ: Реализация возможностей статистического анализа, подобного SQL, через ent.
- Механизм миграции: Подробное объяснение функции миграции фреймворка ent и способов поддержания структуры таблиц.
- Механизм хуков: Объяснение механизма хуков в ent и их применения.