Skip to content

RFC [номер]: [название предложения] ​

Справка: Смотрите полный пример для понимания того, как писать RFC.

Краткое описание ​

В 1-2 предложениях опишите проблему, которую решает RFC, и предлагаемое решение.

Мотивация ​

Зачем нужен эта функция/изменение? ​

Объясните, почему этот RFC необходим, какую проблему он решает или какую потребность удовлетворяет.

Текущие проблемы ​

Опишите существующие проблемы текущего состояния, используя конкретные примеры (если есть).

Предложение ​

Основной дизайн ​

Опишите предлагаемое решение, включая основные концепции и структуры данных.

Примеры ​

Приведите примеры кода для демонстрации использования предложения:

yaoxiang
# Пример кода

Синтаксические изменения ​

Если предложение включает синтаксические изменения, укажите сравнение до и после:

ДоПосле
Синтаксис AСинтаксис B

Детальный дизайн ​

Влияние на систему типов ​

Опишите влияние на систему типов, введение новых типов, ограничений типов и т.д.

Поведение во время выполнения ​

Опишите изменения в поведении во время выполнения (если есть).

Изменения в компиляторе ​

Перечислите компоненты компилятора, которые необходимо изменить.

Обратная совместимость ​

Оцените обратную совместимость и способы обработки существующего кода.

Компромиссы ​

Преимущества ​

  • Перечислите преимущества принятия этого предложения

Недостатки ​

  • Перечислите недостатки или риски этого предложения

Альтернативные решения ​

Перечислите рассмотренные альтернативные решения и объясните, почему они не были выбраны.

Стратегия реализации ​

Зависимости ​

Перечислите другие RFC или функции, от которых зависит этот RFC.

Риски ​

Определите потенциальные риски при реализации.

Открытые вопросы ​

Перечислите вопросы, требующие дальнейшего обсуждения.

Формат:

markdown
- [ ] Описание вопроса (@用户名: дополнение)

Приложения (необязательно) ​

Приложение А: Записи обсуждения дизайна ​

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

Шаблон обсуждения ​

markdown
### [Тема обсуждения]

> **Статус обсуждения**: [Открыто | Решено] **Инициатор**: @用户名 **Дата**: ГГГГ-ММ-ДД

#### Описание проблемы

[Опишите проблему для обсуждения]

#### Варианты

| Вариант | Описание | Преимущества | Недостатки |
| ------- | -------- | ------------ | ---------- |
| A       | ...      | ...          | ...        |
| B       | ...      | ...          | ...        |

#### Записи обсуждения

- [дата] @用户名: [мнение]
- [дата] @用户名: [мнение]

#### Решение

[Окончательное решение и обоснование]

Правила управления обсуждениями ​

ЭтапДействие
В обсужденииЗаписать в приложение, оставить открытым
РешеноОбновить решение, отметить статус, обновить соответствующий контент в основной части
ОтклоненоОтметить причину отклонения, сохранить запись для справки

Важно: После завершения обсуждения необходимо обновить соответствующий контент в основной части! Записи обсуждения можно сохранить как историческую справку.


Приложение Б: Записи дизайнерских решений ​

Записывайте принятые дизайнерские решения и их обоснования.

РешениеРешениеДатаЗаписал
............

Приложение В: Глоссарий ​

ТерминОпределение
......

Ссылки ​

  • Ссылки на соответствующую документацию или внешние ресурсы
  • Ссылки на аналогичные реализации или реализации в других языках