169 похожих чатов

Пример с фронта. Есть структура фильтров, которые имеют схожие методы

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

27 ответов

25 просмотров

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

Артем- Автор вопроса
123
Создаю функцию в котором функционал который повтор...

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

Артем- Автор вопроса
123
Создаю функцию в котором функционал который повтор...

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

Артем
Загвоздка в том, что для разных по смыслу фильтров...

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

123
Так я про это и написал, то что схоже в одну фунцк...

Аргументы? 10-20 аргументов будешь учитывать? А если больше?

Максим
Аргументы? 10-20 аргументов будешь учитывать? А ес...

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

Артем- Автор вопроса
123
В зависимости от задачи, можно использовать аргуме...

Плюс это очень хорошо влияет на масштабируемость. Что у нас там по SOLID? Когда появится новый фильтр, мы просто добавим новый класс, а не будем добавлять новый аргумент, заnullять его, потому что потом появится ещё аргумент, и раставлять if-ы

123
В зависимости от задачи, можно использовать аргуме...

На зло бабушке уши отморожу это называется

В реакте ни как по другому, в js я сам юзаю ооп.

123
В реакте ни как по другому, в js я сам юзаю ооп.

Кек, этот код мало к реакту относится. Реакт это рисовалка юай

Максим
Кек, этот код мало к реакту относится. Реакт это р...

У тебя эта же логика в идеале может и в ангуляре использоваться и во вью

Артем
Плюс это очень хорошо влияет на масштабируемость. ...

А вот без классов сделать то же самое ну вообще никак нельзя, да?

Sergey Grishchenko
А вот без классов сделать то же самое ну вообще ни...

Дык можно же. Просто овчинка выделки стоит?

Артем
Плюс это очень хорошо влияет на масштабируемость. ...

Я сам сталкивался с таким в том же реакте, и было очень больно осознавать, что приходиться создавать костыли, что код все равно копируется от функции к функции, ну что поделаешь.

Артем- Автор вопроса
Sergey Grishchenko
А вот без классов сделать то же самое ну вообще ни...

Ну я выше и спросил - как. Описал конкретный пример, чтобы не выдумывать ничего

Артем- Автор вопроса

.

Артем- Автор вопроса
123
Я сам сталкивался с таким в том же реакте, и было ...

Не совсем понимаю, почему "приходилось", "больно осознавать". Команда Реакта где-то на сайте написала "не используйте классы в бизнес-логике никогда в жизни"?

Артем- Автор вопроса
Sergey Grishchenko
Класс это просто конструктор объектов

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

Артем
Не совсем понимаю, почему "приходилось", "больно о...

Я пробовал создавать конструкторы в реакте, у меня ошибки вылезали, хотя все было ок, может все таки не ок, и опять же не видел чтобы кто-то использовал конструкторы или класси в реакте.

123
Я пробовал создавать конструкторы в реакте, у меня...

Я уже и совсем забыл ооп из-за реакта, js тоже, после изучения реакта больше не использую.

123
Я уже и совсем забыл ооп из-за реакта, js тоже, по...

Как можно забыть js в реакте ? Только если ты верстальщик

Desalutar
Как можно забыть js в реакте ? Только если ты верс...

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

123
Я забыл не js в реакте, а чистый js без реакта, ес...

Для меня js без реакта, без jsx, уже очень непривычно.

123
Для меня js без реакта, без jsx, уже очень непривы...

Ибо за последние месяци ни разу не использовал чистый js.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта