Юскейса "редактирование" не бывает.
Мы все любим CRUD, но его простота очень обманчива. CRUD полезен, если вы программист. CRUD полезен, если мы хотим проверить полноту требований. Есть ли юскейс, в котором мы создаем объект? А юскейс, в котором мы удаляем объект? Читаем? Редактируем? Обратите внимание — "есть ли?", а не "именно так называется".
Я видел много статей и выступлений с логикой "Use cases строятся вокруг CRUD". Это большая ошибка. Юскейсы строятся вокруг целей пользователя. Отредактировать объект — это не цель. Это операция. Уровень кодера, который не думает о целях пользователя. Naked objects. Если мы вырвемся из этой технической перспективы, то можем задать вопрос: что же это за ситуация, когда нам понадобилось изменить объект?
Очевидное: мы ошиблись при вводе. Это бывает, но понятно, как этого избежать: ввести проверки, маски ввода, подчеркивание слов и т.п. Операция редактирования возникает из-за нашей лени. Другой вариант: редактирование действительно является целью пользователя. Обычно у таких систем в названии есть слово "редактор": редактор кода, текстовый редактор и т.д. Редактирование — основное действие в такой системе. Либо ваш объект в основном состоит из текста, например — пост в соц.сети. Впрочем, и тут есть варианты.
А вот, например, что за юскейс — редактирование карточки товара? Что у товара может измениться? Описание? Почему изменилось — мы исправляем ошибку, или мы добавляем что-то? Пытаемся его сделать более точным или привлекательным? Можем предложить пользователю функции именно для этого? Обложка и фото? Опять же — можем ли предложить инструменты работы с фото и оценки этих фото, чтобы не пришлось менять? Цена? Упс, а почему изменилась цена? Мы сделали скидку к празднику? Интересно. А мы точно хотим это сделать с одним товаром, или со многими товарами сразу? Тогда нам нужна функция массового изменения цены, причем не в абсолютных значениях, а на процент (цены-то разные). И юскейсы будут: исправить ошибку, улучшить текст, установить скидку. Чувствуете, как сразу заработала мысль? Совсем другие функции представляются, а не редактирование.
Юскейс — это не операции и не функции. Это цели пользователей, а цели всегда выше системы. Проверка хорошего названия юскейса: системы нет, а смысл юскейса есть.
Мы все любим CRUD, но его простота очень обманчива. CRUD полезен, если вы программист. CRUD полезен, если мы хотим проверить полноту требований. Есть ли юскейс, в котором мы создаем объект? А юскейс, в котором мы удаляем объект? Читаем? Редактируем? Обратите внимание — "есть ли?", а не "именно так называется".
Я видел много статей и выступлений с логикой "Use cases строятся вокруг CRUD". Это большая ошибка. Юскейсы строятся вокруг целей пользователя. Отредактировать объект — это не цель. Это операция. Уровень кодера, который не думает о целях пользователя. Naked objects. Если мы вырвемся из этой технической перспективы, то можем задать вопрос: что же это за ситуация, когда нам понадобилось изменить объект?
Очевидное: мы ошиблись при вводе. Это бывает, но понятно, как этого избежать: ввести проверки, маски ввода, подчеркивание слов и т.п. Операция редактирования возникает из-за нашей лени. Другой вариант: редактирование действительно является целью пользователя. Обычно у таких систем в названии есть слово "редактор": редактор кода, текстовый редактор и т.д. Редактирование — основное действие в такой системе. Либо ваш объект в основном состоит из текста, например — пост в соц.сети. Впрочем, и тут есть варианты.
А вот, например, что за юскейс — редактирование карточки товара? Что у товара может измениться? Описание? Почему изменилось — мы исправляем ошибку, или мы добавляем что-то? Пытаемся его сделать более точным или привлекательным? Можем предложить пользователю функции именно для этого? Обложка и фото? Опять же — можем ли предложить инструменты работы с фото и оценки этих фото, чтобы не пришлось менять? Цена? Упс, а почему изменилась цена? Мы сделали скидку к празднику? Интересно. А мы точно хотим это сделать с одним товаром, или со многими товарами сразу? Тогда нам нужна функция массового изменения цены, причем не в абсолютных значениях, а на процент (цены-то разные). И юскейсы будут: исправить ошибку, улучшить текст, установить скидку. Чувствуете, как сразу заработала мысль? Совсем другие функции представляются, а не редактирование.
Юскейс — это не операции и не функции. Это цели пользователей, а цели всегда выше системы. Проверка хорошего названия юскейса: системы нет, а смысл юскейса есть.