06.08.2022

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

Сергій Немчинський
6 хвилин перегляду
Що таке “бізнес логіка”? І як почати її розуміти

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

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

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

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

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

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

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

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

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

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

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

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

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

Висновок

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