melodyn
@melodyn
Лучше нативная смерть, чем фреймворковая жизнь.

Что я в итоге реализовал?

Ох, страшно мне это публиковать, но я надеюсь, что вы мне поможете :D

В общем, у меня появилась задача по созданию таблицы и наполнению её контентом (не html), у таблицы есть некоторые ограничения по ширине колонок и параметрам самой таблицы, но нет ничего такого, что пользователь мог бы сломать. При этом он может попытаться установить некорректные данные.

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

Чтобы максимально просто описать суть и реализацию я сделал пример немного в другом ключе и разместил его здесь: https://github.com/Melodyn/Synonyms (Осторожно, PHP)

Вопрос в том, что, возможно, уже есть некий паттерн проектирования (или их комбинация), которая решает мою задачу гораздо лучше и чище. Мне бы хотелось услышать в ответах:
1. Чем можно заменить мою портянку из известного миру (не библиотеки, а именно какие-то паттерны, бест практикс или т.п.);
2. Насколько люто выглядит со стороны то, что я родил?
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
melodyn
@melodyn Автор вопроса
Лучше нативная смерть, чем фреймворковая жизнь.
Нет ответа
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
gromdron
@gromdron
Работаю с Bitrix24
Эм... есть несколько вопросов по Вашему "чуду".
Отбросив велосипедизм и костылестроение есть пара вопросов по логике работы.

То что у Вас есть константа MAX_AGE_IN_YEARS (кстати почемы бы просто не спрашивать дату рождения?) это ок (смущает конечно _IN_YEARS, но да ладно), то что у Вас 3 пола это тоже допустимо (по крайней мере в нашей адекватной России), то что у Вас есть допустимый ростовой диапазон тоже, но во чего я точно не могу понять, так это блин STATUSES.

Почему бы не сделать 2 "статуса" (на самом деле эт о скорее "признак жизни субьекта") - DEAD или ALIVE, то есть живой или не живой.
child, adult, old и т.п. можно получить при помощи отдельного метода исходя из возраста обьекта (ведь они же зависят от возраста, а не от каких либо правил).
"Статусы" buried и cremated это не статусы, а виды погребения.

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

Почему бы не описать это при помощи сеттеров (т.е. в момент установки параметра, проверять его ошибки)? Почему бы не разделить это все на части и не хранить отдельно?
Ответ написан
qonand
@qonand
Software Engineer
Вы уж меня извините, может я чего-то не понимаю... но сам паттерн ПРОЕКТИРОВАНИЯ где?
Ок, у Вас есть конкретная задача и Вы ее решили - прекрасно. Но это не паттерн - это лишь один из вариантов решения ВАШЕЙ конкретной задачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 40 000 до 50 000 ₽
Depcon Екатеринбург
от 100 000 до 170 000 ₽
от 210 000 до 250 000 ₽
23 окт. 2021, в 21:50
4000 руб./за проект
23 окт. 2021, в 21:01
1000 руб./за проект
23 окт. 2021, в 18:11
1000 руб./в час