@bbhzp: Rozumiem, że przykład przykładem, ale szukasz ogólnej odpowiedzi jak żyć. Masz jeszcze jeden pogląd na sytuację.
Masz ogólne architektury, które dostosowujesz do specyficznej potrzebny.
i w drugą stronę:
Masz konkretną architekturę, którą uogólniasz pod szersze zastosowania.
Gdzieś pomiędzy nimi masz różne pośrednie realizacje.
Ogólna <--- Realizacja A --- ... --- Realizacja X ---> Konkretna
Rozważ wymaganie do systemu "Powinno się dać zagrać melodię Dla Elizy".
Realizacje:
- Pozytywka - gra zawsze "Dla Elizy" i nic więcej, ma 1 przycisk
- Fortepian - masz dużo klawiszy, które odpowiednio naciskane spełniają wymaganie "Powinno się dać zagrać melodię Dla Elizy"
- Keyboard - też dużo klawiszy, a dodatkowo pod niektórymi możesz podpiąć nagrane uprzednio melodie, w szczególności "Dla Elizy"
Która z realizacji jest lepsza? Nie da się odpowiedzieć bez uprzedniego zdefiniowania jakichś kryteriów (np. lepsze = tańsza? zajmuje mniej miejsca? prostota nade wszystko?).
Pewnie w głowie masz wizję tego co budujesz, której to wizji nie widzą inni i jesteś w stanie w locie powiedzieć, który wariant jest lepszy i pewnie wiesz, w którym kierunku będzie to rozwiązanie podążać. Podobnie miewają klienci. Wysokopoziomowe wymagania, wizja w głowie, a jak przychodzi do prezentacji funkcjonalności to jest "nie, to nie do końca o to chodziło".
W praktyce masz jakieś wymagania co do systemu, które trzeba zebrać, doprecyzować i zrozumieć, do tego ograniczenia budżetowe, czasowe i prawne. Na tej podstawie można wybierać architekturę, które będzie nadawała się do realizacji przy tych konkretnych ograniczeniach. Tworzy się modele (dzięki temu można zweryfikować, że coś jest zwalone już na etapie koncepcji) i prototypy (coś tam zaimplementowane, działa, ale czy o to chodzi? co można poprawić?).
Co do umieszczania logiki tu, czy tam. To zależy ;-) Oprócz tego, że masz front end i back end, to czasem logikę można umieścić w warstwie pośredniej, która dostaje wysokopoziomowe requesty i robi
orkiestrację wywołań Twojego komponentu backendowego. Jeśli sam sobie jesteś klientem i dostawcą i masz masę czasu, to spróbuj różnych podejść i obserwuj gdzie zaczną pojawiać się pierwsze problemy i jak Twoje wybory będą skutkować na rozwój aplikacji (np. chcę dodać dostęp także z aplikacji na telefon, albo via chat bot na whatzupie).