Tworzę nową biznesową aplikację internetową i chcę osiągnąć:
- Korzystaj z najlepszych technologii z odpowiednich dziedzin. Chcę niezawodnego frameworka zaplecza z solidnym ORM. I chcę najbardziej zaawansowanego frameworka SPA (aplikacja jednostronicowa) z wykorzystaniem najnowocześniejszych funkcji HTML i JavaScript dla aplikacji frontendowej
- Ujawnij jednostki zaplecza i usługi biznesowe do użytku z różnych rodzajów aplikacji - np. Aplikacji internetowych, urządzeń mobilnych (Android) i ewentualnie innych typów (urządzenia inteligentne itp.)
Tak więc - aby spełnić oba wymagania, jestem skłonny całkowicie oddzielić moją aplikację w aplikacjach backend i frontend oraz zorganizować komunikację między nimi za pomocą REST API (JSON). Czy to rozsądne podejście?
Takie rozdzielenie nie jest oczywistym rozwiązaniem projektowym, ponieważ wiele technologii aplikacji internetowych ma zintegrowane warstwy widoku, w których aplikacja po stronie serwera mniej więcej kontroluje generowanie widoku i częściowo obsługuje odpowiedzi z widoku (np. SpringMVC z warstwą widoku, PHP Yii z widokiem warstwa Java JSF / Facelets całkowicie zapisuje stan swoich komponentów na serwerze). Tak więc - istnieje wiele technologii, które proponują silniejsze sprzężenie i obiecują szybszy czas rozwoju i bardziej standardową ścieżkę. Więc - muszę być ostrożny, kiedy zaczynam korzystać z technologii w sposób, który nie jest powszechnie stosowany.
Jak rozumiem, wówczas całkowicie oddzielny frontend SPA zwykle wynika z konieczności korzystania z API stron trzecich. Ale czy taki dźwięk odsprzęgający, gdy backend i frontend są opracowywane przez jedną firmę?
Mój wybór technologii to obecnie Java / Spring backend i Angular2 / Web Components / Polymer for frontend - jeśli wolno mi to powiedzieć. Ale to nie ma znaczenia dla tego pytania, ponieważ pytanie dotyczy ogólnego projektu, a nie wyboru konkretnych technologii?
So - I must be cautious when starting to use technologies in manner which is not widely used.
Tak, musisz zachować ostrożność, jeśli planujesz używać młotka do smoły jedwabiu. Może to nie jest właściwe narzędzie.