2021-07-07 Все Пользовательские Данные В Учетных Системах

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
правила_разработки:как_не_надо_делать:2021-07-07_все_пользовательские_данные_в_учетных_системах [07.07.2021 07:08]
nikolay_carbonsoft создано
правила_разработки:как_не_надо_делать:2021-07-07_все_пользовательские_данные_в_учетных_системах [07.07.2021 08:38] (текущий)
nikolay_carbonsoft Approved(nikolay_carbonsoft 07.07.2021 08:39)
Строка 1: Строка 1:
 +===== Все пользовательские данные в учетных системах должны быть доступны для ручного изменения администратором. =====
 +
 +
 +
 +**Постановка задачи:​**
 +Добавить новое поле в базу данных CRM, для учета новой тарифной опции.
 +
 +
 +**Как сделали:​**
 +Добавили поле в базу данных с помощью SQL-миграции,​ добавили код в интерфейс клиента для выставления опции.
 +
 +
 +**В чем была проблема:​**
 +  * Не добавили вывод этого поля в CRM и не добавили возможность редактирования этого поля из CRM.
 +или
 +  * Не сделали отдельного интерфейса для администратора или менеджера,​ чтобы изменять это поле.
 +или
 +  * Не написана инструкция,​ как изменять это поле менеджеру другим способом.
 +
 +
 +
 +В итоге менеджер не может изменить клиенту опцию и вынужден каждый раз звать программиста для изменения данных.
 +
 +Также менеджер не может в CRM посмотреть все клиентские опции, не прибегая к спец.выгрузкам данных в csv.
 +
 +
 +**Как нужно было сделать:​**
 +Добавить необходимое поле сначала в интерфейс CRM  (средствами CRM), а уже потом это поле использовать из кода вебки клиента.
 +
 +
 +
 +
 +<wrap lo>​Можно сформулировать правило,​ что все такие поля должны быть видимы менеджеру и изменяемы им самостоятельно.
 +О безопасности (вдруг менеджер там что-то наменяет) - думать не нужно, т.к. менеджеру потом это придется самостоятельно исправлять.
 +
 +
 +А аудит изменений - нужен. И вообще,​ be verbose.</​wrap>​
 +
 +
 +
 +**Доп. проблема:​**
 +Использование спец. форматов данных в полях. Нужно было добавить доп. тарифные поля.
 +
 +
 +**Как сделали:​**
 +Добавили поле tariff_options типа json: ['​ip',​ '​ipr'​]. Чтобы в будущем можно было легко добавлять нужные опции.
 +
 +
 +**В чем проблема:​**
 +Проблема в том, что тип поля json не поддерживается веб-интерфейсом CRM. В итоге, менеджеру будет сложно вносить изменения.
 +
 +Можно выводить json в виде поля-строки,​ но тут другая проблема:​ вероятность что менеджер (не являясь технарем) напишет json с ошибкой,​ что приведет к фантомным багам в коде - очень велика.
 +
 +
 +**Как нужно было сделать:​** ​
 +Добавить отдельное поле для каждой опции.
 +
 +
 +~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/
 +
 +{(rater>​id=1|name=Прочитал_правила_разработки:​как_не_надо_делать:​2021-07-07_все_пользовательские_данные_в_учетных_системах_должны_быть_доступны_для_ручного_изменения_администратором|type=vote|trace=user|tracedetails=1)}
 +