06.08.2022
6 минут просмотра

Що таке «бізнес логіка»? І як почати її розуміти

Сергій Немчинський
Що таке «бізнес логіка»? І як почати її розуміти

Для чого потрібна програма? Більшість новачків-програмістів говорять: я буду писати програми. Програма — це щось комусь потрібне. Її хтось буде використовувати, щоб досягати свої цілі.

Якщо це бізнес-програма — у ній будуть оброблятися бізнес-дані. Це може бути бухгалтерська програма, складська, програма управління персоналом, логістикою, телекомом, — неважливо, але вона повинна робити щось корисне для бізнесу. Наприклад, враховувати товари, які приходять на склад.

Простий приклад

На склад приходить товар. Кладовщик-приймальник повинен взяти і вбити в програму товари, які прийшли, і скільки. Тому що склад великий. І коли до нього прийдуть і запитають — а є у тебе п’ять відер? Він повинен відкрити програму і подивитися — так, п’ять відер є. І якщо запитають, то перевірити, з якої накладної та від якого постачальника вони прийшли.

Начебто просто. Але якби не було програми, йому б довелося все це записувати на папірцях. І якщо склад великий, то розбиратися в цих папірцях можна рік. Або два. І не розібратися. Тому програма потрібна, і такі програми пишуться в інтересах користувачів.

Бізнес-логіка

Якщо ми говоримо про бізнес, для якого і пишуться 95% програм, то логіка програми — то, що вона робить — це і є бізнес-логіка. По-англійськи — domain. Це правила, які містяться в самому бізнесі. Наприклад, не може існувати накладна без єдиної позиції — це означає, що нічого не прийшло, і накладної просто немає. Або можна відправити зі складу товар, якого на складі немає і не було. Найпростіші вимоги, які вам прийдуть в голову першими. Але в будь-якому бізнесі таких правил — тисячі.

Ваша програма фактично буде містити ці правила, і стежити за тим, щоб правила дотримувалися користувачами. У випадку зі складом це комірник.

Шари в додатках

У будь-якої програми є три шари. Шар призначеного для користувача інтерфейсу — це висновок даних, кнопочки, списки, стрілочки, і інші елементи, які показуються користувачеві. Шар бізнес-логіки — той самий, де прописані бізнес-правила на вимогу замовника. І шар збереження даних, він же consistency. Ми його поки не чіпаємо..

Треба розуміти, що існує величезна кількість однотипних завдань. Наприклад, висновок даних в інтерфейс. Для цього існують фреймворки — набір прийнятих рішень, я про них раніше розповідав. Це спосіб автоматизації, коли програміст просто підключає фреймворк, щоб відразу намалювався красивий інтерфейс. Інтерфейси плюс-мінус однотипні у всіх програмах: кнопочки, списочки, все відносно стандартно.

А ось шар бізнес-логіки, де задані правила, не може бути створений таким способом. У кожному бізнесі, навіть якщо це п’ять складів, в кожному будуть свої особливості. Припустимо, на першому складі два приміщення, і комірникові треба знати, де саме зберігається товар. А в іншого складу відділення в трьох містах, і треба знати, в якому місті. А у третього складу одна каптьорки, приміщення йому не потрібні. Зате від може відвантажувати товари з сусіднього складу. Це простий приклад, а таких правил може бути мільйони.

Наприклад, якщо ми говоримо про банківську сферу чи телеком, там дуже складна логіка. Подивіться як-небудь свій договір з банком, здивуєтеся. Десять сторінок дрібним текстом. Це і є бізнес-логіка — як банк працює з вашим рахунком. Персональні рахунки, накопичувальні, і так далі.

Висновок

Сподіваюся, ви зрозуміли, що таке бізнес-логіка і чому це основна частина вашої роботи. Тому що використання фреймворків, щоб намалювати кнопки на мордочці — це не програмування. Основна частина роботи програміста — це передати в програмі правила і логіку того бізнесу, для якого ви її пишете.

Добавить комментарий

Ваш імейл не буде опубліковано. Обов'язкові поля відзначені *

Зберегти моє ім'я, імейл та адресу сайту у цьому браузері для майбутніх коментарів