Сегодня хочу раскрыть тему правильной постановки задач, чтобы потом результат работы разработчика был тем, что вы ожидаете. Пост мне навеяло обсуждение в нашем Telegram чате. Начнём.ПроблемаРассмотрим пример, где на планировании разработчику была дана задача - сделать валидацию форм на странице контактов. В целом ничего сложного, но под данной постановкой кроется множество решений, которые разработчика надо будем принять:Какую библиотеку использовать? В проекте уже есть что-то или надо тащить новую? Или вообще без сторонней библиотеки?Как отображать ошибки? Есть макеты или уже всё зашито в компоненты?Как должна вести себя форма, показывать ошибки после снятия фокуса с поля или после отправки формы?Сделана ли валидация на backend или там тоже надо вносить изменения?Нужно ли проверить форму на главной странице и там тоже добавить валидацию?Если вы заранее не проговорите все эти вопросы, то можете получить очень неожиданный результат.Хотелось: Использование библиотеки react-hook-form и макетов, которые подготовил дизайнер.Результат: Самописный модуль валидации с border: red на каждом компоненте.Весь код можно выкидывать, как и время разработчика. Как же быть?РешениеМы у себя в компании выработали следующий формат задачи, который сразу позволит не забыть описать все вопросы. Этот шаблон автоматически применяется при создании новой задачи и имеет 4 блока. При этом он составляется на планировании со всеми участниками встречи.ОписаниеКраткое описание задачи на языке бизнеса, которое сделано в виде user story с упоминанием начального и конечного результата.МакетыПриложены все макеты к задаче и на них сделаны отметки с пояснениями и состояниями.Изменение архитектурыТут описывается, что нужно поменять в проекте, какие зависимости надо добавить, какие модули или части будут затронуты.Изменение данныхЕсли задача требует изменения данных в системе или получению их, то это фиксируется в данной части.ПримерТеперь давайте посмотрим на пример описания задачи выше по данном шаблону:Описание - На странице /contact необходимо сделать валидацию формы отправки контактных данных, сделав обязательными поля: имя и телефон и проверят формат телефона по шаблону +7 (000) 000-00-00. Ошибки должны отображаться после нажатия кнопки "Отправить" в форме.Макеты - Ссылка на макеты, где выделены состояния ошибок в форме и маски.Изменение архитектуры - Необходимо добавить библиотеку react-hook-form для валидацию форм. На странице Контакты, вынести форму в отдельный компонент. Состояния ошибок добавить в компоненты в /shared. На backend вся валидация уже реализована.Изменение данных - На backend добавилось новое поле - utm_campaign, которое надо передать взяв из query параметром.ИтогКонечно, такой подход будет требовать больше времени на проработку задачи, но это даст сразу верный результат, который не надо будет переделывать. Надеюсь было полезно, а вы в комментариях присылайте ваши шаблоны задач.🔗 Моя платформа обучения разработки