Mój zespół pracuje nad aplikacją finansową opartą na WEBie, a kolega z koleżanki spierał się, gdzie przechowywać obliczenia - tylko w back-endie, czy też w front-endie?
Krótkie wyjaśnienie: Używamy Java (ZK, Spring) dla frontonu i Progress 4gl dla back-endu. Obliczenia, które obejmują niektóre trudne obliczenia matematyczne i dane z bazy danych, są przechowywane w zapleczu, więc nie mówię o nich. Mówię o sytuacji, w której użytkownik wprowadza wartość X, a następnie dodaje się ją do wartości Y (pokazanej na ekranie), a wynik jest wyświetlany w polu Z. Czyste i proste operacje jQuery, to znaczy.
Więc jaka byłaby najlepsza praktyka tutaj:
1) Dodać wartości za pomocą JavaScript, które oszczędzają przechodzenie do zaplecza i wstecz, a następnie zweryfikować je na zapleczu „przy zapisywaniu”?
2) Zachowaj całą logikę biznesową w tym samym miejscu - dlatego przenieś wartości do zaplecza i wykonaj tam obliczenia?
3) Wykonaj obliczenia w interfejsie; następnie wyślij dane do zaplecza, zweryfikuj je tam, wykonaj obliczenia ponownie i tylko jeśli wyniki są prawidłowe i równe, wyświetl je użytkownikowi?
4) Coś jeszcze?
Uwaga: Przeprowadzamy podstawowe sprawdzanie poprawności w Javie, ale większość z nich wciąż znajduje się w zapleczu, podobnie jak cała logika biznesowa.
Zwiększenie ilości danych, które zostałyby wysłane przez ponowne obliczenie wszystkiego w zapleczu, nie stanowiłoby problemu (mały rozmiar XML; serwery i przepustowość wytrzymałyby zwiększoną liczbę operacji wykonywanych przez użytkowników).