Автор: ваше имя и имя пользователя на GitHub | Целевая версия выпуска: версия выпуска, на которую нацелена эта функция | Статус: В обсуждении или Одобрен дизайн или В разработке или Объединён | Обсуждение: ссылка на PR обсуждения дизайна
tl;dr: Краткое изложение того, почему мы должны это сделать, и (если возможно) кто выиграет от этого. Если это непонятно или слишком многословно, это явный признак того, что нам нужно сделать шаг назад и переосмыслить предложение.
Пример: «Перебалансировка обеспечивает эластичность и отказоустойчивость приложений Streams. Однако на сегодняшний день перебалансировка является дорогостоящей операцией, которую нам необходимо оптимизировать для более быстрого и эффективного запуска/перезапуска/завершения работы приложений, отработки отказа, обеспечения эластичности».
Какую проблему вы пытаетесь решить и почему. Постарайтесь описать как можно больше контекста, связанного с проблемой.
Какие требования вы учитываете. Это должно охватывать как функциональные, так и нефункциональные требования. Нефункциональные требования включают такие вещи, как ожидаемый профиль производительности функции, влияние на эффективность, влияние на масштабируемость и т. д.
Что мы явно не хотим рассматривать в этом предложении и почему.
Мы не будем ______ потому что ______. Пример: «Мы не будем заниматься поддержкой Protobuf в этом предложении, потому что мы должны использовать реестр схем, а реестр пока не поддерживает Protobuf».
Какова ценность для конечного пользователя. Представьте, что всё в этом предложении будет доступно. Почему это будет волновать наших пользователей? И конкретно, какие пользователи будут беспокоиться? Смогут ли они теперь реализовать новые варианты использования, которые раньше были невозможны? Смогут ли они реализовать существующие варианты использования намного быстрее или проще?
Как это меняет публичные API? Меняется ли язык запросов KSQL? Добавляем/удаляем ли мы поддержку форматов данных? Добавляем / удаляем конфигурации? и т.д.
Как работает ваше решение? Это должно охватить основные потоки данных и управления, которые меняются.
Каковы сценарии отказа, которые вы собираетесь охватить в своём тестировании? Какой масштаб тестирования вы планируете провести? А как насчёт тестирования производительности и нагрузки? Само собой разумеется, что большинство классов должны иметь модульные тесты.
Крупные функции должны быть построены таким образом, чтобы можно было постепенно предоставлять ценность. Для функции, которую вы создаёте, опишите этапы доставки, которые приводят к конкретной ценности для пользователя. Если некоторые этапы зависят от другой текущей работы или запланированных изменений, укажите это здесь и включите любые соответствующие ссылки для этих зависимостей.
Небольшие функции — скажем, те, которые могут быть выполнены за две-три недели — могут иметь только один этап доставки.
Кроме того, для каждого этапа постарайтесь разбить работу на более мелкие задачи. Обязательно включите задачи по тестированию, документированию и т. д. в дополнение к основным задачам разработки. В идеале задачи должны быть такими, чтобы каждая задача занимала не более 1 человеко-недели, где человеко-неделя — это календарное время и учитывает время, не потраченное непосредственно на разработку предлагаемой функции.
Разбиение функции на этапы и задачи не обязательно выполнять при первом представлении KLIP, поскольку объём, функциональность и дизайн могут измениться в ходе обсуждения. Тем не менее эти разбивки в идеале должны быть предоставлены, когда KLIP завершается и до начала выполнения.
Какие изменения необходимо внести в документацию? Например:
Этот раздел должен быть максимально приближен к окончательному. Необходимы обновления документации, поскольку это заставит нас задуматься о том, как на самом деле будет использоваться функция и как пользователи смогут освоить новую функцию. Преимущество заключается в том, что документация будет готова до начала работы, так что останется только самое интересное.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )