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

Если сократить мой вопрос, то получится так: Есть функция, которая должна 1)

получить строки из БД
2) сгруппировть их
3) отправить в БД новые данные по каждой строке.
Это все должно происходить по очереди. Логично, что это три разных действия. Но они все работают с одним и тем же набором данных.Решение:
1) Вынести каждое действие в отдельную функцию.
Но тогда мы три раза проходим по одним и тем же данным.
2) Один раз пройтись по нужным данным, но тогда одна функция будет выполнять сразу три действия. И как ее назвать?
3) Какие еще есть варианты?

10 ответов

11 просмотров

Функция может выполнять разные действия, это не нарушение принципа единственной ответственности. Группировку, возможно, можно сделать внутри запроса. Назвать как получится, а потом переименовать когда найдете более лучшее имя.

Михаил
Функция может выполнять разные действия, это не на...

Функция не должна делать более 1 существенного действия

Делайте слои. Слой получения данных и слой обработки данных. Посмотрите на MVC

Artur Karapetov
Функция не должна делать более 1 существенного дей...

У функции должна быть единственная причина для изменения, это не одно и тоже. У вас должно быть так: бизнес-метод, который вызывает методы чтения и метод обновления.

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

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

Artur Karapetov
Мне ваша формулировка нравится больше чем моя, но ...

Изните, путаюсь с тем, кому отвечаю. Боб Мартин это неоднократно разжевывал, и такое восприятие принципа единственной ответственности, пожалуй, самое частое заблуждение в понимании солид.

Artur Karapetov
SRP вообще не про функции если шо

Топик стартер из джаваскрипт, если что, стараюсь быть понятнее.

Если у вас это не единственная подобная "обработка", то вынесите эту логику на уровень контроллера (хендлера), либо в отдельный пакет. то есть у вас есть некий http обработчик или rpc, он получает данные, полученные данные вы тримите, после записываете в БД Недавно учу программирование, совет по небольшому опыту. Сильно лезть в архитектуру сразу после перехода на го -плохо и лишня когнитивная нагрузка, мозгу нужно с 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
Карта сайта