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

А если бизнес логика сидит в триггерах (БД), сейчас я

вынес в хуки орм, но если захочу сменить орм, то получу боль, и куда в таком случае девать бизнес логику?

1 ответов

27 просмотров

в отдельный слой или домен(это не про домен имен), ваша бизнес логика, должна в первую очередь что-то делать с данными. Она не должна знать откуда данные беруться или куда уходят. Этим должны заниматься отдельные модули. бизнес логика условно принимает некие данные или запрос обрабаты это, и возвращает ответ, но не пользователю или контролеру, а другому модулю. Так сказать промежуточному ПО, между вашей бизнес логикой и контролером. Условно это можно упростить и описать как: "Запрос пользователя" -> "Контролер АПИ" -> "Промежуточный модуль контролера" -> "Промежуточный модуль бизнес логики" -> "Бизнес логика" -> "Модуль Базы данных" -> "Бизнес Логика" -> И дальше по цепочке обратно. По сути это система, делает каждый отдельный модуль вашего приложения независимым, от других, что позволит вам сменить базу данных, без сильной боли переписывания половины приложения.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта