Jak dobrze podzielić aplikację.

0

Witam

Czy aplikacje także powinny być robione w myśl zasady SRP?

Np jeżeli aplikacja ma za zadanie udostępniać Api w świat to:

a) W myśl ww zasady - tamta apka jest do api, do wrzucania danych zrobić drugą, co będzie przez udostępnione api wrzucać dane z różnych źródeł (XML, JSON)
b) Doczepić do głównej aplikacji moduł, który przyjmuje te dane i wrzuca je bezpośrednio do środka

1

nie bardzo rozumiem, chodzi ci o dzielenie całej aplikacji na mniejsze tak, że np. jeden jar zawiera RESTy, drugi jar operuje na bazie, w trzecim trzymam konwertery danych na format (obiekt->xml, obiekt->json itd)?

jeśli tak to raczej się tak nie robi, a przynajmniej ja się nie spotkałem
możesz pakować jary w myśl single responsibility, ale w całość która robi konkretną rzecz, albo jary które są używane w wielu miejscach i zawierają jakąś konkretną logikę, ale żeby dzielić jak napisałem wyżej to się nie spotkałem

keep it simple, stupid

0

Ja piszę w C#, ale bardziej chodziło mi o niezależne aplikacje - tą z api hostuję na IIS - i teraz pytanie, czy zrobić w niej moduł do wrzucania tych danych, czy zrobić inną aplikację. To będzie apka do migracji ze starego api na nowe. Zacząłem już ją pisać jako osobną aplikację, i nie wiem czy to jest dobra droga.

Framework który używam do tworzenia api ładnie obsługuje błędy itp, jakbym zrobił wrzucanie bezpośrednie musiałbym sam się tym zająć.

1

opisz dokładniej chcesz zrobić bo troche nie rozumiem :P masz aplikacje która już działa i chcesz wysyłać jakieś requesty do niej z XMLem albo JSONem zawartym w body requesta i chciałbyś żeby aplikacja umiała to obsłużyć?

jeśli tak to ja bym po prostu zmodyfikował tą aplikacje która już działa żeby obsługiwała te formaty ;) jeśli nie mozesz tego jednak zrobić to nie chcąc klepać od początku możesz zróbić warstwe coś w stylu proxy gdzie bedziesz postował XMLe i JSONy, a ta warstwa bedzie te requesty transformowała na format przyjazny już działąjącej aplikacji i dopiero ją odpytywała
lub
jeśli możliwe jest dorzucanie modułów do juz istniejącej apki to czemu nie; sam obecnie jestem w projekcie gdzie rozwiązujemy problem doczepianych modułów - ale to java więc technologicznie ci wiele nie podpowiem

0

Mam aplikację na wersji 2 pewnej biblioteki - pech chciał, że na wersję 3 trzeba było ją całkiem przepisać (przy okazji kod jest w nowej wersji bardziej przejrzysty, jest convention over configuration).

Jest napisana aplikacja z mocno zrefaktoryzowaną strukturą na nowej wersji biblioteki - trzeba użyć toola do migracji, który wprowadzi do niej dane, które są w starej bazie - te dane mogą być w różnych formatach (akurat zrobiłem to na abstrakcji, więc nie mam problemów w dodawaniem źródeł, na razie jest XML z nową strukturą), i ten tool powinien być osobną aplikacją, czy powinien być połączony z aplikacją hostującą nowe api.</del>

Sorka, nie odświeżyłem.

1

odnośnie skreslonego:
jesli chodzi tylko o przeniesienie danych ze starej wersji, ktore trzymane sa w nieobslugiwanych/nie chcianych juz przez nowa wersje biblioteki formatach to chyba nawet nie musi stać cała aplikacja a wystarczy skrypt który wezme stare dane, przefomatuje na dobry format i puści do nowej apki

jeśli zaś nie chodzi o jednorazową akcje to chyba to samo ale jako apka standalone w stylu proxy jak pisałem wyżej :P
hmm.. pomyślałem, ze skoro apke robisz w wersji 3 od nowa to: 1. jeśli ten "eksport danych" jest jednorazowy - to skrypcik jak wyżej 2. jeśli ten eksport jest wielorazowy i w przyszłości również bedzie istniała sytuacja ze trzeba bedzie go zrobić - wtedy dostarczyc to razem z całą nową apką jako API (czyli tez proxy ale w aplikacji, nie osobno)

0

To się dopytam o co dokładnie chodzi w poniedziałek i zrobię :P
Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1