Сценарии использования (use-cases) к третьем уроку курса Django ORM курса Девман.
Школьник Ваня хочет исправить свои оценки. Сайт электронного дневника уже давно настроен и работает на отдельном сервере. У Вани есть к нему доступ. Он уже научился скачивать и загружать файлы на сервер. Также он умеет открывать консоль и запускать там команды.
У Вани есть ссылка на репозиторий с кодом, оттуда он и начинает свой путь:
- Ваня перешёл по ссылке на репозиторий GitHub
- По инструкции залил скрипт на сервер, положил в указанную папку
- Из README Ваня скопировал и запустил на сервере консольные команды
- Из инструкции скопировал и запустил внутри shell python-код, если такое требуется
- Ваня открыл сайт электронного дневника, нашёл себя
- Оценки исправлены?
- Жалобы исчезли?
- Появилась похвала от учителя?
Ваня слаб в программировании, и действует строго по инструкции. Позаботьтесь о том, чтобы всё работало гладко, понятно и предсказуемо.
Хотя с английским языком Ваня дружит, но вот в IT терминологии он явно путается. Лучше не рисковать и сделать для него README на русском языке. Ещё лучше — снабдить документацию ссылками на полезные туториалы.
- Из README Ваня узнаёт, как запустить скрипт для своего друга
- Ваня делает всё, что сказано в инструкции
- Проверяет оценки своего друга на сайте электронного дневника — оттуда исчезли все двойки и тройки
- Ваня открыл сайт электронного дневника, нашёл друга
- Оценки исправлены?
- Жалобы исчезли?
- Появилась похвала от учителя?
Проходит месяц, а то и два. В дневнике Ваня снова набрал себе троек и теперь жаждет поднять успеваемость. Юный хакер вспоминает про ваш скрипт. Он находит ссылку на GitHub и следует инструкциям, как и в прошлый раз.
Отличие этого сценария в том, что скрипт запускается многократно в течение учебного года. Каждый раз исправляются плохие оценки, удаляются жалобы и добавляется похвала. При этом важно, чтобы записи в дневнике выглядели реалистично: текст похвалы менялся от запуска к запуску, и записи не накапливались у одного единственного урока.
Школьник Ваня не так хорош в программировании и с трейсбеками работать пока не умеет. Они его шокируют и пугают, поэтому читать их он вряд ли будет. Надо позаботиться о том, чтобы в случае ошибки скрипт понятным образом сообщил ему в чём дело и как это исправить.
- Подготовил скрипт к работе по инструкции в README
- Запустил скрипт, допустив опечатку в имени
'Симён'
- Скрипт сообщил об ошибке?
- По выводу понятно что с этим делать?
- Запустил скрипт, в качестве имени указав пустую строку
''
- Скрипт сообщил об ошибке?
- По выводу понятно что с этим делать?
Кроме имени школьника скрипт требует указать название урока, поэтому здесь то же есть свой сценарий с опечаткой:
- Подготовил скрипт к работе по инструкции в README
- Запустил скрипт, допустив опечатку в названии урока
'матиматика'
- Скрипт сообщил об ошибке?
- По выводу понятно что с этим делать?
Другой программист случайно наткнулся на ваш репозиторий на GitHub. У него пока нет желания вникать в код и делать что-либо. Он хочет понять где оказался и как это относится к нему.
- Бегло, не вчитываясь, пролистал README
- Узнал, как этот код связан с электронным дневником и что полезного он делает
- Узнал, что надо заранее развернуть у себя сайт
- Нашёл ссылку на репозиторий электронного дневника, перешёл туда, ознакомился, вернулся
- В README заметил, что это учебный проект
Другой программист, уже знакомый с проектом, хочет развернуть код у себя и слегка "доработать напильником".
- Скачал репозиторий к себе
- Из README узнал, что понадобится файл БД и развёрнутый сайт
- Раздобыл где-то свой собственный файл БД
- Установил у себя сайт дневника, следуя инструкциям в его репозитории
- По инструкции подготовил скрипт к работе
- Запустил скрипт
- Открыл сайт электронного дневника, убедился, что оценки исправлены
- Полез читать код
- ...
- Profit!