Найти в Дзене
51 подписчик

В ответ на пост

Ответ на задачку-водокачку

Ситуаций, в которых однозначность значения может быть подвергнута сомнению, достаточно много. Это есть и в программировании, и в любой иной области, когда думали про один вариант, захардкорили, а потом надо много вариантов.

Максимально бредовейший пример, что в мире сошли с ума и стало больше двух полов, и куча сервисов в мире были вынуждены перелопачивать свои базы данных только ради этой опции. А это не просто в базе вариантов накинуть, это еще и вывод списков иной везде по интерфейсу, обработки, ошибки, тесты.

В Планфиксе пример с полем "Тэг" и "Тэги" вполне рабочий. Это поле типа "Набор записей справочника", где значений может быть несколько.

В логике задания можно было бы просто накидать еще записей, чтобы они подходили под каждый вариант написания, а потом настроить еще фильтры, планировщики, отчеты, формулы и т.п. Вполне себе вариант, только трудоемкий. Этот вариант порождает технический долг - однажды придется все переделать под варианты, но мы не знаем, когда.

Второй вариант - написать тем, кто данные присылает, чтобы они там на спичечной фабрике определились с конечным вариантом, и захардкорить его. Это энергоэффективный вариант, быстрый.

Третий вариант уже повеселее - добавить поле типа запись справочника с тэгом добавить еще поле, где будут перечислены через запятую все синонимы в разных начертаниях, в том числе с опечатками, транслитерацией и т.п. А на этапе парсинга в инфоблоке проводить вычисление, чтобы нашел матчинг приходящего слова и содержимого записи. Такую запись и подбирать по этому слову.

В этом случае старая запись остается рабочей, ни одна формула не сломается, а вашему сотруднику останется через запятую накидывать каждое новое написание в том поле.

Я выбрал второй вариант, переименовал запись справочника, а потом поправил формулу в расчетах. И теперь держу в голове переезд на Объекты и там уже сделаю рефакторинг.

1 минута