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

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

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

10 ответов

3 просмотра

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Hello experts, Could someone kindly tell me how to run vacuum inside a plpgsql function? If you have any link please share. Thank you
Amol Palav
10
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Карта сайта