singalen: (Default)
[personal profile] singalen
Из переписки в группе agile-ukraine.

Бизнес-логика — это то, что останется от клиентских задач, если убрать компьютеры.

Всё равно у заказа будут строки, НДС будет начисляться по тем же правилам, а кредит нельзя будет выдавать, если кредитуемый сидел в тюрьме.
Бизнес-логика выводится из use cases, а в use cases не следует упоминать компьютеры.

"Инфраструктурой" же я назваю библиотеки, которые использует само приложение. Можно взять любое другое название для layer-а, например, по фаулеровским PoEA, "сервисы", "интеграция", или "вспомогательный слой UI + доступ к данным".
Все эти вещи повторяются от приложения к приложению, с разными вариантами.

[Ядро системы 1C? Или Management Console для Windows? ... задают инвариантное поведение базированных на них систем]

Это не бизнес-логика, это именно инфраструктура. Библиотека, которая сама не содержит ничего, понятного и непосредственно нужного конечному пользователю. Но которая позволяет НАД ней построить какую-то логику, и немного сэкономить на общей функциональности.

Для меня бизнес-логика - более узкое понятие. Это тот алгоритм, который нужно выполнить пользователю: дефрагментировать диск, просуммировать и проверить проводки. В этих ядра нет кода, который это делает, есть только функции, которые помогают построить GUI или DAL.
Они и есть сервисы или инфраструктура.

Если выбрать такое деление на слои, то легче будет отделить слой "пользовательских алгоритмов". И когда эти алгоритмы (бизнес-логика) поменяется, инфраструктура не будет цепляться и мешать менять логику.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting