Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak oni to robią? Na przykładzie wp.pl
Forum PHP.pl > Inne > Hydepark
parzol
Witajcie.

Zastanawia mnie jedna sprawa pod kątem optymalizacji budowy serwisu WWW. Weźmy przykładowo ten link. Przechodząc na sam dół do komentarzy mamy możliwość kliknięcia (bez logowania!) w łapkę do góry albo w dół. Wszystko jasne i proste. Pytanie jaki najlepiej zastosować w tym wypadku mechanizm, aby zapamiętać że dany user kliknął w konkretny już komentarz i oddał swój cenny głos (który oddać można tylko raz). Czy zastosowanie tutaj samego cookies ma sens? Czy lepiej oprzeć to na bazie danych (co z wydajnością?) czy też może jakaś hybryda? Jestem ciekaw waszych opinii i rad na ten temat.

Pozdrawiam.
Damonsson
Standardowa odpowiedź: To zależy.

Tutaj są wykorzystane tylko cookies. Jak zależy Ci na unikalnych głosach, musisz to rozbudować, sprawdzanie ip, przeglądarki i innych głupot które składają się na unikalność użytkownika. Musisz to trzymać w bazie, bo cookies każdy może usunąć. Jest jeszcze coś takiego jak everCookies.
parzol
Cytat(Damonsson @ 20.12.2012, 22:19:31 ) *
Tutaj są wykorzystane tylko cookies. Jak zależy Ci na unikalnych głosach, musisz to rozbudować, sprawdzanie ip, przeglądarki i innych głupot które składają się na unikalność użytkownika. Musisz to trzymać w bazie, bo cookies każdy może usunąć.


Skąd wiesz, że tutaj tylko cookies jest? Nie zależy mi strasznie na tym by to było super bezpieczne więc kwestia tych paru % osób, które usuną cookies by zagłosować raz jeszcze mi nie przeszkadza. Bardziej ważna jest dla mnie wydajność. Takie wp.pl ma pewnie masę userów w jednym czasie i pytanie co z takimi co oddają masę głosów. Czy wtedy cookies nie będzie wąskim gardłem?
Damonsson
Cytat
kwestia tych paru % osób, które usuną cookies by zagłosować raz jeszcze mi nie przeszkadza

Więc możesz spokojnie stosować samo cookies. Nie, cookies nie będzie wąskim gardłem aplikacji.
herakles007a
Cytat(parzol @ 20.12.2012, 22:30:43 ) *
Skąd wiesz, że tutaj tylko cookies jest? Nie zależy mi strasznie na tym by to było super bezpieczne więc kwestia tych paru % osób, które usuną cookies by zagłosować raz jeszcze mi nie przeszkadza. Bardziej ważna jest dla mnie wydajność. Takie wp.pl ma pewnie masę userów w jednym czasie i pytanie co z takimi co oddają masę głosów. Czy wtedy cookies nie będzie wąskim gardłem?


A jak kto wyłączy sobie ciasteczka i kliknie tysiąc razy, albo i 10 tyś. Nie ma letko!
Pilsener
Używaj tego, czego potrzebujesz

1 Linia - użytkownik nie kliknie dwa razy, bo jest mądry i gra fair businesssmiley.png
2 Linia - JS - mało kto wyłącza lub preparuje
3 Linia - ciacha
4 Linia - IP
5 Linia - IP + wszystko, co wysyła user
6 Linia - konto w serwisie nerdsmiley.png
7 Linia - głosowanie przez SMS Lkingsmiley.png
ano
Cookies + trzeba oczywiście po stronie backendu trzymać info, że ten ktoś zagłosował - najlepiej jakiś memcache/redis.
Więc prawdopodobnie cały proces głosowania odbywa się za pomocą:
Cookies, php (lub inny język), mysql (lub inna baza), memcached (lub inny "RAM")
daniel1302
Tylko takim wielkim stronom ja WP czy Onet nie zależy na wydajności kodu jak np tobie, bo różnica jest taka, że oni mogą pozwolić sobie na zapłacenie 200 zł czy nawet 2000 zł więcej za dodatkowe procesory czy ram do ich strony.

Np daj sobie traceroute(tracert w windows) do różnych adresów IP onetu. I zauważ, że oni na wejściu serwisu mają jakiś router który(tak myślę) sprawdza który komputer ma najmniejsze obciązenie w danym czasie i do niego cię przerzuca. A mają pewnie 1 albo zdublowane miejsce z danymi i bazą.
O$iek
Przy tego typu serwisie na pewno korzystają z load balancingu, mają ludzi, którzy są odpowiedzialni za optymalizację, itd., itp. Mam tylko prośbę, żeby nie opowiadać jakichś dziwnych historii, bo potem ktoś o zerowej wiedzy, to przeczyta i zaczyna puszczać dalej w świat.
ano
@Daniel
Ad 1.
Jesteś oczywiście w błędzie - zarówno małym jak i dużym serwisom tak samo zależy na niskopoziomowej wydajności kodu. (A przynajmniej powinno!)
Polecam poczytać artykuły z www.whoisusing.it, które pomogą Ci się dowiedzieć "kto z czego korzysta"
Przykładowo, jedni z "największych":
http://whoisusing.it/website/facebook
http://whoisusing.it/website/youtube

Ad 2.
Myślę, że architektura fizyczna tych serwisów nie jest w zakresie pytania @Parzol'a
ale poczytaj Danielu to: http://en.wikipedia.org/wiki/Load_balancing_(computing) myślę, że powinno Ci to pomóc "wejść" w te tematy :-)
parzol
A może po prostu będę to obsługiwał za pomocą MySQL'a? Dodatkowa tabela, która zapisuje zalogowanych i niezalogowanych (po IP + przeglądarce) użytkowników wraz z ID komentarza. I potem sprawdzanie czy był oddany głos czy też nie. Co sądzicie o takim rozwiązaniu? Ma to sens czy będzie wąskim gardłem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.