Обзор учебного пособия

ent go

Go ent - мощный и простой в использовании фреймворк ORM, разработанный Facebook. Он позволяет разработчикам определять модели данных на языке Go, а затем преобразовывать эти модели в типобезопасный API запросов, используя технологию генерации кода ent. Его преимущества включают:

  1. Модель графовой структуры: ent определяет схему базы данных как графовую структуру, что делает отношения данных понятными и легкими в обслуживании.
  2. Код как схема: Схема данных определяется путем написания кода на Go, что означает полную поддержку IDE, включая автозаполнение кода и проверку типов.
  3. Типобезопасность: Благодаря генерации кода, ent обеспечивает статическую проверку типов, уменьшая возможность ошибок времени выполнения.
  4. Простота запросов: Независимо от того, является ли запрос простым или сложным обходом графа, ent предоставляет простой и мощный API для выполнения задач.
  5. Расширяемость: Если стандартной функциональности недостаточно для удовлетворения конкретных требований, можно использовать шаблоны Go для расширения, предоставляя разработчикам больше свободы.

Рассмотренные темы

В этом учебном пособии мы рассмотрим следующие темы:

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