Я чув, як люди багато говорять про ділову логіку на роботі та в Інтернеті, і прочитав на цьому сайті кілька запитань, але цей термін все ще не має для мене великого сенсу. Наприклад, ось деякі (перефразовані) твердження, які я часто бачу:
"Бізнес-логіка - це частина вашої програми, що кодує фактичні правила бізнесу." Більшість визначень, які я прочитав, є циркулярними.
"Бізнес-логіка - це все, що є унікальним для вашої програми." Я не бачу, чим це відрізняється від "вашої конкретної програми - це не що інше, як бізнес-логіка", якщо ми випадково не винаходили купу коліс, для чого можна було б використовувати існуюче програмне забезпечення сторонніх виробників. Звідси і назва питання.
"Шар бізнес-логіки повинен бути над рівнем доступу до даних та нижче вашого шару GUI." У коді, який я пишу, користувачі бази даних повинні знати, до яких даних вони мають отримати доступ, і код інтерфейсу повинен знати багато про те, що він відображає, щоб відобразити його правильно, і між цим насправді нічого робити ці два місця, крім передачі крапель даних між клієнтом та сервером. Отже, що насправді повинно перейти в бізнес-логічний шар?
"Бізнес-логіка повинна бути окремою від логіки презентації." Більшість запитів на функції, які ми отримуємо, - це зміни логіки презентації з бізнес-причин. Якщо одне з правил бізнесу - відображати ціни державних облігацій США за 32-денною нотацією за замовчуванням (одночасно надаючи користувальницький інтерфейс для користувача, щоб налаштувати це), логіці презентації потрібно хоча б знати, що це правило існує, якщо не повністю його виконувати. Крім того, здається, що основна частина UX-дизайну допомагає користувачеві зрозуміти правила ведення бізнесу, яке намагається реалізувати наше програмне забезпечення.
Чи можливо, що я насправді перебуваю в команді, яка займається лише діловою логікою, а всю некомерційну логіку здійснюють інші команди? Або ціла концепція "бізнес-логіки" як окремої сутності є працездатною лише для певних програм або архітектури?
Щоб зробити конкретніші відповіді: Притворіться, що вам доведеться повторно застосувати додаток Піца Доміно. Що таке бізнес-логіка та яка неділова логіка цього додатка? І як можна було б цю логічну ділову логіку розмістити у власному "шарі" коду, без більшості інформації про піцу, що переливається у шари доступу до даних та презентації?
Оновлення: Я дійшов висновку, що моя команда, ймовірно, робить 90% код інтерфейсу, і більшість - але не все - з тих, що ви б назвали бізнес-логікою, походить від інших команд або компаній. В основному наша програма призначена для моніторингуфінансові дані та майже всі функції - це спосіб користувачеві налаштувати, які дані вони бачать та як їх бачать. Купівля чи продаж не відбувається (хоча ми трохи інтегруємося з іншими програмами від нашої компанії, які роблять це), а фактичні дані надаються навантаженням із зовнішніх джерел. Але ми дозволяємо користувачам робити такі речі, як надсилання копій своїх «моніторів» іншим користувачам, тому деталі того, як ми поводимося, це, ймовірно, кваліфікуються як бізнес-логіка. Насправді є мобільний додаток, який зараз розмовляє з деяким нашим резервним кодом, і я точно знаю, яку частину нашого коду фронтенду я хотів би, щоб він поділився з нашим інтерфейсом в ідеальному світі (в основному M в нашому квазі-MVC), так Я здогадуюсь, що це БЛЛ для нас.
Я приймаю відповідь user61852, оскільки вона дала мені набагато конкретніше розуміння того, що "ділова логіка" робить і не стосується.