-
-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Указание источников данных в сущностях, расширение документации #103
Conversation
@coderabbitai review |
✅ Actions performedReview triggered.
|
Warning Rate limit exceeded@nixel2007 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 1 minutes and 15 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (4)
WalkthroughЭтот pull request представляет собой обновление библиотеки управления сущностями с версии 1.8.3 до 1.9.2. Основные изменения включают добавление новых аннотаций для работы с базами данных, введение концепции источников данных и обновление workflow-процессов в GitHub Actions. Изменения направлены на улучшение механизмов работы с сущностями, колонками и подчиненными таблицами в контексте объектно-реляционного отображения. Changes
Poem
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
@coderabbitai summary |
✅ Actions performedSummary regeneration triggered. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (7)
src/Классы/ОбъектМодели.os (3)
7-7
: Добавление переменнойИсточникиДанных
на глобальном уровне
Переменная объявлена в глобальной области видимости модуля. Если требуется изоляция или специфическая инициализация, целесообразно хранить её в локальном контексте объекта и использовать геттеры/сеттеры при необходимости.
169-169
: Установка флагаГенерируемоеЗначение
Логика определения, что колонка должна генерировать своё значение, выглядит верной. Убедитесь, что дальнейший код корректно обрабатывает такие колонки при вставке/обновлении записей.
198-211
: Заполнение свойств подчинённых таблиц
Новый код правильно использует аннотациюПодчиненнаяТаблица
для формирования имени таблицы, типа и дополнительных опций. При необходимости можно добавить дополнительную проверку на случай отсутствия или некорректного значенияТипЭлемента
.Хотите ли вы, чтобы я предложил пример кода, демонстрирующий валидацию на уровне аннотации?
src/Классы/ИсточникДанных.os (2)
14-16
: ФункцияСтрокаСоединения()
Возвращение строки соединения без обработки выглядит уместным. При необходимости validaции рекомендуются дополнительные проверки (например, на пустую строку), чтобы избежать сбоев.
22-37
: ПроцедураПриСозданииОбъекта(...)
Аргументы процедуры и логика инициализации переменных выглядят согласованными. При необходимости уточнить конфигурацию, можно расширить эту процедуру дополнительными действиями по проверке валидности параметров (например, проверка не пустогоИмя
).src/Аннотации/Классы/АннотацияПодчиненнаяТаблица.os (1)
19-21
: Рекомендуется добавить валидацию параметров.Предлагаю добавить проверку значений параметров при создании объекта для предотвращения некорректного использования.
Пример реализации:
Процедура ПриСозданииОбъекта(ИмяТаблицы = Неопределено, Тип = Неопределено, ТипЭлемента = Неопределено, КаскадноеЧтение = Ложь) + Если Тип <> Неопределено И Тип <> "Массив" И Тип <> "Структура" Тогда + ВызватьИсключение "Недопустимое значение параметра Тип. Ожидается: Массив или Структура"; + КонецЕсли; КонецПроцедурыsrc/Аннотации/Классы/АннотацияКолонка.os (1)
35-37
: Рекомендуется добавить валидацию типа колонки.Следует добавить проверку корректности значения параметра
Тип
при создании объекта.Пример реализации:
Процедура ПриСозданииОбъекта(Имя = Неопределено, Тип = "Строка", ТипСсылки = Неопределено) + ДопустимыеТипы = Новый Массив; + ДопустимыеТипы.Добавить("Целое"); + ДопустимыеТипы.Добавить("Дробное"); + ДопустимыеТипы.Добавить("Булево"); + ДопустимыеТипы.Добавить("Строка"); + ДопустимыеТипы.Добавить("Дата"); + ДопустимыеТипы.Добавить("Время"); + ДопустимыеТипы.Добавить("ДатаВремя"); + ДопустимыеТипы.Добавить("Ссылка"); + ДопустимыеТипы.Добавить("ДвоичныеДанные"); + + Если ДопустимыеТипы.Найти(Тип) = Неопределено Тогда + ВызватьИсключение "Недопустимый тип колонки: " + Тип; + КонецЕсли; + + Если Тип = "Ссылка" И ТипСсылки = Неопределено Тогда + ВызватьИсключение "Для типа Ссылка необходимо указать ТипСсылки"; + КонецЕсли; КонецПроцедуры
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (14)
.github/workflows/main.yml
(1 hunks).github/workflows/qa.yml
(1 hunks).github/workflows/release.yml
(2 hunks)README.md
(1 hunks)lib.config
(2 hunks)packagedef
(1 hunks)src/Аннотации/Классы/АннотацияГенерируемоеЗначение.os
(1 hunks)src/Аннотации/Классы/АннотацияИдентификатор.os
(1 hunks)src/Аннотации/Классы/АннотацияКолонка.os
(1 hunks)src/Аннотации/Классы/АннотацияПодчиненнаяТаблица.os
(1 hunks)src/Аннотации/Классы/АннотацияСущность.os
(1 hunks)src/Классы/ИсточникДанных.os
(1 hunks)src/Классы/МенеджерСущностей.os
(1 hunks)src/Классы/ОбъектМодели.os
(4 hunks)
✅ Files skipped from review due to trivial changes (3)
- src/Классы/МенеджерСущностей.os
- src/Аннотации/Классы/АннотацияИдентификатор.os
- src/Аннотации/Классы/АннотацияГенерируемоеЗначение.os
🧰 Additional context used
🪛 YAMLlint (1.35.1)
.github/workflows/release.yml
[warning] 9-9: wrong indentation: expected 4 but found 6
(indentation)
⏰ Context from checks skipped due to timeout of 90000ms (7)
- GitHub Check: build (windows-latest, stable)
- GitHub Check: build (windows-latest, 1.9.2)
- GitHub Check: build (ubuntu-latest, stable)
- GitHub Check: build
- GitHub Check: build (ubuntu-latest, 1.9.2)
- GitHub Check: build (windows-latest, 1.9.2)
- GitHub Check: build
🔇 Additional comments (19)
src/Классы/ОбъектМодели.os (4)
31-33
: ФункцияИсточникиДанных()
Функция корректно возвращает переменнуюИсточникиДанных
. Убедитесь, что значение формируется до вызова данной функции, чтобы избежать обращения к неинициализированным данным.
141-145
: Проверка наличия аннотацииСущность
Если по каким-то причинам аннотация не будет найдена, может возникнуть ошибка при попытке получить параметры. Рекомендуется дополнительно проверять результат вызоваНайтиАннотацию(...)
наНеопределено
, чтобы избежать сбоев.
150-150
: Обработка аннотации подчинённой таблицы
Код корректно пропускает столбцы с аннотациейПодчиненнаяТаблица
. Данная логика выглядит согласованной с дальнейшей обработкой подчинённых таблиц.
158-164
: Получение параметров аннотацииКолонка
Текущий подход черезРаботаСАннотациями.ПолучитьЗначениеПараметраАннотации
выглядит упрощённым и надёжным. Однако на практике стоит проверять валидность возвращаемого типа, если указаноТипСсылки
. При ошибочной передаче типа возможны неопределённые ситуации.src/Классы/ИсточникДанных.os (4)
1-4
: Объявление переменных для описания источника данных
Переменные логичны и соответствуют основным атрибутам источника данных (имя, тип, строка соединения, параметры). Следите за корректным заполнением этих полей при создании объекта.
6-8
: ФункцияИмя()
Возвращается идентификатор источника данных. Всё выглядит корректно.
10-12
: ФункцияТипКоннектора()
Метод корректно возвращает тип коннектора. Если поле не инициализировано, могут возникнуть проблемы при дальнейшей работе, поэтому желательно предусмотреть проверку или значение по умолчанию.
18-20
: ФункцияПараметрыКоннектора()
Возвращение массива параметров позволяет гибко дополнять настройки. Проверяйте, что массив корректно сформирован при инициализации.src/Аннотации/Классы/АннотацияСущность.os (1)
1-19
: Новая аннотацияСущность
и процедура конструктора
Аннотация логично описывает параметры таблицы и источников данных. Процедура с повторяемым параметромИсточникДанных
позволяет удобную конфигурацию. Рекомендуется дополнить документацию примерами использования разных источников данных, если это предполагается.packagedef (1)
11-11
: Обновление версии среды и добавление новой зависимости.Изменения корректны:
- Обновление версии среды до 1.9.2 соответствует изменениям в workflow-файлах
- Добавление зависимости annotations необходимо для новых аннотаций
Also applies to: 18-18
src/Аннотации/Классы/АннотацияПодчиненнаяТаблица.os (1)
1-18
: Отличная документация аннотации.Документация подробно описывает все параметры и содержит наглядный пример использования.
src/Аннотации/Классы/АннотацияКолонка.os (1)
1-33
: Подробная документация с исчерпывающим списком типов.Документация отлично структурирована и содержит все необходимые примеры использования.
.github/workflows/release.yml (1)
21-21
: Обновление версии OneScript согласовано с другими изменениями.Версия OneScript обновлена до 1.9.2, что соответствует обновлению версии среды в packagedef.
.github/workflows/main.yml (1)
17-17
: Обновление версии Onescript в CI.
Версия в матрице параметров изменена с прежней (например, 1.8.3) на новую 1.9.2, что соответствует обновлённым требованиям.lib.config (2)
4-4
: Добавлен класс «ИсточникДанных».
Новый класс «ИсточникДанных» расширяет конфигурацию для работы с различными источниками данных и соответствует цели PR "Feature/data-source".
16-20
: Добавлены новые аннотации для сущностей.
В блоке добавлены следующие классы:
- АннотацияГенерируемоеЗначение
- АннотацияИдентификатор
- АннотацияКолонка
- АннотацияПодчиненнаяТаблица
- АннотацияСущность
Эти изменения улучшают механизм аннотирования сущностей в ORM, позволяя более гибко задавать параметры для таблиц и колонок. Рекомендуется проверить раздел документации, чтобы обеспечить соответствие новым возможностям.
.github/workflows/qa.yml (1)
20-20
: Обновление версии в QA workflow.
Параметрversion
дляSetup Onescript Action
обновлён до "1.9.2", что обеспечивает согласованность с основным CI-пайплайном.README.md (2)
412-412
: Расширение аннотации «Сущность».
Добавлен новый параметрИсточникДанных
к аннотацииСущность
, что позволяет явно указывать имя источника данных, используемого коннектором в работе с сущностями. Это изменение улучшает гибкость конфигурации ORM.
420-420
: Уточнение описания аннотации «Идентификатор».
Текст описания изменён для повышения ясности требований к наличию поля идентификатора в классах-сущностях. Обновлённое описание должно помочь разработчикам корректно реализовывать первичный ключ.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Summary by CodeRabbit
Примечания к выпуску
Новые возможности
Обновления
Улучшения документации