проверки значений на валидацию, методы конвертации для отправки на сервер, которые могут быть общими, а могут быть разными, и фильтр может быть с одним значением, может быть с двумя. Как предложите решить эту задачу, не используя классы? Это без подвоха вопрос, просто интересно. Я по привычке через классы решал
Создаю функцию в котором функционал который повторяется для каждого фильтра, а уникальный для каждого фильтра функционал, передаю через аргументы, либо в виде лямбди, либо в виде стрелочной функции, либо в видео обычной функции.
Загвоздка в том, что для разных по смыслу фильтров некоторый функционал схож, а некоторый - нет
К примеру, возьмём фильтр по имени и по почте. Они будут иметь схожую логику по отправке на сервер, это же просто строка, а метод валидации у них будет разный
Так я про это и написал, то что схоже в одну фунцкию, то что не схоже, передаем этой функции через аргументы, или наоборот.
Аргументы? 10-20 аргументов будешь учитывать? А если больше?
В зависимости от задачи, можно использовать аргументы, можно использовать целую функцию, можно использовать еще что, в любом случае, можно увернуться, закрутить ситуацию и задачу так, чтобы код не превратился в большую непонятную систему,я же не говорю только и только аргументы нужно использовать, в зависимости какая стоит конкретная задача, можно придумать все и обходиться без ооп, будет больно, 100% от повторения кода не избавишься, но хотябы твой код будут считать нормальным, а не куском грязи.
Плюс это очень хорошо влияет на масштабируемость. Что у нас там по SOLID? Когда появится новый фильтр, мы просто добавим новый класс, а не будем добавлять новый аргумент, заnullять его, потому что потом появится ещё аргумент, и раставлять if-ы
На зло бабушке уши отморожу это называется
В реакте ни как по другому, в js я сам юзаю ооп.
Кек, этот код мало к реакту относится. Реакт это рисовалка юай
У тебя эта же логика в идеале может и в ангуляре использоваться и во вью
А вот без классов сделать то же самое ну вообще никак нельзя, да?
Дык можно же. Просто овчинка выделки стоит?
Я сам сталкивался с таким в том же реакте, и было очень больно осознавать, что приходиться создавать костыли, что код все равно копируется от функции к функции, ну что поделаешь.
Ну я выше и спросил - как. Описал конкретный пример, чтобы не выдумывать ничего
.
Не совсем понимаю, почему "приходилось", "больно осознавать". Команда Реакта где-то на сайте написала "не используйте классы в бизнес-логике никогда в жизни"?
Класс это просто конструктор объектов
Удобный конструктор
Но это помогает реализовывать структуру наследования методов, в случае с объектами - ты сам это скопипастишь, а классы сделают это за тебя. Так зачем же усложнять себе жизнь или копированием кода в функциях, или копированием кода в аргументах?
Я пробовал создавать конструкторы в реакте, у меня ошибки вылезали, хотя все было ок, может все таки не ок, и опять же не видел чтобы кто-то использовал конструкторы или класси в реакте.
Классы не поддерживают композицию
Я уже и совсем забыл ооп из-за реакта, js тоже, после изучения реакта больше не использую.
Как можно забыть js в реакте ? Только если ты верстальщик
Я забыл не js в реакте, а чистый js без реакта, если сейчас мне дадут в руки задачу написать среднюю по сложности задачу на чистом js, я упаду с стула.
Для меня js без реакта, без jsx, уже очень непривычно.
Ибо за последние месяци ни разу не использовал чистый js.
Обсуждают сегодня