Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Hydepark _ W czym napisać serwis?

Napisany przez: parzol 1.02.2016, 22:01:11

Witam!

Zakładamy budowę serwisu internetowego z treścią zawierającą duże ilości grafik, tekstów i klipów YouTube (dajmy na to za przykład joemonster.org). Z założenia serwis ma generować jak największy ruch, którego przyrostu nie jesteśmy jednak pewni. Serwis ma być możliwie lekki od strony frontendu, ale wyposażony w różne mechanizmy AJAX'owe (np. dodawanie komentarzy).

Pytanie do dyskusji: w czym (jak) to wykonać (napisać) aby zachować możliwie największa jakość i wydajność? Czysty PHP? Framework? Jeżeli tak to jaki i dlaczego on?

Jestem ciekaw waszych opinii w tym temacie i liczę na konstruktywną wymianę myśli! Lkingsmiley.png

Napisany przez: markonix 1.02.2016, 22:04:55

Każdy dobry framework, który się chwali wydajnością.

Napisany przez: markuz 1.02.2016, 22:21:21

Zdecydowanie framework, najlepiej taki którego używałeś do tej pory - jeżeli nie używałeś żadnego, wybierz sobie 1 i zacznij w nim pisać smile.gif
Nie pytaj jaki i dlaczego bo tego w sieci jest pełno, a tak naprawde to nie ma wielkiego znaczenia.
Wybierz sobie taki który ma duże community, dużo wtyczek, dobrą dokumentacje i który Ci się spodoba.

Napisany przez: ohm 1.02.2016, 22:27:14

Jeśli to ma być prosty serwis, to może jakiś microframework?

Napisany przez: com 2.02.2016, 00:36:58

ohm no to Symfony 2.8 biggrin.gif

i +1 dla markuz smile.gif

Napisany przez: mrc 2.02.2016, 06:19:07

A ja doradziłbym Symfony 3.1. Trochę trzeba się przestawić z pisania (klepania) wszystkiego w kontrolerze (jak to zwykło się w niektórych frameworkach), ale za to można poznać zupełnie inne podejście do aplikacji - bardziej warstwowe. Sam piszę teraz w tym frameworku, super sprawa. W czystym PHP nie opłaca się już dzisiaj pisać.

Napisany przez: BigPig 2.02.2016, 08:12:34

Czysty PHP odpada. Symfony jest fajne, dosyć trudne, ale znajdziesz masę fajnych materiałów do niego. Jedyny minus to to, że z wydajnością jest już trochę gorzej. Przy dużym ruchu przydałby się jakiś sensowny cache. Najwydajniejszy byłby chyba Phalcon, ale odnośnie łatwości pisania w nim już się nie wypowiem wink.gif

Napisany przez: parzol 2.02.2016, 08:51:50

Symfony spoko, ale wydaje się bardzo ciężkie. Cache swoją drogą, ale pytanie jaki więc framework wybrać. Wiem, że ile ludzi tyle opinii. Zastanawiam się nad Kohana 2 lub K3. Co Wy na to?

Napisany przez: mrc 2.02.2016, 10:59:59

Symfony ma fajny cache, dużo w niego wsadzają.

Napisany przez: ohm 2.02.2016, 11:33:06

Cytat(parzol @ 2.02.2016, 08:51:50 ) *
Symfony spoko, ale wydaje się bardzo ciężkie.

Możesz użyć symfony jako microframework, możesz użyć też silexa, albo same wybrane bundle z symfony wink.gif


Napisany przez: parzol 2.02.2016, 17:26:41

Dobra. Dzięki wszystkim za rady. Teraz druga odsłona pytania. Serwis posiadać ma możliwość zostawiania pod zdjęciami komentarzy. Zakładamy, że userów jest dużo. Wszystko w czasie rzeczywistym (coś jak FB). Wydajne rozwiązanie do takiego mechanizmu to...? AJAX zapcha się dość szybko. WebSocket?

Napisany przez: buliq 2.02.2016, 17:31:23

ajax + loadbalancer/kolejka? ws może ci się tak samo szybko zapchać, zobacz czy twoja konfiguracja apache2/nginx jest zoptymalizowana pod duże ilości requestów.
Zdefiniuj dużo

Napisany przez: parzol 2.02.2016, 17:59:19

DUŻO => 500-1000 osób jednocześnie

Napisany przez: mrc 2.02.2016, 19:20:23

@parzol

Zainstaluj na serwerze RabbitMQ albo inny system kolejkowy i puść żądania przez niego. Oprócz tego jeżeli chcesz puszczać kilka żądań z jednej przeglądarki per minutę, to moim zdaniem lepsze są websockety. Ajax za każdym razem musi nawiązać połączenie, zrobić handshake, a websockety to robią jeden raz. Później wymieniają tylko dane/ramki. Ajax moim zdaniem jest łatwiejszy do obsłużenia i utrzymania w przypadku pojedynczych żądań. Sam zastanów się, co będzie lepsze w Twojej sytuacji.

Napisany przez: com 2.02.2016, 21:06:52

Phalcon ma wydajne core, ale to nie czyni od razu apki wydajną.

mrc owszem 3.1 ale od 2.8 mamy możliwość zrobić w Symfony z core microfw, stąd nawiązanie do 2.8 biggrin.gif

parzol A fb używa do tego server push, skoro już do niego nawiązujesz wink.gif

Napisany przez: ZenekN 2.02.2016, 22:52:26

cakePHP dziecinnie prosty smile.gif

Napisany przez: Diablos 3.02.2016, 09:23:59

Dzisiejsze serwisy interntowe to juz nie tylko PHP... to cale machinerie... wykorzystujace mase narzedzi.

W czym napisac serwis?

Zawsze rozbrajaja mnie takie pytania. Przeciez patrzac kategoriami wydajnosci to nie ma najmniejszego znaczenia, i tak bez cache to bedzie za wolne, niezaleznie czy bedzie to Zend, Symfony, Kohana czy PHP bez frameworka. Przeciez przy takich projektach i tak najwiekszym problemem jest baza danych... Tak samo obrazki... wieksza role odgrywa storage i cdn niz framework backendu.

Framework vs czysty PHP?
Przeciez framework to tez czysty php... to co daje framework to, jak sama nazwa wskazuje pewne ramy pracy usystematyzowane w taki sposob ze ulatwiaja prace przy duzym projekcie kilku programistom na raz. Czesto frameworki dostarczaja juz gotowe biblioteki do roznych rzeczy, ale w dobie composera i masy bibliotek zewnetrznych do prawie wszystkiego nie ma to zadnego znaczenia.
Powinienes taki framework wybrac zeby Ci sie wygodnie tworzylo.



Napisany przez: Dejmien_85 4.02.2016, 09:33:05

Cytat(parzol @ 1.02.2016, 22:01:11 ) *
Z założenia serwis ma generować jak największy ruch, którego przyrostu nie jesteśmy jednak pewni.


Czyli standard - każdy zastanawia się nad tym, jak ogarnie MILIONY ludzi, którzy odwiedzą jego serwis. Myśli nad tym tygodniami, tworzy serwis myśląc o optymalizacji, uruchamia serwis i później patrzy... i jedyne co widzi to wiejący na pustyni wiatr i przesypujący piasek z jednej wydmy na drugą.

Ja Ci powiem jak wyglądał mój pierwszy serwis. Został stworzony, ruch wynosił równe 0 - nikt o nim nie wiedział. Później zacząłem myśleć co zrobić, aby ludzie się o nim dowiedzieli i zechcieli zostać na chwilę. Zacząłem ściągać ruch (z Facebooka, Googli), zacząłem pozycjonowanie w Google, na jednym słowie kluczowym był na pierwszej stronie Google, chwilowo na drugim miejscu - ale to dlatego, że słowo kluczowe nie było zbyt popularne.

Wnioski - najwięcej unikatowych odwiedzin dziennie to 50-80, przy czym dniami i nocami siedziałem nad Facebookiem (Fanpage) i pisałem artykuły, aby go wypozycjonować. Po czasie serwis uznałem za niewypał i skróciłem jego życie (to było jakieś 4 lata temu), skupiając się na czymś innym. Później stworzyłem inny serwis, tym razem do "warsztatu marketingowego" dodałem spamowanie "wykopu" i YouTube - na YT wrzuciłem jakieś materiały, niektóre jedno nagranie było na 2-3 miejscu w wyszukiwarce na wybranym przeze mnie słowie kluczowym. Wynik - gorzej niż w poprzednim serwisie. biggrin.gif

Kolejny serwis był już serwisem typowo informacyjnym, stworzyłem go dla swojego klienta (czyli zrobiłem, oddałem i zapomniałem - to nie moja sprawa), oczywiście też myślałem o optymalizacji. Klient podobnież miał go reklamować itd. Dzisiaj mija już kilka lat od jego założenia, klient coś tam kombinował z reklamą, ale... po kilku latach na serwisie wieją głównie wiatry. Co prawda coś się tam zaczęło rozkręcać, ale liczba zarejestrowanych użytkowników nie przekroczyła 200. A facet go ciągle prowadzi i inwestuje w pisanie artykułów itd.

I po tych wszystkich przygodach przypominały mi się teksty starych, poczciwych programistów, którzy w kółko powtarzają, że o optymalizacji myśli się na samym końcu, bo wcześniej nie warto, ponieważ można tego problemu NIGDY nie spotkać (większosć serwisów to niewypały, niestety).

Jeśli nie masz pojęcia o marketingu, albo ludzi od tego, bądź kasy na reklamę, wtedy o 500-1000 użytkownikach siedzących w jednej chwili na serwisie możesz jedynie pomarzyć.

Prawda boli, samemu przez to przechodziłem.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)