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

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

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

10 ответов

9 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

Тут вопрос а надо ли это делать у себя в коде.

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта