Business logika

Business logika
« kdy: 09. 06. 2020, 17:12:54 »
Dobrý den,
snažím se pochopit, co konkrétně je business logika. Na wiki jsem narazil na článek, který mi v tom udělal ještě větší guláš.
https://en.wikipedia.org/wiki/Business_logic
Byl by někdo mi ochoten vysvětlit to do slova po lopatě s nějakým reálným příkladem? Kdyby byl například e-shop, tak co by bylo jako business logika? Je business logika prostě to samé, co je model u MVC? Tedy že máme nějaké datové objekty, ty mají nějaké metody pro práci. + sem patří business pravidla (třeba výpočet daně atd)?


L..

  • ***
  • 225
    • Zobrazit profil
    • E-mail
Re:Business logika
« Odpověď #1 kdy: 09. 06. 2020, 17:48:25 »
Je to asi takhle: Máš nějaké "business requirements", tedy požadavky zákazníka / uživatele, jak se má aplikace z jeho pohledu chovat. Části kódu / pravidlům / logice, která tyhle požadavky zajišťuje se říká "business logika".

Na druhou stranu pokud si řeknu, že obrázky budu ukládat do adresáře podle hashe jejich názvu, tak to není business logika, to je implementační logika aplikace.

Nicméně nejsou to nějak extra ostré pojmy, části implementující business logiku a ty implementační bývají promíchány atp.

Re:Business logika
« Odpověď #2 kdy: 09. 06. 2020, 17:50:46 »
Podle me: business logika = business pravidla.
Treba ten vypocet dane....
Domenove objekty tam nepatri ani by na nich ta logika nemela zaviset.

Re:Business logika
« Odpověď #3 kdy: 09. 06. 2020, 18:27:59 »
Dobrý den,
snažím se pochopit, co konkrétně je business logika. Na wiki jsem narazil na článek, který mi v tom udělal ještě větší guláš.
https://en.wikipedia.org/wiki/Business_logic
Byl by někdo mi ochoten vysvětlit to do slova po lopatě s nějakým reálným příkladem? Kdyby byl například e-shop, tak co by bylo jako business logika? Je business logika prostě to samé, co je model u MVC? Tedy že máme nějaké datové objekty, ty mají nějaké metody pro práci. + sem patří business pravidla (třeba výpočet daně atd)?

Příklady business logiky - e-shop:

  • kdo může objednávat (požadavek na registraci, jsou všechny produkty dostupné pro veřejnost?)
  • jaké dostane slevy (množstevní slevy, zákaznická slevy pro registrované, sezónní slevy...)
  • jak zákazník specifikuje parametry produktu (zda musí upřesnit materiál, barvu, velikost...)
  • jak se naloží s objednávkou, kterou lze uspokojit jen částečně (částečné odbavení)
  • jak se vypočtou poplatky (dodací, platební, balné)
  • jaké kombinace dodacích a platebních podmínek jsou povolené
  • jak je evidován skladový stav (objednává se do mínusu? )
  • jak bude zákazník notifikován
  • požadavky na vícejazyčnost eshopu, popisů produktů, notifikací...
  • ...podobně další požadavky z hlediska provozovatele eshopu (zpracování objednávky, exporty do dalších systémů, importy produktů, skladových stavů, pomůcky pro komunikaci se zákazníkem, počet správců eshopu, počet skladů...)

Příklady implementačních a technických podrobností:

  • jaké doménové objekty budou zajišťovat business logiku, jaké budou mít vztahy (1:1, 1:N, M:N)?
  • jak budou doménové objekty uloženy
  • kolik instancí eshopu poběží
  • jak bude řešena administrační část eshopu?
  • zabezpečení
  • zálohování
  • ...

Business logika = to, proč se eshop realizuje, jaké praktické potřeby uspokojuje.

Implementace = jak se toho dosáhne, na jakém podvozku se jede...

Doménové objekty obvykle modelují realitu (objednávka, položka objednávky, zákazník) zatímco  business logika stanovuje, co lze s doménovými objekty objekty provádět a jaké návazné procesy těmito operacemi vznikají.
« Poslední změna: 09. 06. 2020, 18:30:12 od Ondrej Nemecek »

Re:Business logika
« Odpověď #4 kdy: 09. 06. 2020, 19:10:54 »
Berte to slovo „byznys“ v tom širokém anglickém významu, tj. „to, čím se někdo zabývá“. Do češtiny se dostalo např. „to není můj byznys“ (to není moje starost). Takže byznys logika je ta aplikační logika (algoritmy, procesy), která se zabývá tím hlavním účelem, co má aplikace dělat. Byznys logika e-shopu tedy bude výpis produktů, filtrování, naskladňování, vytváření objednávek, správa uživatelského profilu, napojení na účetnictví apod. Prostě ty procesy, které vás napadnou, když se řekne e-shop.

Vedle toho je v aplikaci kód, který nesouvisí přímo s tím, co e-shop dělá e-shopem, často ten kód může být univerzální. Třeba ovládání UI, ukládání a načítání dat, validace vstupů.


SB

  • ****
  • 330
    • Zobrazit profil
    • E-mail
Re:Business logika
« Odpověď #5 kdy: 10. 06. 2020, 14:02:01 »
Business logic (doslovný český překlad je jako obvykle nesmyslem, spíše se to dá přeložit jako „pravidla činnosti/podnikání (v neobchodním významu slova)“) je souborem pravidel, vztahů a entit popisující fungování nějakého skutečného systému. Nemusí jít vůbec o obchod, např. studijní systém vysoké školy organizující studenty během studia. To podstatné je, že tento popis je ZCELA nezávislý na případné počítačové implementaci, dokonce nemusí být vůbec elektronicky implementován. Cílem implementace pak je, aby dokázala tento systém namodelovat.