Skip to content
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

Докуметация по API #109

Merged
merged 10 commits into from
Nov 19, 2024
Merged

Докуметация по API #109

merged 10 commits into from
Nov 19, 2024

Conversation

nixel2007
Copy link
Member

No description provided.

Copy link

coderabbitai bot commented Nov 2, 2024

Walkthrough

В данном пулл-запросе добавлены новые маркерные аннотации в файлы АннотацияБлестяшка.os, АннотацияДеталька.os, АннотацияПластилин.os, АннотацияВерховный.os, АннотацияЖелудь.os, АннотацияПорядок.os, АннотацияФинальныйШтрих.os, АннотацияХарактер.os, АннотацияПриемка.os, АннотацияСпецификация.os, АннотацияТабакерка.os, АннотацияРогатка.os, АннотацияОсобоеОбращение.os, АннотацияПрозвище.os, АннотацияДуб.os и АннотацияЗавязь.os. Каждая аннотация предназначена для указания различных типов значений, которые могут быть переданы в параметры конструкторов или методов. Также добавлены процедуры с параметрами по умолчанию для создания объектов, а документация объясняет назначение и использование аннотаций. Внесены изменения в обработку ошибок в некоторых функциях, а также обновлены комментарии для улучшения документации.

Changes

Файл Изменения
src/internal/Классы/АннотацияБлестяшка.os Добавлена маркерная аннотация для указания произвольного значения, применима только к параметрам конструктора/метода.
src/internal/Классы/АннотацияДеталька.os Добавлена маркерная аннотация для указания настройки приложения, с параметрами Значение и ЗначениеПоУмолчанию.
src/internal/Классы/АннотацияПластилин.os Добавлена маркерная аннотация для указания желудя, с параметрами Значение, Тип и Блестяшка.
src/internal/Классы/АннотацияВерховный.os Добавлена процедура ПриСозданииОбъекта в контексте аннотации Верховный.
src/internal/Классы/АннотацияЖелудь.os Добавлен комментарий, описывающий назначение аннотации для класса как компонента желудя, с параметрами.
src/internal/Классы/АннотацияПорядок.os Добавлены комментарии для функций и процедур, уточняющие их назначение и ограничения.
src/internal/Классы/АннотацияФинальныйШтрих.os Процедура ПриСозданииОбъекта теперь помечена аннотацией "ФинальныйШтрих".
src/internal/Классы/АннотацияХарактер.os Добавлена аннотация для управления жизненным циклом желудя с характеристиками "Одиночка" и "Компанейский".
src/internal/Классы/АннотацияПриемка.os Добавлена аннотация &Приемка, требующая реализации процедуры ПриДобавленииОпределенияЖелудя.
src/internal/Классы/АннотацияСпецификация.os Обновлена процедура ПриСозданииОбъекта, теперь параметр Значение имеет значение по умолчанию "Выполнение".
src/internal/Классы/АннотацияТабакерка.os Добавлены комментарии, объясняющие использование аннотации Табакерка и её функциональность.
src/internal/Классы/ПрилепляторЧастиц.os Обновлены сообщения об ошибках в функциях ДанныеОПрилепляемойЧастице и НайтиПрилепляемуюЧастицу.
src/Модули/СостоянияПриложения.os Переформатирована структура кода без изменения функциональности.
src/internal/Классы/АннотацияРогатка.os Добавлены функции ЗапускатьВФоне() и ОжидатьЗавершения(), обновлена процедура ПриСозданииОбъекта.
src/internal/Классы/АннотацияОсобоеОбращение.os Обновлена процедура ПриСозданииОбъекта с дополнительной логикой валидации параметров.
src/internal/Классы/АннотацияПрозвище.os Добавлена новая аннотация для ассоциации нескольких прозвищ с желудями, с комментариями о её назначении.
src/internal/Классы/АннотацияДуб.os Добавлена аннотация для класса как фабрики компонентов "Дуб", с описанием функциональности и параметрами.
src/internal/Классы/АннотацияЗавязь.os Добавлена новая аннотация для маркировки функций, создающих желудей, с примерами использования и параметрами.
src/internal/Классы/АннотацияНапильник.os Добавлена функция МожетПрименятьсяНа, проверяющая, можно ли применить файл к указанному желудю.

Possibly related PRs

  • fluent в советДругогоМастера #106: Изменения в этом пулл-запросе касаются модификаций методов-сеттеров в классе СоветДругогоМастера, что может быть связано с новой аннотацией, введенной в основном пулл-запросе, которая уточняет, как параметры могут быть аннотированы, потенциально влияя на передачу и обработку значений в методах.

Poem

В лесу, где шишки падают с ветвей,
В аннотациях прячутся чудесней,
Мы добавили блестяшки, детали,
Теперь код наш — как сказка, в финале! 🐇✨
Параметры ждут, как зайцы в траве,
С новым кодом — веселье в игре!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 52f52ed and ebe5006.

📒 Files selected for processing (7)
  • src/internal/Классы/АннотацияБлестяшка.os (1 hunks)
  • src/internal/Классы/АннотацияВерховный.os (1 hunks)
  • src/internal/Классы/АннотацияДуб.os (1 hunks)
  • src/internal/Классы/АннотацияЗавязь.os (1 hunks)
  • src/internal/Классы/АннотацияПластилин.os (1 hunks)
  • src/internal/Классы/АннотацияСпецификация.os (1 hunks)
  • src/internal/Классы/АннотацияТабакерка.os (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (7)
  • src/internal/Классы/АннотацияБлестяшка.os
  • src/internal/Классы/АннотацияВерховный.os
  • src/internal/Классы/АннотацияДуб.os
  • src/internal/Классы/АннотацияЗавязь.os
  • src/internal/Классы/АннотацияПластилин.os
  • src/internal/Классы/АннотацияСпецификация.os
  • src/internal/Классы/АннотацияТабакерка.os

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coveralls
Copy link

coveralls commented Nov 2, 2024

Pull Request Test Coverage Report for Build 11919938340

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 13 unchanged lines in 3 files lost coverage.
  • Overall coverage decreased (-0.3%) to 89.754%

Files with Coverage Reduction New Missed Lines %
src/internal/Классы/АннотацияСпецификация.os 2 80.0%
src/Классы/СоветДругогоМастера.os 3 90.0%
src/internal/Классы/АннотацияОсобоеОбращение.os 8 73.33%
Totals Coverage Status
Change from base Build 11428544917: -0.3%
Covered Lines: 1130
Relevant Lines: 1259

💛 - Coveralls

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
src/internal/Классы/АннотацияДеталька.os (1)

1-12: Предлагаю дополнить документацию примерами использования

Документация хорошо структурирована, но было бы полезно добавить:

  1. Пример использования аннотации с параметрами
  2. Пример использования без параметров (с значениями по умолчанию)
  3. Более подробное описание поведения при использовании ЗначениеПоУмолчанию

Пример дополнения:

 //   ЗначениеПоУмолчанию - Произвольный - Значение, которое принимает деталька, если не задано из-вне. 
+//
+// Пример:
+//   &Деталька("app.database.connection")
+//   Процедура УстановитьСтрокуПодключения(Знач СтрокаПодключения) Экспорт
+//     ...
+//   КонецПроцедуры
+//
+//   &Деталька(ЗначениеПоУмолчанию = 5000)
+//   Перем ТаймаутПодключения Экспорт;
src/internal/Классы/АннотацияПластилин.os (1)

1-13: Документация хорошо структурирована, но есть возможности для улучшения

Предлагаю добавить:

  • Пример использования аннотации
  • Ссылку на документацию по всем доступным значениям параметра Тип

Предлагаю добавить после строки 13:

// Пример:
//   &Пластилин(Значение = "МойЖелудь", Тип = "Массив")
//   Процедура УстановитьЗначения(Знач Параметр) Экспорт
//   КонецПроцедуры
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 76d6bdb and 26b65b1.

📒 Files selected for processing (3)
  • src/internal/Классы/АннотацияБлестяшка.os (1 hunks)
  • src/internal/Классы/АннотацияДеталька.os (1 hunks)
  • src/internal/Классы/АннотацияПластилин.os (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/internal/Классы/АннотацияБлестяшка.os
🔇 Additional comments (1)
src/internal/Классы/АннотацияПластилин.os (1)

14-15: Корректная реализация конструктора

Параметры конструктора соответствуют документации, значения по умолчанию заданы корректно.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (4)
src/internal/Классы/АннотацияБлестяшка.os (1)

Line range hint 15-19: Корректная реализация маркерной аннотации

Реализация соответствует паттерну маркерной аннотации:

  • Правильно указан атрибут аннотации
  • Пустая процедура ПриСозданииОбъекта является ожидаемой для маркерной аннотации

Для улучшения читаемости кода предлагаю добавить экспорт к процедуре:

&Аннотация("Блестяшка")
-Процедура ПриСозданииОбъекта()
+Процедура ПриСозданииОбъекта() Экспорт
🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияБлестяшка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияДеталька.os (1)

1-35: Предложения по улучшению документации

Документация хорошо структурирована, но рекомендуется добавить:

  1. Более подробное описание интеграции с библиотекой configor
  2. Пример использования значения по умолчанию и как оно применяется в runtime
 // Параметры:
 //   Значение - Строка - Ключ настройки. См. библиотеку [configor](https://github.com/oscript-library/configor)
 //                       для полного описания синтаксиса.
+//                       Пример: "Database.ConnectionString" или "App.Settings.Timeout"
 //                       Если не заполнено, используется имя параметра конструктора/поля класса
 //                       или часть имени метода для установки значения.
 //   ЗначениеПоУмолчанию - Произвольный - Значение, которое принимает деталька, если не задано из-вне. 
+//                                        Применяется только если значение не найдено в конфигурации.
🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияДеталька.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияПластилин.os (2)

1-37: Отличная документация, но стоит добавить информацию о валидации параметров

Документация хорошо структурирована и содержит понятные примеры использования. Однако было бы полезно добавить информацию о том, какие значения параметров считаются допустимыми и как обрабатываются некорректные значения.

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияПластилин.os#L1
Программные модули не должны иметь закомментированных фрагментов кода


38-41: Реализация корректна, но можно улучшить согласованность

Процедура реализована правильно с использованием аннотации и параметров по умолчанию. Для улучшения согласованности с другими аннотациями в проекте, предлагаю добавить комментарий о назначении пустой реализации.

Предлагаемое изменение:

 &Аннотация("Пластилин")
 Процедура ПриСозданииОбъекта(Значение = "", Тип = "", &Повторяемый Блестяшка = Неопределено)
-
+    // Реализация не требуется для маркерной аннотации
 КонецПроцедуры
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 26b65b1 and 3364d4e.

📒 Files selected for processing (4)
  • src/internal/Классы/АннотацияБлестяшка.os (1 hunks)
  • src/internal/Классы/АннотацияВерховный.os (1 hunks)
  • src/internal/Классы/АннотацияДеталька.os (1 hunks)
  • src/internal/Классы/АннотацияПластилин.os (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/internal/Классы/АннотацияВерховный.os
🧰 Additional context used
🪛 GitHub Check: autumn Sonarqube Results
src/internal/Классы/АннотацияБлестяшка.os

[warning] 1-1: src/internal/Классы/АннотацияБлестяшка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияДеталька.os

[warning] 1-1: src/internal/Классы/АннотацияДеталька.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияПластилин.os

[warning] 1-1: src/internal/Классы/АннотацияПластилин.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

🔇 Additional comments (2)
src/internal/Классы/АннотацияБлестяшка.os (1)

1-14: Отличная документация с понятными примерами использования

Документация хорошо структурирована и содержит:

  • Четкое описание назначения аннотации
  • Ограничения по использованию
  • Практические примеры применения
🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияБлестяшка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияДеталька.os (1)

Line range hint 36-39: Реализация корректна

Процедура ПриСозданииОбъекта реализована правильно с соответствующими параметрами по умолчанию, что полностью соответствует документации и требованиям аннотации.

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияДеталька.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (1)
src/internal/Классы/АннотацияФинальныйШтрих.os (1)

1-9: Предложение: добавить пример использования аннотации

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

Предлагаемое дополнение:

 // Процедура должна быть помечена `Экспорт`ная.
 //
+// Пример:
+//
+// &Аннотация("ФинальныйШтрих")
+// Процедура ИнициализироватьСостояние() Экспорт
+//     ОбновитьКэш();
+//     ПроверитьПодключение();
+// КонецПроцедуры
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 3364d4e and 6308eae.

📒 Files selected for processing (5)
  • src/internal/Классы/АннотацияВерховный.os (1 hunks)
  • src/internal/Классы/АннотацияЖелудь.os (1 hunks)
  • src/internal/Классы/АннотацияПорядок.os (1 hunks)
  • src/internal/Классы/АннотацияФинальныйШтрих.os (1 hunks)
  • src/internal/Классы/АннотацияХарактер.os (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/internal/Классы/АннотацияЖелудь.os
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/internal/Классы/АннотацияВерховный.os
🔇 Additional comments (3)
src/internal/Классы/АннотацияХарактер.os (2)

1-19: Отличная документация!

Документация хорошо структурирована и содержит всю необходимую информацию:

  • Четкое описание назначения аннотации
  • Подробное объяснение двух типов характера
  • Правильное форматирование параметров
  • Наличие примеров использования

Line range hint 20-24: Проверьте необходимость реализации логики в процедуре

Процедура ПриСозданииОбъекта не содержит реализации. Если это намеренно, рекомендуется добавить комментарий, объясняющий причину пустой реализации.

Предлагаю добавить комментарий:

 &Аннотация("Характер")
 Процедура ПриСозданииОбъекта(Значение)
+    // Реализация будет добавлена в модуле управления жизненным циклом
 КонецПроцедуры
src/internal/Классы/АннотацияПорядок.os (1)

3-7: Документация функции оформлена корректно!

Описание возвращаемого значения четкое и понятное.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (6)
src/internal/Классы/АннотацияПриемка.os (1)

1-11: Отличная документация, есть небольшое предложение по улучшению

Документация хорошо структурирована и содержит всю необходимую информацию. Однако можно добавить пример использования аннотации для лучшего понимания.

Предлагаю добавить пример использования после описания параметров:

// Параметры:
//   Значение - Строка - Имя желудя, под которым приемка добавляется в контекст Поделки.
//
+// Пример:
+// ```oscript
+// &Приемка
+// Процедура ПриДобавленииОпределенияЖелудя(ОпределениеЖелудя) Экспорт
+//     // Реализация проверки
+// КонецПроцедуры
+// ```
+//
src/internal/Классы/АннотацияСпецификация.os (3)

3-7: Предлагаю расширить документацию метода

Рекомендуется добавить описание назначения метода и возможных значений.

 // Сохраненное значение спецификации.
+// 
+// Возвращает текущее значение спецификации жизненного цикла.
+// Возможные значения соответствуют значениям СостоянияПриложения.
 //
 //  Возвращаемое значение:
 //   Строка

12-29: Рекомендуется пояснить маркер @unstable

Документация подробная и информативная, но следует объяснить значение маркера @unstable для пользователей API.

 // `@unstable`
+// Данный API может измениться в будущих версиях без предварительного уведомления
 //
 // Аннотация для указания жизненого цикла приложения...

31-33: Улучшить сообщение об ошибке

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

 	Если СостоянияПриложения.Значения().Найти(_Значение) = Неопределено Тогда
+		ДопустимыеЗначения = СтрСоединить(СостоянияПриложения.Значения(), ", ");
 		ТекстСообщения = СтрШаблон(
-			"Неверное значение спецификации %1",
-			_Значение
+			"Неверное значение спецификации '%1'. Допустимые значения: %2",
+			_Значение,
+			ДопустимыеЗначения
 		);
src/internal/Классы/ПрилепляторЧастиц.os (2)

92-92: Улучшение сообщения об ошибке

Изменение формулировки сообщения об ошибке улучшает его понятность. Однако рекомендуется добавить больше контекста в сообщение для упрощения отладки.

Предлагаю дополнить сообщение об ошибке:

-			ВызватьИсключение "Неизвестный тип прилепляемого через &Пластилин значения";
+			ВызватьИсключение СтрШаблон(
+				"Неизвестный тип прилепляемого через &Пластилин значения: %1. Поддерживаемые типы: Желудь, %2",
+				ТипЖелудя,
+				СтрСоединить(УправляющийПрилепляемымиКоллекциями.ПолучитьТипыПрилепляемыхКоллекций(), ", ")
+			);

Line range hint 1-124: Унификация обработки ошибок

В коде используются разные подходы к формированию сообщений об ошибках:

  • Прямые строки: ВызватьИсключение "Неизвестный тип..."
  • СтрШаблон: ВызватьИсключение СтрШаблон("Неизвестный тип прилепляемой частицы в свойстве/методе %1", ИмяСвойства)
  • Конкатенация: ВызватьИсключение "Неизвестная аннотация " + Аннотация.Имя()

Рекомендуется унифицировать подход к формированию сообщений об ошибках, используя СтрШаблон во всех случаях для улучшения поддерживаемости кода. Например:

-		ВызватьИсключение "Неизвестная аннотация " + Аннотация.Имя();
+		ВызватьИсключение СтрШаблон("Неизвестная аннотация: %1", Аннотация.Имя());
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 6308eae and 9418452.

📒 Files selected for processing (9)
  • src/internal/Классы/АннотацияПластилин.os (1 hunks)
  • src/internal/Классы/АннотацияПорядок.os (1 hunks)
  • src/internal/Классы/АннотацияПриемка.os (1 hunks)
  • src/internal/Классы/АннотацияСпецификация.os (1 hunks)
  • src/internal/Классы/АннотацияТабакерка.os (1 hunks)
  • src/internal/Классы/АннотацияФинальныйШтрих.os (1 hunks)
  • src/internal/Классы/АннотацияХарактер.os (1 hunks)
  • src/internal/Классы/ПрилепляторЧастиц.os (1 hunks)
  • src/Модули/СостоянияПриложения.os (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • src/internal/Классы/АннотацияТабакерка.os
  • src/Модули/СостоянияПриложения.os
🚧 Files skipped from review as they are similar to previous changes (4)
  • src/internal/Классы/АннотацияПластилин.os
  • src/internal/Классы/АннотацияПорядок.os
  • src/internal/Классы/АннотацияФинальныйШтрих.os
  • src/internal/Классы/АннотацияХарактер.os
🔇 Additional comments (2)
src/internal/Классы/АннотацияПриемка.os (2)

Line range hint 12-17: Корректная структура аннотаций

Все необходимые аннотации присутствуют и соответствуют документации. Порядок их объявления логичен.


Line range hint 17-19: Проверьте реализацию интерфейса

Класс требует реализации метода ПриДобавленииОпределенияЖелудя, как указано в документации. Убедитесь, что все классы, использующие эту аннотацию, реализуют требуемый метод.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (3)
src/internal/Классы/АннотацияПриемка.os (1)

1-23: Документация хорошо структурирована, но пример можно улучшить

Документация подробно описывает назначение и использование аннотации. Однако, пример использования можно сделать более информативным, добавив контекст создания и регистрации желудя.

Предлагаю расширить пример:

  Пример:
+ 
+ // КлассПроверкиЖелудей.os
+ &Приемка("ПроверкаЖелудей")
+ Процедура ПриСозданииОбъекта()
+ КонецПроцедуры
  
  Процедура ПриДобавленииОпределенияЖелудя(ОпределениеЖелудя) Экспорт
      Сообщить("Определение желудя: " + ОпределениеЖелудя.Имя());
+ 
+     // Дополнительная валидация желудя
+     Если ОпределениеЖелудя.Имя() = "" Тогда
+         ВызватьИсключение "Имя желудя не может быть пустым";
+     КонецЕсли;
  КонецПроцедуры
- .
- &Приемка
- Процедура ПриСозданииОбъекта()
- КонецПроцедуры
🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияПриемка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияРогатка.os (2)

4-20: Функции реализованы корректно, но документацию можно улучшить

Предлагаю дополнить документацию примерами использования функций для большей ясности.

Пример улучшения документации для функции ЗапускатьВФоне:

 // Флаг необходимости запуска рогатки в фоновом задании.
 //
 //  Возвращаемое значение:
 //   Булево
 //
+// Пример:
+//  Если РогаткаОбъект.ЗапускатьВФоне() Тогда
+//    // Логика для фонового выполнения
+//  КонецЕсли

22-42: Добавить проверку реализации интерфейса

Документация хорошо описывает требования к классу с аннотацией &Рогатка, но было бы полезно добавить проверку наличия метода ПриЗапускеПриложения во время выполнения.

Хотите, чтобы я предложил реализацию проверки наличия обязательного метода?

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 22-22: src/internal/Классы/АннотацияРогатка.os#L22
Программные модули не должны иметь закомментированных фрагментов кода

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 9418452 and a2db9d2.

📒 Files selected for processing (3)
  • src/internal/Классы/АннотацияПриемка.os (1 hunks)
  • src/internal/Классы/АннотацияРогатка.os (1 hunks)
  • src/internal/Классы/АннотацияФинальныйШтрих.os (1 hunks)
🧰 Additional context used
📓 Learnings (1)
src/internal/Классы/АннотацияФинальныйШтрих.os (1)
Learnt from: nixel2007
PR: autumn-library/autumn#109
File: src/internal/Классы/АннотацияФинальныйШтрих.os:10-13
Timestamp: 2024-11-14T18:36:04.275Z
Learning: При объявлении аннотации, процедура `ПриСозданииОбъекта` не должна быть помечена как `Экспорт`. Это требуется только при использовании аннотации, а не при её объявлении.
🪛 GitHub Check: autumn Sonarqube Results
src/internal/Классы/АннотацияПриемка.os

[warning] 1-1: src/internal/Классы/АннотацияПриемка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияРогатка.os

[warning] 22-22: src/internal/Классы/АннотацияРогатка.os#L22
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияФинальныйШтрих.os

[warning] 1-1: src/internal/Классы/АннотацияФинальныйШтрих.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

🔇 Additional comments (4)
src/internal/Классы/АннотацияФинальныйШтрих.os (2)

1-16: Документация корректна и полезна!

Предупреждение статического анализатора о закомментированном коде можно игнорировать, так как эти комментарии являются документацией с примерами использования, а не мертвым кодом.

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияФинальныйШтрих.os#L1
Программные модули не должны иметь закомментированных фрагментов кода


21-24: Корректное объявление аннотации!

Процедура ПриСозданииОбъекта правильно объявлена без ключевого слова Экспорт, так как это объявление аннотации, а не её использование.

src/internal/Классы/АннотацияПриемка.os (1)

Line range hint 24-28: Корректная реализация аннотации

Реализация содержит все необходимые аннотации и корректно определяет процедуру с опциональным параметром.

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияПриемка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияРогатка.os (1)

Line range hint 43-49: Проверить значения по умолчанию для параметров

Текущая реализация устанавливает ЗапускатьВФоне = Истина и ОжидатьЗавершения = Истина по умолчанию. Это может привести к неожиданному поведению, если разработчик явно не указал эти параметры.

✅ Verification successful

Let's examine the actual usage patterns of these parameters by looking at the test implementations.


Let's check the test files with the correct path to understand the usage patterns better.


Значения по умолчанию для параметров рогатки корректны

На основе анализа кодовой базы можно сделать следующие выводы:

  1. В тестах явно указывается ЗапускатьВФоне = Ложь для синхронных рогаток, что подтверждает правильность значения по умолчанию Истина
  2. Параметр ОжидатьЗавершения = Истина по умолчанию также оправдан, так как:
    • Обеспечивает корректную обработку ошибок (видно в ПадениеРогаткиДолжноБытьЗалогировано.os)
    • Позволяет контролировать порядок выполнения рогаток
  3. В ЗапускательПриложения.os реализована полная поддержка всех комбинаций параметров
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Поиск использования класса АннотацияРогатка для анализа типичных параметров

# Поиск использования аннотации
rg -l "Рогатка" | grep -v "АннотацияРогатка.os"

Length of output: 737


Script:

#!/bin/bash
# Search for actual usage patterns in test files
rg -A 5 "Рогатка" "tests/ТестКлассы/Классы/*.os"

Length of output: 169


Script:

#!/bin/bash
# Check implementation details in ПриемкаРогатка
cat "src/internal/Классы/ПриемкаРогатка.os"

Length of output: 722


Script:

#!/bin/bash
# Look for usage in ЗапускательПриложения
cat "src/internal/Классы/ЗапускательПриложения.os"

Length of output: 2606


Script:

#!/bin/bash
# Search for actual usage patterns in test files with correct path
rg -A 5 "Рогатка" "tests/ТестКлассы/Классы"

# Also check the test that verifies error handling
cat "tests/ИзолированныеТесты/ПадениеРогаткиДолжноБытьЗалогировано.os"

Length of output: 3009

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 22-22: src/internal/Классы/АннотацияРогатка.os#L22
Программные модули не должны иметь закомментированных фрагментов кода

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
src/internal/Классы/АннотацияОсобоеОбращение.os (1)

Line range hint 31-67: Улучшить сообщения об ошибках

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

Предлагаю следующие улучшения:

-		ВызватьИсключение "Нельзя одновременно отключать все напильники и задавать ограничения ""только""";
+		ВызватьИсключение СтрШаблон("Нельзя одновременно отключать все напильники и задавать ограничения ""только"". Заданы напильники: %1", СтрСоединить(ПрименятьТолькоНапильник, ", "));

-		ВызватьИсключение "Нельзя одновременно отключать все напильники и задавать ограничения ""не""";
+		ВызватьИсключение СтрШаблон("Нельзя одновременно отключать все напильники и задавать ограничения ""не"". Заданы напильники: %1", СтрСоединить(НеПрименятьНапильник, ", "));

-		ВызватьИсключение "Нельзя одновременно задавать ограничения ""только"" и ""не""";
+		ВызватьИсключение СтрШаблон("Нельзя одновременно задавать ограничения ""только"" (%1) и ""не"" (%2)", 
+			СтрСоединить(ПрименятьТолькоНапильник, ", "),
+			СтрСоединить(НеПрименятьНапильник, ", "));

Это позволит разработчикам быстрее понять причину ошибки, показывая конкретные значения конфликтующих параметров.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a2db9d2 and b9b4ca4.

📒 Files selected for processing (3)
  • src/internal/Классы/АннотацияВерховный.os (1 hunks)
  • src/internal/Классы/АннотацияОсобоеОбращение.os (1 hunks)
  • src/internal/Классы/АннотацияПрозвище.os (1 hunks)
🧰 Additional context used
🪛 GitHub Check: autumn Sonarqube Results
src/internal/Классы/АннотацияВерховный.os

[warning] 1-1: src/internal/Классы/АннотацияВерховный.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияПрозвище.os

[warning] 1-1: src/internal/Классы/АннотацияПрозвище.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

🔇 Additional comments (6)
src/internal/Классы/АннотацияПрозвище.os (2)

1-15: Отличная документация!

Документация хорошо структурирована и содержит все необходимые элементы:

  • Подробное описание назначения
  • Четкое описание параметров
  • Практический пример использования
🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияПрозвище.os#L1
Программные модули не должны иметь закомментированных фрагментов кода


16-19: Проверить реализацию пустой процедуры

Пустая реализация ПриСозданииОбъекта выглядит корректно для маркерной аннотации, но давайте проверим соответствие шаблону в других аннотациях.

✅ Verification successful

Пустая реализация процедуры соответствует шаблону

На основе анализа исходного кода других аннотаций в проекте, пустая реализация процедуры ПриСозданииОбъекта в аннотации Прозвище является корректной и соответствует общему шаблону. Многие другие маркерные аннотации (например, Блестяшка, Верховный, ФинальныйШтрих) также имеют пустую реализацию процедуры ПриСозданииОбъекта.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Проверка реализации ПриСозданииОбъекта в других аннотациях

# Поиск всех реализаций ПриСозданииОбъекта в аннотациях
ast-grep --pattern $'&Аннотация($_)
Процедура ПриСозданииОбъекта($_) {
  $$$
}'

Length of output: 80


Script:

#!/bin/bash
# Поиск файлов аннотаций и просмотр их содержимого
fd -e os "Аннотация.*\.os$" -x cat {}

Length of output: 17990

src/internal/Классы/АннотацияВерховный.os (2)

1-22: Отличная документация с подробными примерами!

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

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияВерховный.os#L1
Программные модули не должны иметь закомментированных фрагментов кода


23-25: Реализация соответствует шаблону аннотаций

Реализация процедуры ПриСозданииОбъекта следует общему шаблону аннотаций в проекте.

src/internal/Классы/АннотацияОсобоеОбращение.os (2)

21-30: Отличная документация!

Подробное описание назначения аннотации и параметров. Особенно ценно явное описание конфликтующих параметров, что поможет разработчикам избежать ошибок при использовании.


Line range hint 31-67: Проверить покрытие тестами

Убедитесь, что все новые проверки параметров покрыты модульными тестами, особенно:

  • Проверка типов параметров
  • Все комбинации конфликтующих параметров
  • Граничные случаи (пустые коллекции, неопределено)

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
src/internal/Классы/АннотацияДуб.os (1)

21-24: Рекомендуется добавить валидацию параметра

Предлагаю добавить проверку значения параметра Значение на допустимые символы, так как это имя будет использоваться в качестве идентификатора.

Пример реализации:

 &Аннотация("Дуб")
 Процедура ПриСозданииОбъекта(Значение = "")
+    Если ЗначениеЗаполнено(Значение) Тогда
+        ВызватьИсключение "Значение должно содержать только буквы, цифры и символ подчеркивания";
+    КонецЕсли;
 КонецПроцедуры
src/internal/Классы/АннотацияЗавязь.os (1)

1-17: Добавьте документацию по возвращаемому значению в примере

Документация хорошо структурирована и содержит подробное описание назначения, параметров и примера использования аннотации. Однако в примере кода было бы полезно добавить комментарий о типе возвращаемого значения функции ПользовательскийЖелудь.

Предлагаю дополнить пример:

 // &Завязь
 // Функция ПользовательскийЖелудь(&Пластилин Зависимость, &Деталька ВажнаяНастройка) Экспорт
+// Возвращаемое значение:
+//   ПользовательскийЖелудь - Созданный экземпляр желудя
 // .   Возврат Новый ПользовательскийЖелудь(Зависимость, ВажнаяНастройка);
 // КонецФункции
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between b9b4ca4 and 8bdf122.

📒 Files selected for processing (8)
  • src/internal/Классы/АннотацияДуб.os (1 hunks)
  • src/internal/Классы/АннотацияЖелудь.os (1 hunks)
  • src/internal/Классы/АннотацияЗавязь.os (1 hunks)
  • src/internal/Классы/АннотацияОсобоеОбращение.os (2 hunks)
  • src/internal/Классы/АннотацияПриемка.os (1 hunks)
  • src/internal/Классы/АннотацияПрозвище.os (1 hunks)
  • src/internal/Классы/АннотацияРогатка.os (1 hunks)
  • src/internal/Классы/АннотацияСпецификация.os (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/internal/Классы/АннотацияЖелудь.os
  • src/internal/Классы/АннотацияОсобоеОбращение.os
  • src/internal/Классы/АннотацияПриемка.os
  • src/internal/Классы/АннотацияПрозвище.os
  • src/internal/Классы/АннотацияРогатка.os
  • src/internal/Классы/АннотацияСпецификация.os
🔇 Additional comments (2)
src/internal/Классы/АннотацияДуб.os (1)

1-20: Отличная документация!

Документация хорошо структурирована, содержит подробное описание назначения аннотации, параметров и пример использования. Особенно полезно объяснение взаимосвязи с другими аннотациями (&Завязь, &Напильник, &Спецификация).

src/internal/Классы/АннотацияЗавязь.os (1)

Line range hint 18-22: Проверьте использование аннотации в кодовой базе

Реализация процедуры ПриСозданииОбъекта корректна. Давайте проверим правильность использования аннотации в существующем коде.

✅ Verification successful

Let me analyze the results and generate a final response in Russian.

Использование аннотации &Завязь соответствует требованиям

Анализ показывает, что аннотация &Завязь используется корректно:

  • В тестовых файлах она применяется для проверки различных сценариев использования
  • В основном коде она используется над экспортными функциями и процедурами
  • Документация в README.md подтверждает правильность использования
  • Аннотация может использоваться как с параметрами (Тип, Значение), так и без них
  • Она корректно взаимодействует с другими аннотациями (&Пластилин, &Блестяшка, &Характер)
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Проверка использования аннотации &Завязь
# Expected: Аннотация должна использоваться только над экспортными функциями в классах с аннотацией &Дуб

# Поиск использования аннотации
rg -A 5 '&Завязь'

# Проверка контекста использования (должно быть внутри классов с &Дуб)
ast-grep --pattern $'&Дуб
$$$
&Завязь
Функция $_($$$) Экспорт
$$$'

Length of output: 13621

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (1)
src/internal/Классы/АннотацияНапильник.os (1)

36-55: Предложения по улучшению документации

Документация подробная и информативная, но можно внести небольшие улучшения:

  1. Добавить пример использования аннотации
  2. Указать типы возвращаемого значения для метода ОбработатьЖелудь

Предлагаемое дополнение к документации:

 // Желудь, помеченный аннотацией `&Напильник`, должен реализовать следующий интерфейс:
-// * `Функция ОбработатьЖелудь(Желудь, ОпределениеЖелудя) Экспорт`
+// * `Функция ОбработатьЖелудь(Желудь, ОпределениеЖелудя) Экспорт` - возвращает Произвольный
+//
+// Пример:
+// ```
+// &Напильник("МойНапильник", "ЦелевойЖелудь")
+// Процедура ПриСозданииОбъекта()
+//    // ...
+// КонецПроцедуры
+// ```
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 8bdf122 and 7a44094.

📒 Files selected for processing (3)
  • src/internal/Классы/АннотацияНапильник.os (2 hunks)
  • src/internal/Классы/АннотацияПриемка.os (1 hunks)
  • src/internal/Классы/АннотацияРогатка.os (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/internal/Классы/АннотацияПриемка.os
  • src/internal/Классы/АннотацияРогатка.os
🧰 Additional context used
📓 Learnings (1)
src/internal/Классы/АннотацияНапильник.os (1)
Learnt from: nixel2007
PR: autumn-library/autumn#89
File: src/internal/Классы/АннотацияНапильник.os:6-27
Timestamp: 2024-11-12T14:20:38.625Z
Learning: Прозвища в функции `МожетПрименятьсяНа` теперь всегда включают имя жёлудя, что исключает необходимость явного добавления имени жёлудя в список идентификаторов для проверки.
🔇 Additional comments (1)
src/internal/Классы/АннотацияНапильник.os (1)

6-14: Корректная реализация функции МожетПрименятьсяНа

Реализация функции логически верна и соответствует требованиям. Документация функции хорошо структурирована.

Also applies to: 15-35

This comment has been minimized.

This comment has been minimized.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
src/internal/Классы/АннотацияЗаготовка.os (1)

16-19: Рекомендуется расширить пример использования

Текущий пример демонстрирует только базовый синтаксис. Предлагаю дополнить его реальным примером реализации метода ПриИнициализацииПоделки, чтобы показать типичный сценарий использования аннотации.

Пример улучшенной документации:

 // Пример:
 // &Заготовка
 // Процедура ПриСозданииОбъекта()
 // КонецПроцедуры
+// 
+// Процедура ПриИнициализацииПоделки(Поделка) Экспорт
+//   // Добавление нового класса в систему типов
+//   ДобавитьКласс("МойКласс", "path/to/class.os");
+//   // Или импорт библиотеки
+//   ДобавитьБиблиотеку("МояБиблиотека");
+// КонецПроцедуры
src/internal/Классы/АннотацияНапильник.os (1)

Line range hint 6-34: Добавить проверку входного параметра

Функция реализована корректно, но рекомендуется добавить проверку входного параметра на null и тип.

Предлагаю добавить следующую проверку в начало функции:

 Функция МожетПрименятьсяНа(ОпределениеЖелудя) Экспорт
+    Ожидаем.Что(ОпределениеЖелудя, "Определение желудя не может быть неопределено").Заполнено();
+    Ожидаем.Что(ОпределениеЖелудя, "Некорректный тип параметра").ИмеетТип("ОпределениеЖелудя");
 	
 	НапильникМожетПрименяться = Ложь;
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 7a44094 and 52f52ed.

📒 Files selected for processing (2)
  • src/internal/Классы/АннотацияЗаготовка.os (1 hunks)
  • src/internal/Классы/АннотацияНапильник.os (2 hunks)
🧰 Additional context used
📓 Learnings (1)
src/internal/Классы/АннотацияНапильник.os (1)
Learnt from: nixel2007
PR: autumn-library/autumn#89
File: src/internal/Классы/АннотацияНапильник.os:6-27
Timestamp: 2024-11-12T14:20:38.625Z
Learning: Прозвища в функции `МожетПрименятьсяНа` теперь всегда включают имя жёлудя, что исключает необходимость явного добавления имени жёлудя в список идентификаторов для проверки.
🪛 GitHub Check: autumn Sonarqube Results
src/internal/Классы/АннотацияЗаготовка.os

[warning] 1-1: src/internal/Классы/АннотацияЗаготовка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияНапильник.os

[warning] 36-36: src/internal/Классы/АннотацияНапильник.os#L36
Программные модули не должны иметь закомментированных фрагментов кода

🔇 Additional comments (2)
src/internal/Классы/АннотацияЗаготовка.os (1)

Line range hint 20-24: Корректная реализация аннотации

Реализация содержит все необходимые аннотации и правильную сигнатуру конструктора. Пустая реализация допустима для определения аннотации.

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 1-1: src/internal/Классы/АннотацияЗаготовка.os#L1
Программные модули не должны иметь закомментированных фрагментов кода

src/internal/Классы/АннотацияНапильник.os (1)

36-60: Отличная документация!

Документация подробно описывает назначение аннотации, требования к интерфейсу и содержит примеры использования. Всё оформлено согласно стандартам.

🧰 Tools
🪛 GitHub Check: autumn Sonarqube Results

[warning] 36-36: src/internal/Классы/АннотацияНапильник.os#L36
Программные модули не должны иметь закомментированных фрагментов кода

@@ -1,3 +1,18 @@
// Маркерная аннотация для указания, что прилепляемая частица
// является произвольным значением, передавамым кодом.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Передаваемым в конструктор жёлудя вероятно (да у завязи это формально метод а не конструктор, но метод завязи суть конструктор жёлудя)

// В случае конфликта имен при получении желудей или их регистрации, будет использован желудь с аннотацией `&Верховный`.
//
// При наличии нескольких желудей с одним и тем же прозвищем позволяет определить, какой из них следует возвращать
// при поиске единственного желудя по его прозвищу.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

При поиске одного/конкретного верялрно, а то слово "единственный" после слова "несколько" как то слух режет

// `&Дуб` сам по себе тоже является желудем, то есть может запрашивать прилепление частиц,
// является объектом для обработки `&Напильник`ом, может иметь `&Спецификация` и так далее.
//
// Дуб содержит методы, помеченные аннотацией `&Завязь`, которые возвращают желуди.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это требование или рекомендация или опыт?)
Наверное если требование то стоит написать "должен" или типа того, если рекомендация то поидее "следует размещать", если это просто описание логики, то наверное что-то типа, "обычно содержит завязи, но так же может содержать что вам в голову прийдет" или типа того

// Может иметь параметры, каждый из которых должен быть промаркирован как &Пластилин, &Деталька или &Блестяшка.
// В указанные параметры автоматически будут прилеплены соответствующие частицы при создании желудя.
//
// Размещается над экспортной функцией в классе, проаннотированном как `&Дуб`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ДобавитьЗавязь() еще

@@ -18,6 +26,19 @@

КонецФункции

// Маркерная аннотация, показывающая, что желудь требует изменений в процессе своего создания.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Требует особой логики обработки напильников наверное, или как-то так, а то изменений в процессе создания наводит на мысль что жёлудь требует перемен изменений самого жёлудя

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

я хотел оставить общее описание аннотации максимально generic, чтобы оставить возможность напихать туда параметров для других компонентов. Смысл аннотации в том, что желудь требует особого обращения к себе, а вот в чем именно заключается это особое обращение уже перечислено в параметрах аннотации. WDYT?

@@ -1,3 +1,41 @@
// Маркерная аннотация для указания, что прилепляемая частица
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне кажется описание не внесло никакой ясности, стоит я думаю сразу ноэа входе описать что это маркер который загрузит в поле/параметр жёлудь зарегистрированный в системе типов осени, или что-то типа того вероятно

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я тут использовал термин "прилепление частиц", который есть в документации, но которого нет в API в явном виде (исключая модуль с типами прилепляемых частиц и класса ПрилепляторЧастиц). Если уж расписывать, то расписывать и здесь, и в детальке, и в блестяшке. Либо описывать термин где-то отдельно, "ссылаясь" на него.

// Значение - Строка - Имя прилепляемого желудя. Если не заполнено, используется имя параметра конструктора/поля
// класса или часть имени метода для установки значения.
// Тип - Строка - Тип прилепляемого желудя. В случае передачи значения "Желудь", будет внедрен желудь как таковой.
// Так же может быть указан тип "Массив", "ТаблицаЗначений" и другие. Полный список доступных типов
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Так же может быть указан тип-коллекция

Функция Значение() Экспорт
Возврат _Значение;
КонецФункции

// `@unstable`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Чиво?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну а вот так. Я не уверен ещё. А ты?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я даже не уверен, что она работает, если честно.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Как и &Приемка - смысл работает, а вот над названием не уверен.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я скорее к тому что это какая-то новая сущность которой ни в каком конвеншене нет, и мне кажется просто так вешать какой-то тег без объяснений и надеяться что тебя поймут затея сомнительная.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я такое вешал в entity, и указывал в доке, что это такое х)

@@ -1,3 +1,32 @@
// Пометка, что прилепляемая частица прилепляется не непосредственно, а через специальный объект
// типа `Табакерка`, который позволяет получить частицу программно.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы ещё указал что отложенно, т.е передает управление временем создания жёлудя внутрь жёлудя

Copy link

Failed

  • 50.00% Coverage on New Code (is less than 80.00%)

Analysis Details

0 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 0 Code Smells

Coverage and Duplications

  • Coverage 50.00% Coverage (90.00% Estimated after merge)
  • Duplications 0.00% Duplicated Code (0.00% Estimated after merge)

Project ID: autumn

View in SonarQube

@nixel2007
Copy link
Member Author

Я замержу, пока есть возможность мержа. Но пластилин ещё можно дообсудить

@nixel2007 nixel2007 merged commit 20755c1 into master Nov 19, 2024
31 of 34 checks passed
@nixel2007 nixel2007 deleted the feature/api-docs branch November 30, 2024 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants