diff --git a/ydb/docs/en/core/contributor/documentation/review.md b/ydb/docs/en/core/contributor/documentation/review.md index e3868ea03492..e47258f183bd 100644 --- a/ydb/docs/en/core/contributor/documentation/review.md +++ b/ydb/docs/en/core/contributor/documentation/review.md @@ -1,6 +1,6 @@ # Review process for {{ ydb-short-name }} documentation -Building on the high-level overview in [{#T}](index.md), this article dives deeper into what happens during the pull request review stage. +Building on the high-level overview in [{#T}](index.md), this article dives deeper into what happens during the documentation pull request review stage. ## Roles @@ -48,7 +48,7 @@ Building on the high-level overview in [{#T}](index.md), this article dives deep - [ ] Each article follows a single [genre](genres.md) and aligns with its place in the documentation structure. - [ ] Each new article includes links to all relevant existing documentation pages, either inline or in a "See also" section. - [ ] Relevant existing articles are updated with links to new articles. -- [ ] All new articles are listed in table of contents and their folder's `index.md`. +- [ ] All new articles are listed in YAML files with table of contents and their folder's `index.md`. - [ ] All renamed or moved articles are reflected in [redirects.yaml](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/redirects.yaml). - [ ] The article's voice, tone, and style match the rest of the documentation or, at a minimum, remain consistent within the article. diff --git a/ydb/docs/en/core/contributor/documentation/structure.md b/ydb/docs/en/core/contributor/documentation/structure.md index a8fe6c6af09f..708278e4e5dd 100644 --- a/ydb/docs/en/core/contributor/documentation/structure.md +++ b/ydb/docs/en/core/contributor/documentation/structure.md @@ -22,7 +22,7 @@ Introducing new top-level folders is possible, but it requires careful considera - **[For Developers](../../dev/index.md).** A folder for application developers working with {{ ydb-short-name }}. Primarily consists of [practical guides](genres.md#guide) and some [theory](genres.md#theory). - **[For Security Engineers](../../security/index.md).** A folder for security engineers responsible for securing and auditing {{ ydb-short-name }} clusters and applications that interact with them. Contains mostly [practical guides](genres.md#guide) and some role-specific [theory](genres.md#theory). - **[For Contributors](../../contributor/index.md)**.** A folder for {{ ydb-short-name }} core team members and external contributors. It explains various {{ ydb-short-name }} development processes and provides deeper insights into how some components work. Mostly [theory](genres.md#theory) with some [practical guides](genres.md#guide). -- **[Reference](../../reference/index.md).** A detailed [reference](genres.md#reference) section covering various aspects of {{ ydb-short-name }}, designed to be found as needed. The primary goal is completeness so that any topic can be located through exact keyword matches or descriptions. The three main use cases for this section are: +- **[Reference](../../reference/index.md).** A detailed [reference](genres.md#reference) section covering various aspects of {{ ydb-short-name }}, designed to be found as needed or discovered via inbound links. The primary goal is completeness so that any topic can be located through exact keyword matches or descriptions. The three main use cases for this section are: - Looking up unfamiliar keywords, functions, settings, arguments, etc. - Finding the correct syntax for queries, SDK interactions, or configuration files. - Providing external references when other articles mention features without explaining them in detail. diff --git a/ydb/docs/en/core/contributor/documentation/style-guide.md b/ydb/docs/en/core/contributor/documentation/style-guide.md index 1bab13b47934..cefd3343ae27 100644 --- a/ydb/docs/en/core/contributor/documentation/style-guide.md +++ b/ydb/docs/en/core/contributor/documentation/style-guide.md @@ -56,9 +56,9 @@ Ensure that text follows proper language rules with no typos, grammar, punctuati - **Code and samples.** When including code, use proper syntax highlighting, formatting, and comments to ensure readability. Show example output for queries and CLI commands. Use `code blocks` for everything likely to appear in a console or IDE, but not for visual highlights. - **Linking and references.** Provide clear and descriptive links to related resources or additional documentation. Instead of repeating the target's header for internal links, use `[{#T}](path/to/an/article.md)`. - **No copy-pasting.** If a piece of information needs to be displayed more than once, create a separate Markdown file in the `_includes` folder, then add it to all necessary places via `{% include [...](_includes/path/to/a/file.md) %}` instead of duplicating content by copying and pasting. -- **Markdown syntax style.** {{ ydb-short-name }} uses an automated linter for Markdown files. Refer to [.yfmlint](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/.yfmlint) for the up-to-date list of enforced rules. +- **Markdown syntax style.** {{ ydb-short-name }} documentation uses an automated linter for Markdown files. Refer to [.yfmlint](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/.yfmlint) for the up-to-date list of enforced rules. - **Variable usage.** The {{ ydb-short-name }} documentation has a configuration file, [presets.yaml](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/presets.yaml), that lists variables to prevent typos or conditionally hide content. Use these variables when appropriate, particularly `{{ ydb-short-name }}` instead of `YDB`. -- **Diagrams.** Prefer built-in [Mermaid](https://github.com/diplodoc-platform/mermaid-extension) diagrams when possible. If using an external tool, submit the source file in the same folder for future edits. Ensure diagrams look good in both light and dark modes. +- **Diagrams.** Prefer built-in [Mermaid](https://github.com/diplodoc-platform/mermaid-extension) diagrams when possible. If using an external tool, submit the source file in the same `_assets` folder near image for future edits. Ensure diagrams look good in both light and dark modes. - **Proper article placement.** New articles should be correctly placed in the [documentation structure](structure.md). - **Genre consistency.** Articles should not mix multiple [genres](genres.md), and the genre should match the article's place in the documentation structure. diff --git a/ydb/docs/ru/core/contributor/documentation/_assets/automerge-and-dismiss.png b/ydb/docs/ru/core/contributor/documentation/_assets/automerge-and-dismiss.png new file mode 100644 index 000000000000..b9cbb71635aa Binary files /dev/null and b/ydb/docs/ru/core/contributor/documentation/_assets/automerge-and-dismiss.png differ diff --git a/ydb/docs/ru/core/contributor/documentation/_assets/excluding-primary-reviewer.jpeg b/ydb/docs/ru/core/contributor/documentation/_assets/excluding-primary-reviewer.jpeg new file mode 100644 index 000000000000..49f5713aa4dd Binary files /dev/null and b/ydb/docs/ru/core/contributor/documentation/_assets/excluding-primary-reviewer.jpeg differ diff --git a/ydb/docs/ru/core/contributor/documentation/genres.md b/ydb/docs/ru/core/contributor/documentation/genres.md new file mode 100644 index 000000000000..a9fad3232178 --- /dev/null +++ b/ydb/docs/ru/core/contributor/documentation/genres.md @@ -0,0 +1,102 @@ +## Жанры документации {{ ydb-short-name }} + +Эта статья дополняет [{#T}](style-guide.md), описывая основные жанры статей, используемые в документации {{ ydb-short-name }}. Понимание этих жанров помогает контрибьюторам размещать новый контент в соответствующем разделе и поддерживать консистентную структуру материалов. + +### Теория {#theory} + +**Основная цель для читателя:** построить прочный фундамент знаний и прийти к пониманию основных концепций, архитектуры и принципов, на которых работает {{ ydb-short-name }}. + +Теоретическая документация: + +- вводит ключевые концепции и терминологию; +- объясняет, как система работает как с точки зрения пользователя, так и изнутри; +- предоставляет высокоуровневые обзоры компонентов системы; +- помогает пользователям понять «почему» за архитектурными решениями; +- может быть нацелен либо на широкую аудиторию с минимальными предварительными знаниями, либо на конкретную роль; +- может включать диаграммы и другие визуализации для помощи в передаче информации. + +Теоретическая документация в основном находится в разделе [{#T}](../../concepts/index.md), но также появляется и в папках, специфичных для ролей, когда теоретическая информация релевантна только для конкретной аудитории. + +### Руководство {#guide} + +**Основная цель для читателя:** выполнить конкретную практическую задачу или реализовать определённое решение с помощью {{ ydb-short-name }}, следуя инструкциям. + +Руководства — это практические пошаговые инструкции, которые помогают пользователям достичь конкретной цели с помощью {{ ydb-short-name }}. Каждая статья в этом жанре: + +- предоставляет чёткую цель и последовательные инструкции для её достижения; +- включает конкретные примеры и команды; +- фокусируется на практической реализации; +- освещает конкретные сценарии использования; +- может включать скриншоты для иллюстрации шагов. + +Руководства в основном находятся в папках, специфичных для ролей, таких как [{#T}](../../devops/index.md), [{#T}](../../dev/index.md) и [{#T}](../../security/index.md), а также в разделе [{#T}](../../troubleshooting/index.md). + +### Справочник {#reference} + +**Основная цель для читателя:** найти дополнительную информацию по конкретной узкой теме, связанной с {{ ydb-short-name }}. + +Справочная документация предоставляет всестороннюю, подробную информацию о компонентах {{ ydb-short-name }}, запросах, API, параметрах конфигурации, CLI-командах, страницах UI и многом другом. Этот жанр: + +- стремится к полноте и точности; +- служит ресурсом для поиска конкретных деталей; +- документирует все доступные опции, параметры и настройки; +- организован для быстрого поиска информации через поисковую систему или [LLM](https://ru.wikipedia.org/wiki/Большая_языковая_модель); +- включает синтаксис, типы данных, параметры, возвращаемые значения, значения по умолчанию, конфигурацию и примеры. + +Справочная документация разработана для поиска по мере необходимости и является самым подробным уровнем документации. Она особенно полезна, когда пользователям нужна конкретная информация о функциях, настройках или ключевых словах. Этот контент в основном находится в разделе [{#T}](../../reference/index.md). + +### FAQ {#faq} + +**Основная цель для читателя:** быстро найти ответы на распространённые вопросы, возникающие при работе с {{ ydb-short-name }}. + +Документация часто задаваемых вопросов (FAQ) отвечает на общие вопросы о {{ ydb-short-name }} в формате прямых вопросов и ответов на них. Этот жанр: + +- обращается к конкретным, часто задаваемым вопросам; +- предоставляет краткие, сфокусированные ответы; +- организован по темам или категориям; +- помогает пользователям быстро находить решения типовых проблем; +- оптимизирован для обнаружения поисковыми системами или LLM. + +Контент FAQ в основном находится в разделе [{#T}](../../faq/index.md) и разработан для помощи пользователям, которые ищут конкретные решения для типовых ситуаций. + +### Рецепт {#recipe} + +**Основная цель для читателя:** реализовать конкретное, сфокусированное решение для типовой проблемы или сценария использования с помощью {{ ydb-short-name }}. + +Рецепты — это короткие, сфокусированные мини-руководства, которые демонстрируют, как выполнять конкретные задачи с помощью {{ ydb-short-name }}. Этот жанр: + +- предоставляет краткие решения для конкретных проблем; +- включает фрагменты кода и примеры; +- акцентирует внимание на практической реализации; +- более узко сфокусирован, чем полноценные [руководства](#guide); +- часто следует формату проблема-решение. + +Рецепты в основном находятся в разделе [{#T}](../../recipes/index.md), хотя похожий контент может также появляться в папках, специфичных для роли. + +### Заметки о выпуске {#release-notes} + +**Основная цель для читателя:** быть в курсе новых функций, улучшений, исправлений ошибок и критических изменений в выпусках {{ ydb-short-name }}. + +Заметки о выпуске документируют изменения, улучшения и исправления в каждой новой версии {{ ydb-short-name }}. Этот жанр: + +- перечисляет новые функции и улучшения; +- документирует исправления ошибок и решённые проблемы; +- выделяет критические изменения и устаревшие функции; +- предоставляет инструкции по обновлению при необходимости; +- организован хронологически по номеру версии. + +Заметки о выпуске находятся в разделе [{#T}](../../changelog-server.md) и помогают пользователям понять, что изменилось между версиями, и решить, обновляться ли. + +### Коллекция ссылок {#links} + +**Основная цель для читателя:** открыть для себя дополнительные ресурсы, учебные материалы и внешний контент, связанный с {{ ydb-short-name }}. + +Коллекции ссылок предоставляют курированные списки ресурсов, связанных с {{ ydb-short-name }}. Этот жанр: + +- агрегирует релевантные сторонние или внутренние ресурсы; +- предоставляет краткие описания каждого связанного ресурса; +- может быть организован по темам, форматам или степени релевантности; +- помогает пользователям открывать для себя дополнительные учебные материалы; +- может включать видео, статьи, загрузки и другой контент. + +Коллекции ссылок в основном находятся в разделах [{#T}](../../public-materials/videos.md) и [{#T}](../../downloads/index.md) и выступают входными точками к внешним ресурсам о {{ ydb-short-name }}. \ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/documentation/index.md b/ydb/docs/ru/core/contributor/documentation/index.md new file mode 100644 index 000000000000..f395769e3fe5 --- /dev/null +++ b/ydb/docs/ru/core/contributor/documentation/index.md @@ -0,0 +1,20 @@ +# Участие в разработке документации {{ ydb-short-name }} + +{{ ydb-short-name }} следует подходу «Документация как код», что означает, что документация {{ ydb-short-name }} разрабатывается с использованием аналогичных методов и инструментов, как и основной исходный код проекта на C++. + +Исходный код документации состоит из файлов Markdown и конфигурационных файлов YAML, расположенных в [папке ydb/docs основного репозитория {{ ydb-short-name }} на GitHub](https://github.com/ydb-platform/ydb/tree/main/ydb/docs). Компилятором этого исходного кода является инструмент с открытым исходным кодом под названием [Diplodoc](https://diplodoc.com/ru). Подробности о его диалекте Markdown, параметрах конфигурации, расширениях и многом другом можно найти в [его документации](https://diplodoc.com/docs/ru/). + +Процесс предложения изменений в исходном коде документации в основном аналогичен изменению любого другого исходного кода {{ ydb-short-name }}, поэтому большая часть [{#T}](../suggest-change.md) применима. Основные дополнительные особенности: + +- Для pull-запросов к документации выполняются [дополнительные прекоммитные проверки](https://github.com/ydb-platform/ydb/actions/workflows/docs_build.yaml). Одна из этих проверок оставляет комментарий со ссылкой на онлайн-предпросмотр изменений или список ошибок. +- Процесс ревью кода включает дополнительные шаги. См. [{#T}](review.md) и [{#T}](style-guide.md). +- Для небольших изменений, таких как исправление опечатки, можно использовать функцию «Edit this file» в веб-интерфейсе GitHub. Каждая страница документации имеет ссылку «Edit on GitHub» (представлена значком карандаша в правом верхнем углу), которая ведёт к исходному коду страницы в веб-интерфейсе GitHub. + +После мёрджа pull-запроса с документацией в ветку `main` [CI/CD-пайплайн](https://github.com/ydb-platform/ydb/actions/workflows/docs_release.yaml) автоматически публикует её на сайте {{ ydb-short-name }}. Документация также автоматически публикуется для стабильных версий сервера {{ ydb-short-name }} из веток `git` с именами `stable-*`, где разрабатываются эти версии. Если код C++ и документация для функции были закоммичены отдельно, и между этими коммитами была создана новая стабильная ветка, может потребоваться бекпортирование некоторых изменений в стабильную ветку. То же самое относится к исправлению опечаток и другим «багфиксам» в содержании документации. Подробнее о процессе релиза {{ ydb-short-name }} см. [{#T}](../manage-releases.md). + +## См. также + +- [{#T}](structure.md) +- [{#T}](genres.md) +- [Документация GitHub](https://docs.github.com/en) +- [Документация Git](https://git-scm.com/doc) \ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/documentation/review.md b/ydb/docs/ru/core/contributor/documentation/review.md new file mode 100644 index 000000000000..27108286d56c --- /dev/null +++ b/ydb/docs/ru/core/contributor/documentation/review.md @@ -0,0 +1,83 @@ +# Процесс ревью документации {{ ydb-short-name }} + +Развивая общий обзор из [{#T}](index.md), эта статья подробнее рассматривает, что происходит на этапе ревью pull-запроса c документацией. + +## Роли + +- **Автор** — человек, предлагающий изменения в документации. +- **Основной ревьюер** — человек, тщательно проверяющий предложенные изменения согласно [контрольному списку](#checklist). +- **Финальный ревьюер** — человек, повторно проверяющий изменения с использованием того же контрольного списка и утверждающий pull-запрос на GitHub. + +## Процесс + +1. **Автор** открывает pull-запрос на GitHub с предложенными изменениями в [папке ydb/docs](https://github.com/ydb-platform/ydb/tree/main/ydb/docs). Следование [руководству по стилю](style-guide.md) с самого начала делает процесс ревью более гладким. +2. **Автор** обеспечивает, чтобы pull-запрос был в состоянии, готовом к ревью, соответствуя всем следующим критериям: + + 1. Pull-запрос имеет `* Documentation` как единственную категорию в changelog. Если всё сделано правильно, автоматизация пометит pull-запрос меткой «documentation». + 2. Pull-запрос *не* помечен как черновик. + 3. Предложенные изменения успешно собираются, и автоматизация оставила комментарий со ссылкой на предпросмотр (вместо ошибок). Предпросмотр показывает изменённый контент как ожидается. + +3. *(опционально)* **Автор** делится ссылкой на pull-запрос в [чате сообщества](https://t.me/ydb_ru) или чате, связанном с документацией, для привлечения дополнительного внимания к нему. +4. **Основной ревьюер** назначается автоматически или выбирает pull-запрос из [входящего списка](https://github.com/ydb-platform/ydb/pulls?q=is%3Aopen+is%3Apr+label%3Adocumentation+draft%3Afalse+no%3Aassignee) с помощью кнопки «assign yourself» в правом сайдбаре, а затем предоставляет начальную обратную связь и набор предложений по улучшению. + + {% cut "Временное исключение себя из автоматического назначения, если вы являетесь основным ревьюером" %} + + ![Исключение себя из автоматического назначения основных ревьюеров](./_assets/excluding-primary-reviewer.jpeg) + + {% endcut %} + +5. **Автор** и **основной ревьюер** совместно итеративно работают, пока предложенные изменения не пройдут [контрольный список](#checklist). **Основной ревьюер** предоставляет отзывы через комментарии к pull-запросу, а **автор** их учитывает. Ожидаемое время ответа для каждой итерации ревью составляет два рабочих дня, до нескольких недель в случае форс-мажора. +6. Как только **основной ревьюер** подтверждает, что pull-запрос соответствует требованиям контрольного списка, он: + + - Включает auto-merge для pull-запроса. + - Отклоняет свой устаревший отзыв c комментарием [«lgtm»](https://en.wiktionary.org/wiki/LGTM). + - Передаёт процесс **финальному ревьюеру** для дополнительной проверки свежим взглядом. + + ![Пример включения auto-merge и отклонения устаревшего отзыва](./_assets/automerge-and-dismiss.png) + +7. В зависимости от вердикта **финального ревьюера**: + + - Если **финальный ревьюер** нажимает кнопку Approve, pull-запрос начинает соответствовать одному из обязательных условий для мёрджа. Таким образом, если сборка всё ещё проходит, auto-merge GitHub, вероятно, автоматически вмёрджит pull-запрос. В противном случае любые проблемы должны быть устранены вручную. + - Если **финальный ревьюер** предоставляет дополнительную обратную связь или предложения, процесс возвращается к шагу 5. + +8. Документация {{ ydb-short-name }} многоязычная, и от **авторов** ожидается предоставление синхронизированных изменений для всех поддерживаемых языков (в настоящее время английский и русский), если это применимо. Если **автор** не знает все необходимые языки, допустимо использование [LLM](https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C) или машинного перевода. На каком этапе делать перевод зависит от сложности: + + - Для простых изменений обычно лучше перевести в начале и пройти процесс ревью с одним pull-запросом, содержащим изменения на всех языках. + - Для сложных изменений, вероятно требующих нескольких итераций ревью, допустимо сначала завершить процесс ревью на одном языке, а затем начать отдельный pull-запрос с переводом после утверждения первого. + +## Контрольный список {#checklist} + +- [ ] Текст понятен целевой аудитории статьи. +- [ ] Текст технически точен. +- [ ] Текст грамматически правильный, без пунктуационных, орфографических или типографских ошибок. +- [ ] Терминология консистентна. Первое упоминание каждого термина, используемого в статье, является ссылкой на его объяснение в [{#T}](../../concepts/glossary.md) или известном доверенном источнике, таком как Википедия. +- [ ] Каждая новая статья правильно размещена в [структуре документации](structure.md). +- [ ] Каждая статья следует одному [жанру](genres.md) и соответствует своему месту в структуре документации. +- [ ] Каждая новая статья включает ссылки на все релевантные существующие страницы документации, либо по ходу текста, либо в конце в разделе «См. также». +- [ ] Релевантные существующие статьи обновлены ссылками на новые статьи. +- [ ] Все новые статьи перечислены в YAML файлах с оглавлением и `index.md` их папки. +- [ ] Все переименованные или перемещённые статьи отражены в [redirects.yaml](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/redirects.yaml). +- [ ] Тон повествования и стиль статьи соответствуют остальной документации или, как минимум, остаются консистентными внутри статьи. + +{% note tip %} + +Этот контрольный список является сжатой версией [{#T}](style-guide.md) и служит напоминанием при каждом ревью. Его можно копировать и вставлять в описание pull-запроса и отмечать пункты по мере продвижения процесса ревью. Обращайтесь к полному руководству по стилю для изначального понимания этих пунктов и дополнительных деталей. + +{% endnote %} + +## Чем не является ревью документации + +### Тестирование + +Ревью документации не является заменой тестирования. Если документация включает инструкции, **автор** несёт ответственность за обеспечение их правильности, реализацию автоматизированных тестов для поддержания точности со временем и т.д. + +**Основной ревьюер** и/или **финальный ревьюер** могут проверить корректность описанных шагов в инструкции. Но это не является обязательной частью их роли. + +### Ревью технического дизайна + +Ревью документации не является ревью технического дизайна функциональности. Документация обычно пишется для по большей части реализованной функциональности, поэтому значительные изменения в поведении продукта на этом этапе редко возможны. Однако **основной ревьюер** и/или **финальный ревьюер** могут подсветить любые неконсистентности, странное поведение или проблемы с удобством использования. Устранить их сразу же, если это возможно, или учесть их для будущих итераций развития описываемой функциональности является ответственностью **автора**. + +## См. также + +- [Документация GitHub](https://docs.github.com/en) +- [Документация Git](https://git-scm.com/doc) \ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/documentation/structure.md b/ydb/docs/ru/core/contributor/documentation/structure.md new file mode 100644 index 000000000000..ea909fb3d12e --- /dev/null +++ b/ydb/docs/ru/core/contributor/documentation/structure.md @@ -0,0 +1,34 @@ +## Структура документации {{ ydb-short-name }} + +Эта статья дополняет [{#T}](style-guide.md). Она объясняет текущие директории верхнего уровня документации и какой контент принадлежит каждой из них. Как правило, большинство разделов верхнего уровня фокусируются либо на конкретной целевой аудитории (если названы «Для ...»), либо на конкретном [жанре](genres.md). + +- Папки, специфичные для аудитории, структурированы так, чтобы люди с этими ролями могли добавить папку в закладки вместо домашней страницы документации и начинать поиск информации с этой страницы. +- Папки, специфичные для жанра, в основном разработаны для поиска через встроенный поиск документации, сторонние поисковые системы или [LLM](https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C). + +Введение новых папок верхнего уровня возможно, но требует тщательного рассмотрения для минимизации загромождения сайдбара и неоднозначности в отношении того, где должны размещаться статьи. + +## Общие правила + +- Документация {{ ydb-short-name }} многоязычная, и структура файлов для каждого языка должна быть согласованной для корректной работы переключателя языков. Содержимое файлов также должно быть максимально близким между языками. Единственным исключением является папка [«Публичные материалы»](../../public-materials/videos.md), которая намеренно содержит разный контент для разных языков. Все остальные расхождения между языками считаются техническим долгом. +- Поддерживайте консистентность между структурой файлов в репозитории, URL-адресами в адресной строке и папками в боковой панели. Исторически они были независимыми, но опыт показал, что несогласованности приводят к путанице и проблемам с навигацией. Документация постепенно переходит к единой структуре. +- Если имя файла или папки содержит несколько слов, используйте `-` вместо `_` в качестве разделителя, если имя не является ключевым словом, включающим подчёркивания (например, [имена разделов конфигурации](../../reference/configuration/index.md)). +- При переименовании или перемещении любой статьи обязательно добавьте перенаправление со старого URL на новый в [redirects.yaml](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/redirects.yaml). + +## Список папок верхнего уровня + +- **[Начало работы](../../quickstart.md).** [Руководство](genres.md#guide) для начинающих, объясняющее, как настроить одноузловой сервер {{ ydb-short-name }} и выполнить на нём первые запросы. +- **[Концепции](../../concepts/index.md).** Высокоуровневый [теоретический обзор](genres.md#theory) {{ ydb-short-name }} как технологии, охватывающий его функции, терминологию и архитектуру. Предназначен для широкой аудитории с минимальными предварительными знаниями, включая руководство компаний и лиц, принимающих решения. +- **[Для DevOps](../../devops/index.md).** Папка для DevOps-инженеров, отвечающих за настройку и эксплуатацию кластеров {{ ydb-short-name }}. Большинство контента состоит из [практических руководств](genres.md#guide) для конкретных задач, связанных с кластером. Поскольку {{ ydb-short-name }} поддерживает несколько вариантов развёртывания, руководства, различающиеся в зависимости от метода развёртывания, размещаются в соответствующих подпапках ([Ansible](../../devops/ansible/index.md), [Kubernetes](../../devops/kubernetes/index.md) или [вручную](../../devops/manual/index.md)), каждая из которых следует согласованной внутренней структуре. Здесь также включена [теоретическая информация](genres.md#theory), специфичная для этой роли. +- **[Для разработчиков](../../dev/index.md).** Папка для разработчиков приложений, работающих с {{ ydb-short-name }}. В основном состоит из [практических руководств](genres.md#guide) и [теории](genres.md#theory). +- **[Для инженеров безопасности](../../security/index.md).** Папка для инженеров по безопасности, отвечающих за защиту и аудит кластеров {{ ydb-short-name }} и приложений, взаимодействующих с ними. Содержит в основном [практические руководства](genres.md#guide) и [теорию](genres.md#theory), специфичную для роли. +- **[Для контрибьюторов](../../contributor/index.md).** Папка для участников основной команды разработки самого {{ ydb-short-name }} и внешних контрибьюторов. Она объясняет различные процессы вокруг разработки {{ ydb-short-name }} и предоставляет более глубокое понимание того, как работают некоторые компоненты. В основном [теория](genres.md#theory) с несколькими [практическими руководствами](genres.md#guide). +- **[Справка](../../reference/index.md).** Подробный раздел со [справкой](genres.md#reference) по различным аспектам {{ ydb-short-name }}. Подразумевается, что читатели будут попадать сюда в основном через поиск по мере необходимости или ссылки из других разделов. Основная цель — полнота, чтобы любая тема могла быть найдена через точные совпадения ключевых слов или их описания. Три основных сценария использования этого раздела: + - Поиск значения незнакомых ключевых слов, функций, настроек, аргументов и т.д. + - Поиск правильного синтаксиса для запросов, работы с SDK или конфигурационных файлов. + - Использование как цели для внутренних ссылок, когда другие статьи документации упоминают функциональность без подробного объяснения. +- **[Рецепты](../../recipes/index.md).** Мини-[руководства](genres.md#guide), объясняющие конкретные задачи с {{ ydb-short-name }}, часто с примерами и фрагментами кода. Эта папка существует в основном по историческим причинам, так как большая часть её содержимого могла бы быть размещена либо в папках «Для ...», либо в «Вопросы и ответы». +- **[Диагностика проблем](../../troubleshooting/index.md).** Смесь [теории](genres.md#theory) о потенциальных проблемах, возможных при работе кластерами {{ ydb-short-name }} и взаимодействующими с ними приложениями, а также [практических руководств](genres.md#guide) для диагностики и их устранения. +- **[Вопросы и ответы](../../faq/index.md).** Раздел в стиле StackOverflow с [часто задаваемыми вопросами](genres.md#faq). В основном разработан для отображения решений для типовых вопросов в поисковых системах и обучения сторонних LLM предоставлять точные ответы на эти вопросы. +- **[Публичные материалы](../../public-materials/videos.md).** [Коллекция ссылок](genres.md#links) на видео и статьи о {{ ydb-short-name }}. Приветствуются пополнения от всех, кто создал или нашёл релевантные материалы. +- **[Загрузки](../../downloads/index.md).** [Коллекция ссылок](genres.md#links) для скачивания исполняемых файлов {{ ydb-short-name }}. +- **[Список изменений](../../changelog-server.md).** [Заметки о выпуске](genres.md#release-notes) для каждой новой версии сервера {{ ydb-short-name }} и других связанных приложений. \ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/documentation/style-guide.md b/ydb/docs/ru/core/contributor/documentation/style-guide.md new file mode 100644 index 000000000000..5d04caf0f477 --- /dev/null +++ b/ydb/docs/ru/core/contributor/documentation/style-guide.md @@ -0,0 +1,97 @@ +# Руководство по стилю документации {{ ydb-short-name }} + +Руководство по стилю документации {{ ydb-short-name }} разработано, чтобы помочь авторам создавать понятную, последовательную и удобную для разработчиков документацию. + +## Основные принципы {#core-principles} + +- **Понимание целевой аудиторией:** + - Перед началом работы над новой статьёй или улучшением существующей уделите время на определение её целевой аудитории. Учитывайте их конкретную роль ([разработчики приложений](../../dev/index.md), [DevOps-инженеры](../../dev/index.md), [инженеры по безопасности](../../security/index.md) и т.д.), технический опыт и знакомство с темой статьи и {{ ydb-short-name }} в целом. + - Убедитесь, что текст понятен целевой аудитории статьи. +- **Чёткий язык:** + - Используйте простой, понятный язык, который напрямую передаёт мысли автора. + - Избегайте сложных фраз, которые могут быть трудны для неносителей языка. + - Избегайте жаргона и сленга, если они не являются общепринятыми в отрасли. +- **Последовательная терминология:** + - Для каждого необычного термина в статье убедитесь, что первое использование содержит ссылку на объяснение: + - Для терминов, специфичных для {{ ydb-short-name }}, ссылайтесь на [{#T}](../../concepts/glossary.md). Если в глоссарии перечислено несколько синонимов термина, используйте основной из заголовка глоссария. Если запись в глоссарии отсутствует, добавьте её. + - Для общих терминов, которые могут быть незнакомы некоторым читателям, ссылайтесь на их страницу в Википедии или аналогичном общеизвестном источнике. Избегайте ссылок на блоги, социальные сети или случайные сторонние статьи. + - Если в тексте есть аббревиатура, при первом появлении в статье напишите её полностью и явно покажите аббревиатуру в скобках. Например, Structured Query Language (SQL). +- **Структурированное содержание:** + - Каждая статья должна иметь только *одну* цель для достижения читателем. Если текст преследует несколько целей, вероятно, его нужно разделить на несколько статей. Если возможно, явно укажите эту цель в начале статьи и продемонстрируйте её достижение в конце. + - Каждая статья должна следовать только одному [жанру](genres.md). Если это не так, то вероятно её нужно разделить на несколько статей. + - Организуйте статьи с помощью заголовков, подзаголовков, списков, заметок, таблиц и блоков кода, чтобы помочь читателям быстро ориентироваться в информации. + - Следуйте общей [структуре документации](structure.md) при создании новых статей. + +## Тон повествования {#voice} + +- **Разговорный.** Стремитесь к тону, который ощущается как объяснение концепций опытным другом в доступной манере. +- **Дружелюбный и уважительный.** Сохраняйте баланс профессионализма и дружественной теплоты. +- **Инклюзивный язык.** Пишите нейтрально и уважительно, избегая предвзятого или исключающего языка. +- **Контекстно-зависимый.** Прдстраивайте тон текста в зависимости от типа контента. Для практических руководств будьте более ободряющими; для справочного материала будьте более точными и краткими. +- **Активный залог.** Предпочитайте активные конструкции для обеспечения ясности и непосредственности, облегчая следование инструкциям. + +## Специфика языка + +Убедитесь, что текст следует правилам своего языка без опечаток, грамматических, пунктуационных или орфографических ошибок. Кроме того, следуйте этим специфичным для {{ ydb-short-name }} правилам. + +### Только для английского + +- Используйте [последовательную запятую](https://en.wikipedia.org/wiki/Serial_comma) где это уместно. +- Используйте [заголовочный регистр](https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80) для заголовков, предпочтительно следуя правилам [Chicago Manual of Style](https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80#Chicago_Manual_of_Style). +В качестве кавычек в тексте используйте простые двойные кавычки ("). + +### Только для русского + +- Используйте `ё` где это уместно. +- Используйте [кавычки-ёлочки](https://en.wikipedia.org/wiki/Guillemet) (`«` и `»`). +- Используйте `—` (en dash) для тире. +- Используйте точку с запятой для маркированных и нумерованных списков где это уместно, т.е. для всех элементов, кроме последнего, если элементы не содержат нескольких предложений. +- *Не* используйте [заголовочный регистр](https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80) для заголовков. + +## Форматирование и структура + +- **Чёткая иерархия.** Используйте заголовки и подзаголовки для определения разделов и облегчения просмотра документа. +- **Списки и маркеры.** Используйте маркеры или нумерованные списки для разбивки шагов, функций или рекомендаций. +- **Визуальные выделения.** Если есть важное предупреждение, информация или совет, выделите их с помощью тега `{% note info %} ... {% endnote %}`. Для небольших выделений по тексту используйте **жирный** или *курсив*, но в меру. +- **Код и примеры.** При включении кода используйте правильное выделение синтаксиса, форматирование и комментарии для обеспечения читаемости. Показывайте примеры вывода для запросов и CLI-команд. Используйте `блоки кода` для всего, что может появиться в консоли или IDE, но не для визуальных выделений. +- **Ссылки.** Предоставляйте ссылки на релеватные ресурсы или дополнительную документацию. Вместо повторения заголовка целевой статьи для внутренних ссылок используйте `[{#T}](path/to/an/article.md)`. +- **Без копирования.** Если ссылок не достаточно и часть информации должна отображаться в документации более одного раза, создайте отдельный файл Markdown в папке `_includes`, затем добавьте его во все необходимые места через `{% include [...](_includes/path/to/a/file.md) %}` вместо дублирования контента копированием и вставкой. +- **Стиль синтаксиса Markdown.** Документация {{ ydb-short-name }} использует автоматический линтер для файлов Markdown. Обратитесь к [.yfmlint](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/.yfmlint) для актуального списка применяемых правил. +- **Использование переменных.** Документация {{ ydb-short-name }} имеет конфигурационный файл [presets.yaml](https://github.com/ydb-platform/ydb/blob/main/ydb/docs/presets.yaml), который перечисляет переменные для предотвращения опечаток или условного скрытия контента. Используйте эти переменные где это уместно, особенно `{{ ydb-short-name }}` вместо `YDB`. +- **Диаграммы.** Используйте встроенные диаграммы [Mermaid](https://github.com/diplodoc-platform/mermaid-extension), если это возможно. Если используется сторонний инструмент для диаграмм, сохраните исходный файл в ту же папку `_assets` рядом с изображением для будущих правок. Убедитесь, что диаграммы хорошо выглядят как в светлой, так и в тёмной теме. +- **Правильное размещение статей.** Новые статьи должны быть правильно размещены в соответствии со [структурой документации](structure.md). +- **Консистентность жанра.** Статьи не должны смешивать несколько [жанров](genres.md), и жанр должен соответствовать месту статьи в структуре документации. + +### Интеграция документации + +- **Перекрёстные ссылки.** Добавляйте ссылки на все релевантные существующие страницы документации, либо по ходу текста, либо в разделе «См. также» в конце. +- **Обратные ссылки.** Обновляйте релевантные существующие статьи ссылками на новые статьи. +- **Включение в индекс.** Упоминайте все статьи в оглавлении (`toc_i.yaml` или `toc_p.yaml`) и `index.md` их папки. +- **Ссылки на исходный код.** Ссылайтесь напрямую на исходные файлы на GitHub когда это уместно. Если цель ссылки может значительно измениться со временем, используйте ссылку на конкретный коммит или стабильную ветку. +- **Ссылки на глоссарий:** + - Когда термин, специфичный для {{ ydb-short-name }}, упоминается в статье впервые, сделайте его кликабельной ссылкой на соответствующую запись глоссария. + - Если есть отдельная подробная статья по той же теме, что и термин глоссария, добавьте ссылку на неё из описания термина глоссария. + +## Использование и гибкость + +- **Рекомендации, а не жёсткие правила.** Это руководство по стилю предлагает рекомендации для улучшения ясности и последовательности, но допускает гибкость, когда отклонения приносят пользу контенту. +- **Дополнительные ресурсы.** Авторам рекомендуется консультироваться с внешними руководствами по стилю (например, The Chicago Manual of Style, Merriam-Webster) при неоднозначных ситуациях. +- **Обновления.** Это руководство эволюционирует со временем вместе с остальным контентом. Если вы часто вносите вклад в документацию {{ ydb-short-name }}, периодически возвращайтесь сюда, чтобы ознакомиться с обновлениями. + +## Чего следует избегать + +- Жаргона и сленга. +- Использования «мы». +- Шуток и другого эмоционального контента. +- Чрезмерно длинных предложений. +- Нерелевантных тем и отсылок, таких как культура, религия или политика. +- Излишне подробных деталей реализации (кроме [{#T}](../../contributor/index.md), [{#T}](../../changelog-server.md) и [{#T}](../../public-materials/videos.md)). +- Повторного использования стороннего контента без письменного разрешения или совместимой открытой лицензии, явно разрешающей это. +- HTML внутри Markdown, кроме как для обхода отсутствующих визуальных стилей. + +## См. также + +- [{#T}](index.md) +- [{#T}](review.md) +- [{#T}](structure.md) +- [{#T}](genres.md) \ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/documentation/toc_p.yaml b/ydb/docs/ru/core/contributor/documentation/toc_p.yaml new file mode 100644 index 000000000000..79f1b397e2d9 --- /dev/null +++ b/ydb/docs/ru/core/contributor/documentation/toc_p.yaml @@ -0,0 +1,9 @@ +items: +- name: Процесс ревью + path: review.md +- name: Руководство по стилю + path: style-guide.md +- name: Структура + path: structure.md +- name: Жанры + path: genres.md \ No newline at end of file diff --git a/ydb/docs/ru/core/contributor/toc_i.yaml b/ydb/docs/ru/core/contributor/toc_i.yaml index bc77449a6a6f..61d879b5268f 100644 --- a/ydb/docs/ru/core/contributor/toc_i.yaml +++ b/ydb/docs/ru/core/contributor/toc_i.yaml @@ -5,6 +5,11 @@ items: href: build-ya.md - name: Релизы href: manage-releases.md +- name: Документация + href: documentation/index.md + include: + mode: link + path: documentation/toc_p.yaml - name: Ядро items: - name: Общая схема diff --git a/ydb/docs/ru/core/reference/index.md b/ydb/docs/ru/core/reference/index.md new file mode 100644 index 000000000000..9d653bc1b4ae --- /dev/null +++ b/ydb/docs/ru/core/reference/index.md @@ -0,0 +1,18 @@ +# Справка по {{ ydb-short-name }} + +В этом разделе документации содержится справочная информация по различным аспектам {{ ydb-short-name }}, включая: + +* [{#T}](../yql/reference/index.md) +* [{#T}](../postgresql/intro.md) +* [{#T}](./embedded-ui/index.md) +* [{#T}](../integrations/index.md) +* [{#T}](./ydb-cli/index.md) +* [{#T}](./ydb-sdk/index.md) +* [{#T}](./languages-and-apis/index.md) +* [{#T}](./kafka-api/index.md) +* [{#T}](./configuration/index.md) +* [{#T}](./observability/index.md) +* [{#T}](./ydb-dstool/index.md) +* [{#T}](./ydbops/index.md) +* [{#T}](./docker/index.md) + diff --git a/ydb/docs/ru/core/toc_i.yaml b/ydb/docs/ru/core/toc_i.yaml index f09528947ffd..243cb5975285 100644 --- a/ydb/docs/ru/core/toc_i.yaml +++ b/ydb/docs/ru/core/toc_i.yaml @@ -29,6 +29,7 @@ items: mode: link path: contributor/toc_p.yaml - name: Справка + href: reference/index.md include: mode: link path: reference/toc_p.yaml