ПроГресс с ДеноГрес

Jan 26 2023
Что нужно знать о ДеноГрес 4.0
Очень краткий обзор Deno Deno — быстро развивающаяся среда выполнения JavaScript, TypeScript и WebAssembly, построенная на Rust поверх движка Chrome V8, с безопасными значениями по умолчанию, встроенными инструментами и импортом URL-адресов для управления зависимостями. Он был представлен создателем Node Райаном Далом на JSconf EU в 2018 году во время его выступления под знаменитым названием «10 вещей, о которых я сожалею о Node.

Очень краткий обзор Deno

Deno — быстро развивающаяся среда выполнения JavaScript, TypeScript и WebAssembly, созданная на Rust поверх движка Chrome V8, с безопасными настройками по умолчанию, встроенными инструментами и импортом URL-адресов для управления зависимостями. Он был представлен создателем Node Райаном Далом на JSconf EU в 2018 году во время его выступления под знаменитым названием « 10 вещей, о которых я сожалею о Node ». ”

Почему ОРМ?

Для тех, кто не знаком, ORM означает Object-Relational Mapper. "Что это значит?" Вы можете спросить. Проще говоря, ORM позволяет разработчикам работать с реляционными базами данных через объекты, а не через строки запросов. Переключение между объектно-ориентированным программированием и декларативным синтаксисом SQL может стать утомительным и нарушить рабочий процесс во время разработки. ORM позволяют разработчику взаимодействовать со своей базой данных как с классами и экземплярами. К нашему преимуществу, существует множество инструментов ORM — к сожалению, варианты с открытым исходным кодом, разработанные с первоклассной поддержкой TypeScript, ограничены, и еще меньше разработано для среды выполнения Deno.

ДеноГрес, решение

DenoGres предоставляет ORM TypeScript для разработчиков, работающих с PostgreSQL в среде выполнения Deno. Инструмент работает, анализируя базу данных пользователя, включая ее метки, типы и ограничения, и перенося каждую таблицу в класс, который расширяет абстрактный класс «Модель». Это дает этим классам таблиц доступ к набору статических свойств и методов, которые безопасно обрабатывают запросы к базе данных, в то время как пользователь взаимодействует с базой данных через знакомый механизм ООП.

Чтобы начать работу с DenoGres в вашем проекте Deno, следуйте этим подсказкам командной строки:

Импортируйте DenoGres в свой проект:

deno install --allow-read --allow-write --allow-net --allow-env 
--allow-run --name denogres https://deno.land/x/denogres/mod.ts

denogres --init

Изучите свою базу данных и создайте модели:

denogres --db-pull

denogres --gui

Возможности ДеноГрес 4.0

DenoGres 4.0 предлагает множество обновлений и без того мощной ORM. Возможно, наиболее интересно то, что он добавляет функцию транзакций и отката, чтобы пользователи могли выполнять несколько запросов в пакетном режиме, сохраняя целостность транзакций и соответствие требованиям ACID.

Атомарность, первый принцип в аббревиатуре ACID, по сути является правилом, согласно которому при пакетной обработке нескольких запросов к базе данных должны быть зафиксированы либо все изменения, либо никакие. Это защищает важные таблицы в базе данных от нежелательных изменений в случае сбоев, проблем с подключением или неудачных запросов.

Чтобы использовать транзакции в DenoGres, пользователь может привязать .transaction() к концу других методов запроса, чтобы создать или продолжить транзакцию. Транзакции могут использоваться в нескольких моделях для пакетных запросов. Это позволяет обеспечить синхронизацию важных таблиц, когда манипулирование одной таблицей зависит от другой. Чтобы завершить транзакцию, привяжите .endTransaction() к последнему запросу. Если какой-либо запрос в транзакции завершится ошибкой, все предыдущие запросы будут отменены, и эти таблицы вернутся в исходное состояние.

Вот пример:

await Person.insert('name = Alex').transaction();
await Animal.delete().where('name = Spot').transaction();
await Person.insert('nae = Rachel').endTransaction(); 
// throws an error since 'nae' isn't a column, rolls back all previous queries and returns the error for the query that failed

DenoGres 4.0 также значительно расширяет охват кода, обеспечивая удобство работы как для пользователей, так и для разработчиков. Каждому потенциальному варианту использования уделялось пристальное внимание, а это означает, что пользователи могут использовать DenoGres для более сложных запросов, не беспокоясь о том, что данные будут потеряны.

Будущее ДеноГрес

Поскольку DenoGres — это продукт с открытым исходным кодом, разработанный в рамках OSLabs, этот инструмент постоянно совершенствуется, и в будущем появится ряд функций:

  • Функциональность SavePoint позволит пользователям иметь более крупные транзакции, которые можно разделить на части, и разрешить частичный откат транзакций до точки сохранения. Это полезно для реализации комплексного восстановления после ошибок.
  • Метод установки, который можно добавлять к моделям при установлении ассоциации с другой моделью, что позволяет быстро добавлять связанные строки.
  • Функция manyToMany создаст новую соединительную таблицу, позволяя пользователям ORM инициировать более сложные отношения между таблицами.

Участники DenoGres 4.0:

  • Рэйчел Чеман | Линкедин | Гитхаб
  • Джейкоб Мартин | Линкедин | Гитхаб
  • Миа Гуссен | Линкедин | Гитхаб
  • Александр Лин | Линкедин | Гитхаб