Skalowalna aplikacja w php/symfony.

0

Cześć wszystkim!

Nurtujący mnie problem jest taki:

Poszukuję skalowalnego rozwiązania do postawienia aplikacji www, która w założeniu powinna bez problemu obsłużyć wielu użytkowników. Np. po roku > 50/100 tys, a później może i więcej [EDIT: chodzi o zarejestrowanych, aktywnych użytkowników, którzy regularnie odwiedzają serwis - dzieki @dzek69].

Powiązania między użytkownikami będą rozbudowane, do tego użytkownicy dodają obrazki (myślę nad połączeniem z jakimś systemem plików). Czy taki ORM jak Doctrine nadaje się do takich rozwiązań? Może lepiej darować sobie ORM'a? Choć nie powiem, jest to bardzo wygodne rozwiązanie.

Zastanawiam się w jaki sposób rozwiązać ten problem. Jakiego frameworka użyć, jakiej bazy danych? Może backend z api i Angular lub inny framework JS?

Czy php i symfony dadzą radę z obsłużeniem dużej aplikacji?

W późniejszym terminie chciałbym połączyć serwis z apką mobilną. Tu może pojawić się problem z bazą danych. Dane przechowywane przez apkę mobilną będą musiały trafiać do głównej bazy serwisu.

Już teraz wiem, że temat będzie bardzo rozbudowany i chciałbym zacząć go tworzyć w odpowiedni sposób, żeby po pół roku nie uznać, że jednak trzeba było to zrobić inaczej. ;)

Czy ktoś z Was pisał w php coś dużego? Jakiego frameworka użyliście, jaka baza i jak to się sprawuje?

0

Jeżeli planujesz apke mobilną to od razu lecisz na restapi, a we froncie angular/vue/itp Co do orm, nie wiem co tam w symfony jest ale w eloqent w laravelu jak ktoś umie go stosować to wygeneruje małą i odpowiednio zoptymalizowaną liczbę zapytań. Ważne jest cache np memcache i to w sumie tyle :)

0

50/100 tys. ale czego? odsłon dziennie? odsłon na godzinę? UU dziennie? UU na godzinę? a może odsłon na sekundę?

0

Ok. @mr_jaro - dzięki za odp.

Jaki framework JS, do serwisu restowego, na początek polecacie (nie pisałem w żadnym na razie)? Może czysty JS + jQuery?

0
ajgoron napisał(a):

Ok. @mr_jaro - dzięki za odp.

Jaki framework JS, do serwisu restowego, na początek polecacie (nie pisałem w żadnym na razie)? Może czysty JS + jQuery?

A chcesz to zrobić porządnie czy za jakiś czas przepisywać na nowo? Bo jeśli porządnie to nie myśl o jquery. Osobiście proponuje vue bo jest bardzo proste i do opanowania w 2 dni.

0

Przecież jQuery jest do DOM, a nie do komunikowania się z rest api.
@mr_jaro Co jest takiego złego w jQuery? Czy chodzi raczej o to, że jQuery nic poza uproszczonym AJAXem nie oferuje, a są frameworki właśnie do komunikacji z api.

0
Krwawy Lew napisał(a):

Przecież jQuery jest do DOM, a nie do komunikowania się z rest api.
@mr_jaro Co jest takiego złego w jQuery? Czy chodzi raczej o to, że jQuery nic poza uproszczonym AJAXem nie oferuje, a są frameworki właśnie do komunikacji z api.

Dokładnie. Nie mam nic do jquery, po prostu robiłem kiedyś komunikacje z rest api w jquery bo taki był wymóg a potem projekty we vue lub angularze i to jest niebo a ziemia jeśli chodzi komunikacje, przetwarzanie i wyświetlanie danych pobranych z api. Z jquery jak najbardziej korzystam i się sprawdza tam gdzie backend generuje front.

2

jquery to już przeszłość, kiedyś mega, dziś mało warte. Trochę lepsza składnia jak natywne metody to trochę mało dziś. Korzystając z małej libki jak Bliss.js ma się szybsza, natywne zbudowana appke. Do ajaxa jest fetch api, sa polyfille dla opornych przeglądarek.

0

Dzięki za odpowiedzi. W czytałem już dziś co nieco odnośnie vue. Wygląda ciekawie więc na pewno zainteresuję się bliżej.

Czyli duet rest symfony 2 plus vue.js powinno dać radę, żeby w przyszłości dało się bez problemu zrobić apkę mobilną?

A jak wygląda wydajność vue? Czytałem, że jest dużo lżejszy od angulara. Znajmy pisuje w angularze i mówił, że przy większych projektach jest wolny. Prawda to czy poznał go jeszcze niedostatecznie?

2

Angular jest dosyć powolny, ale posiada różne mechanizmy optymalizacji, z których mało kto rozsądnie korzysta.
Vue nie znam, angulara odradzam - bardzo łatwo pisać w nim kod bylejaki bądź tragiczny - często takie kawałki kodu znajdziesz w necie jako jedyne słuszne rozwiązanie [!], w dodatku bardziej skomplikowane problemy potrafią rodzić wiele rozwiązań, ale żadne z nich nie jest eleganckie. Nie mówię o Angular2, którego znam szczątkowo, ale też wygląda, że powymyślali trochę.

React jest szybki i masz dodatkową kontrolę nad wydajnością. Skoro chcesz pisać appkę mobilną - to możesz skorzystać z React Native i stworzyć aplikację, która potem pracuje jako natywna aplikacja (wydajność!) z natywnymi elementami OS kontrolowanymi z poziomu JS - sporo kodu będziesz mógł używać w obu projektach.

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