Восстановление пароля
Digital-Outsourcing > Блог > Как описать задачу для автоматизации бизнес-процесса?
Описание бизнес-процессов (бизнес-инструментов)
1. Составьте список всех дел которые вы делаете или должна делать автоматическая система
2. Составьте список объектов и их разновидностей, которые участвуют в процессах
Желательно базовое понимание OOП, JSON, XML.
3. Составьте список уникальных функций, которые могут делать объекты
4. Создайте блок-схему вложенных объектов, последовательностей и логики для более легкого восприятия информации.
Необходимо понимание:
Объекты могут иметь атрибуты (параметры по признакам, например: цвет, вес, цена) и могут быть вложены друг в друга с определенной последовательностью. Это и есть основная суть XML.
Функции по своей сути тоже объекты, только они умеют управлять другими объектами, а сами, без объектов теряют свой смысл
Функция должна иметь перечень объектов, с которыми она работает
Функция может содержать другие функции, которые могут работать с объектами внешней функции и вызывать дополнительные объекты.
Функции выполняются по очереди сверху вниз.
Функция может возвращать результат - объект.
Функция может сортировать вложенные объекты
Базовые возможности работы с объектами (операторы):
- Математические операции (+-*/, деление с остачей, процент, округление)
- Перебор вложенных объектов
- Сортировка вложенных элементов по атрибуту (ASC, DESC)
- Оператор: if, сравнение ==, наличие в строке другой строки, и логические операторы И, ИЛИ, НЕ (and, or, !).
Объекты и функции желательно называть так как они звучат в реальности, на английском языке. Для соединения слов использовать “_” (нижнее подчеркивание). Например: user_door_code
В случаях работы с cookie, когда вы хотите спрятать названия объектов, то сокращенное название можно писать в скобках. Например: user_door_code (ud1)
Также важна оптимизация. Чем меньше повторяющейся информации тем лучше. Например вместо объектов user_visitor, user_client_1order, user_client_manyorders, можно сделать просто объект user у которого будет аттрибут(свойство) user->orders_count (Значек “->” Указывает на вложенность в объект).
Почему так? Чем меньше есть виртуальных названий(посредников), тем меньше нужно тратить памяти мозга. Так что перед придумыванием любого нового названия, необходимо подумать, возможно оно не нужно.
Типовые объекты:
- Переменная (тип = {текст, число целое, с точкой, логическая})
- Клиент (тип_заказа={онлайн, звонок})
- Сотрудник (должность={оператор, старший смены, логист, управляющий}, занятость={inhouse, freelance})
- Компьютер (тип=”стационарный, ноутбук”)
- Мобильное устройство (тип=”планшет, smartphone”)
- Сервер
- Файл (тип={}, название={})
- Файлы на сервере (сервер={экипаж, дев})
- Шнур (тип={Ethernet, 220В})
- Точка доступа (маршрутизатор) (wifi={да, нет})
- Сеть
- Провайдер
- Интернет
- MAC-адрес
- IP-адрес
- URL
- HTTP запрос
- HTTP ответ
- Сайт (название={экипаж, тотоха...}, url={})
- База данных (название={экипаж, дев})
- Таблица в Базе Данных (название={заказы, скидки})
- Поле таблицы (Столбец)
- Ключевое поле таблицы (auto_increment)
- Запись таблицы (Стока, row)
- Таблица пользователей (users)
- ID
- Пароль
- Таблица заказов (ekp_orders)
- ID
- Интерфейс (платформа={web, iphone, android, Windows, Ubuntu})
- Обязательные элементы интерфейса
- Дизайн интерфейса
- Ссылка (href=ссылка, title=текст при наведении, открыть в новой вкладке={да, нет})
- Форма (Набор полей ввода, для отправки на сервер)
- Кнопка (Button)
- Текстовой поле (Input text) (автозаполнение={да, нет}, автозаполнение_список={обьект?}, placeholder={}, autocomplite(базовый) = {да, нет})
- Многострочное текстовое поле (TextArea)
- Выпадающий выбор (Select) (автозаполнение={да, нет}, автозаполнение_список={обьект?})
- Выбор нескольких элементов (MultiSelect) (автозаполнение={да, нет}, автозаполнение_список={обьект?})
- Блок (сролл={да, нет, вертикальный, горизонтальный})
- Картинка (путь)
- Текст (шрифт)
- Всплывающая подсказка alert()
- Всплывающее подтверждение confirm()
- Всплывающий блок
- Всплывающее окно браузера
- Google карта
- Yandex карта
- AJAX
- AJAX запрос
- AJAX ответ
- AJAX URL
- API
- API запрос
- API ответ
- API URL
- JSON
- XML
- HTML
- Cookie
Переменная Cookie (значение={})
- Сессия
Объект Сессии (значение={})
- Файлы на сайте (В папке сайта, мы используем папку /files/)
Типовые функции:
- Запись в таблицу
- Редактирование записи в таблице
- Удаление записи в таблице
- сложное редактирование таблицы (тип={SQL запрос, SQL запрос и программный код})
- Отправка письма {тип=”обычный, HTML, mailerloop”}
- Нажатие на объект в интерфейсе
- Изменение объекта и его атрибутов в интерфейсе
- Добавление, клонирование объекта
- Удаление элемента
- Кнопка из клавиатуре
- Фокус на объект, снятие фокуса
- Таймер {повторение={да, нет}}
- Редирект {url={}}
- Отправить AJAX запрос (нужен AJAX URL, возврат = AJAX ответ)
- Отправить API запрос (нужен API URL, возврат = API ответ)
Пример:
Этап 1 (Дизайн)
Создать интерфейс по URL http://site.com/add_user/
Создать объекты:
Форму, в ней создать 2 текстовых инпута, с базовым автокомплитом.
В плейсхолдерах инпутов соответственно: Имя, Пароль.
Блок для сообщений.
Кнопку с текстом - СОХРАНИТЬ.
Этап 2 (Программирование)
После утверждения дизайна.
При нажатии на СОХРАНИТЬ, создать функцию валидации (add_user_validation):
ЕСЛИ одно ИЛИ другое поле пустое, добавить сообщение: “Поле такое-то пустое, заполните его перед отправкой формы”
ЕСЛИ поле пароль НЕ содержит больших букв ИЛИ меньше 3 символов, то добавить сообщение “По правилам безопасности пароль должен быть не менее 3 символов и содержать хоть одну заглавную букву”
ИНАЧЕ Отправляем форму по AJAX на http://site.com/add_user_ajax/
Получаем ответ в JSON и проверяем его:
ЕСЛИ переменная в JSON status = ok. Записываем переменную user_id в сессию, потом будем ее использовать. Делаем редирект на http://site.com/
ИНАЧЕ добавить сообщение с причиной ошибки из переменной error, ответа JSON.
Этап 3 (Тестирование)
Подготовить Автотест кейс, для проверки всех вышесказанных функций.
Этап 4 (Сдача работы)
После готовности показать CTO, COO и CEO, по их утверждению закрыть задачу.
Этап 5 (Маркетинг)
Оценить сколько времени ушло на разработку - это будет стоимость бизнес-инструмента
Оценить влияние инструмента на повышение прибыли компании - $ в месяц.
Если инструмент за 1 год отбился - это успешный инструмент. Если отбился на 30-100% тоже не плохо. Если менее 30% - это НЕУДАЧА.
Пример использования Стандартов или Шаблонов
Как было:
Этап 2 (Программирование)
После утверждения дизайна.
При нажатии на СОХРАНИТЬ, создать функцию валидации (add_user_validation):
ЕСЛИ одно ИЛИ другое поле пустое, добавить сообщение: “Поле такое-то пустое, заполните его перед отправкой формы”
ЕСЛИ поле пароль НЕ содержит больших букв ИЛИ меньше 3 символов, то добавить сообщение “По правилам безопасности пароль должен быть не менее 3 символов и содержать хоть одну заглавную букву”
ИНАЧЕ Отправляем форму по AJAX на http://site.com/add_user_ajax/
Получаем ответ в JSON и проверяем его:
ЕСЛИ переменная в JSON status = ok. Записываем переменную user_id в сессию, потом будем ее использовать. Делаем редирект на http://site.com/
ИНАЧЕ добавить сообщение с причиной ошибки из переменной error, ответа JSON.
Как можно сделать:
Определить стандарт и вынести его в общие документы, все стандарты обязательны для изучения сотрудниками.
Стандарт №34 Создание простой формы регистрации:
Обязательные входные данные: Функция успешного ввода данных
Процесс:
Создать форму, в ней создать 2 поля и кнопку с названиями: E-mail, Пароль, Сохранить.
Создать блок для сообщения.
При нажатии на кнопку Сохранить, создать функцию валидации (add_user_validation):
ЕСЛИ одно ИЛИ другое поле пустое, изменить текст в блоке для сообщения: “Поле такое-то пустое, заполните его перед отправкой формы”
ЕСЛИ поле пароль НЕ содержит больших букв ИЛИ меньше 3 символов, то изменить текст в блоке для сообщения “По правилам безопасности пароль должен быть не менее 3 символов и содержать хоть одну заглавную букву”
ИНАЧЕ выполняем функцию успешного ввода данных
И вот сама задача теперь:
Этап 2 (Программирование)
Создаем форму по Стандарту №34 Создание простой формы регистрации.
Для формы функция успешного ввода данных:
Отправляем форму по AJAX на http://site.com/add_user_ajax/
Получаем ответ в JSON и проверяем его:
ЕСЛИ переменная в JSON status = ok. Записываем переменную user_id в сессию, потом будем ее использовать. Делаем редирект на http://site.com/
ИНАЧЕ добавить сообщение с причиной ошибки из переменной error, ответа JSON.
По аналогии работает система Законодательства, Образования, Обороны. Стандарты, законы, нормативные акты необходимы для общего понимания общих процессов. Большинство стандартов и общих принципов изучают в школах, техникумах и высших учебных заведениях.
Еще пример описания в виде Эссе:
Страница Добавить друзей
На ней есть форма отправки списка друзей
У этой формы, есть функция отправить
При отправки уходит объект Письмо MailerLoop
В письме есть объект Реферальная ссылка
А ссылка ведет на главную и в объекте Главная
Есть обработка реферальной ссылки:
Если(IF) есть реферальная ссылка, то(THEN) записываем в COOKIE invitor_id
Далее в обьекте всплывающее окно Вход и Форма регистрации, есть функция отправки формы регистрации, если все поля введены верно.
В этой функции мы добавили:
Если COOKIE invitor_id > 0 то сохраняем в поле user_parent_id таблицы users - это поле и будет идентификатором, что пользователь приглашенный.