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

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

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

27 ответов

15 просмотров

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

Артем- Автор вопроса
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.

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

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

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
В дельфе нет никакого коробочного (без установки третьих либ) способа получить CallStack с расшифровкой отладочных символов?
notme
7
Приветики всем!)) Подскажите: есть функция, которая записывает число типа Cardinal в четыре байта, хранимые в TBytes. Можете помочь мне, показав, как должна выглядеть функци...
Моринаро
5
Карта сайта