Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [kilka pytań] Duży "serwis społecznościowy"
Forum PHP.pl > Inne > Hydepark
michalkjp
Mam ciekawą koncepcję na tzw. "serwis społecznościowy" - szczegółów nie będę zdradzał.

Chciałbym się dowiedzieć paru rzeczy:

1 Czy na początku bardziej się opłaca skorzystać z infrastruktury jakiejś firmy oferującej profesjonalny hosting, czy raczej zainwestować we własny sprzęt i trzymać go u jakiegoś providera z szybkim łączem? Jakieś inne rozwiązania?

2 Czy lepiej jest rzeźbić kod od początku do końca samemu, czy skorzystać z jakiegoś popularnego frameworka (nie mam jeszcze dużego doświadczenia w żadnym)?

3 Jaki byłby najlepszy mechanizm lokalizacji - w przyszłości serwis ma być dostępny w wielu językach (na początku w polskim i angielskim).

4 Czy SEPostgreSQL będzie dobrą bazą do czegoś większego?

5 Jakieś ogólne wskazówki?
blooregard
1. Jeśli masz kasę, wal na profesjonalny hosting. 

2. Mylisz pojęcia. Framework niczego nie załatwi, a jeśli masz blade pojęcie o php, to tym bardziej. Chodziło Ci chyba o jakiś darmowy skrypt typu osCommerce dla sklepu internetowego czy phpbb dla forum. Ale dla społecznościówki czy cos takiego istnieje - nie wiem, nie zetknąłem się, ale w sumie to i nie szukałem, bo nie miałem takiej potrzeby. Nie mam ambicji stworzyć drugiej nk czy innego myspace'a smile.gif

3. Mechanizmów lokalizacji jest tyle, ilu programistów piszących serwisy wielojęzyczne - każdy ma swoje metody (ja np. treści dynamiczne - umożliwiam ich edycję w panelu administracyjnym i zapisuję do bazy wiążąc je po id języka z wybranym na stronie - to tak w uproszczeniu; treści statyczne trzymam w plikach, np. pl_lang.php w formie tablic asocjacyjnych w fomacie klucz=>wartość_w_wybranym_języku i też inkluduję w zależności o klikniętego języka)

4. PostgreSQL, ew. Oracle. MySQL przy dużym ruchu i wielu tysiącach rekordów może dostać "zadyszki", ale to też kwestia odpowiedniej konstrukcji zapytań i optymalizacji samej bazy

5. Ogólna wskazówka - serwisu społecznościowego nie napiszesz w dwa zimowe wieczory. Jeśli chcesz szybko i łatwo powtórzyć wyczyn panów z nk - zapomnij. Poza tym  - ile jeszcze serwisów społecznościowych ma szansę przebicia? Wymyslisz coś nowego, oryginalnego? Nie sądze. Powtórzysz kolejny schemat typu: zarejestruj->szukaj znajomych->dodaj do znajomych->wyślij zaproszenie->wstaw fotkę z wakacji/imprezy/szkolnej wycieczki/imienin u cioci. Nuda. 

Postaraj się zainwestować czas, siły i umiejętności w coś naprawdę oryginalnego.Powielanie znanych, oklepanych pomysłów to ie jest dobry pomysł na sukces.

 
michalkjp
Cytat(blooregard @ 5.10.2008, 20:43:18 ) *
2. Mylisz pojęcia. Framework niczego nie załatwi, a jeśli masz blade pojęcie o php, to tym bardziej. Chodziło Ci chyba o jakiś darmowy skrypt typu osCommerce dla sklepu internetowego czy phpbb dla forum. Ale dla społecznościówki czy cos takiego istnieje - nie wiem, nie zetknąłem się, ale w sumie to i nie szukałem, bo nie miałem takiej potrzeby. Nie mam ambicji stworzyć drugiej nk czy innego myspace'a smile.gif


Z PHP sobie radzę, frameworków takich jak Symphony czy Cake jeszcze nie opanowałem.


Cytat(blooregard @ 5.10.2008, 20:43:18 ) *
5. Ogólna wskazówka - serwisu społecznościowego nie napiszesz w dwa zimowe wieczory.


Zdaję sobie z tego sprawę smile.gif


Cytat(blooregard @ 5.10.2008, 20:43:18 ) *
Wymyslisz coś nowego, oryginalnego? Nie sądze.


Nie sądź aby nie być sądzonym – czy jakoś tak winksmiley.jpg

Ale masz rację chodzi o coś zupełnie innego.


Cytat(blooregard @ 5.10.2008, 20:43:18 ) *
Powtórzysz kolejny schemat typu: zarejestruj->szukaj znajomych->dodaj do znajomych->wyślij zaproszenie->wstaw fotkę z wakacji/imprezy/szkolnej wycieczki/imienin u cioci. Nuda.

Też tak uważam.



Cytat(blooregard @ 5.10.2008, 20:43:18 ) *
Postaraj się zainwestować czas, siły i umiejętności w coś naprawdę oryginalnego.Powielanie znanych, oklepanych pomysłów to ie jest dobry pomysł na sukces.

Mam trochę inne podejście do tematu, bo nie korzystam z tych serwisów – w obecnej formie mnie nie interesują.






Dzięki za porady! smile.gif
Riklaunim
Cytat(michalkjp @ 5.10.2008, 18:28:27 ) *
1 Czy na początku bardziej się opłaca skorzystać z infrastruktury jakiejś firmy oferującej profesjonalny hosting, czy raczej zainwestować we własny sprzęt i trzymać go u jakiegoś providera z szybkim łączem? Jakieś inne rozwiązania?

Zaprojektuj aplikację tak żeby nie wymagała przebudowy gdy np. z jednego serwera aplikacyjnego zrobi się 5 smile.gif itd. Na start dobry serwer dedykowany, niekoniecznie najdroższy. Jeżeli pomysł ruszy to albo dokupisz serwery dedykowane, albo zainwestujesz we własne maszyny...

Cytat(michalkjp @ 5.10.2008, 18:28:27 ) *
2 Czy lepiej jest rzeźbić kod od początku do końca samemu, czy skorzystać z jakiegoś popularnego frameworka (nie mam jeszcze dużego doświadczenia w żadnym)?

I tak czeka cię organizacja kodu. Czy to za pomocą własnego, czy innego frameworka. Obsługa replikacji baz danych, keszowanie, wyszukiwanie itd.

Cytat(michalkjp @ 5.10.2008, 18:28:27 ) *
3 Jaki byłby najlepszy mechanizm lokalizacji - w przyszłości serwis ma być dostępny w wielu językach (na początku w polskim i angielskim).

Na Polskę najlepiej mieć serwery w Europie.
Cytat(michalkjp @ 5.10.2008, 18:28:27 ) *
4 Czy SEPostgreSQL będzie dobrą bazą do czegoś większego?

Zarówno MySQL jak i PostgreSQL obsługują replikację, partycjonowanie danych itd. Jest Sphinx do wyszukiwania, dla Postgresa także openFTS.

Cytat(michalkjp @ 5.10.2008, 18:28:27 ) *
5 Jakieś ogólne wskazówki?

Budowa dużego serwisu to zajęcie dla kilku programistów, w tym koniecznie jednego od usability i front endu smile.gif A jak chcesz lać na sprawy serwerowe zainteresuj się Google App Engine - jak serwis ci urośnie i przekroczysz limity, to płacisz za wyższe i jedziesz dalej... lecz masz nierelacyjną bazę danych winksmiley.jpg
blooregard
Cytat
Na Polskę najlepiej mieć serwery w Europie.


Koledze chyba chodziło o lokalizację w sensie serwisu wielojęzykowego ? Czy o lokalizację fizyczną serwera ?

Cytat
I tak czeka cię organizacja kodu. Czy to za pomocą własnego, czy innego frameworka. Obsługa replikacji baz danych, keszowanie, wyszukiwanie itd.

No jak już tak radzimy - to raczej gotowy framework (Zend na przykład - wiele pracy chłopcy włozyli w niego smile.gif , zal nie skorzystać )
michalkjp
Cytat(Riklaunim @ 5.10.2008, 22:02:15 ) *
I tak czeka cię organizacja kodu. Czy to za pomocą własnego, czy innego frameworka. Obsługa replikacji baz danych, keszowanie, wyszukiwanie itd.

Zdaję sobie z tego sprawę. Jednak nie wiem, czy bardziej opłaca się napisać jakiś moduł w postaci zwykłej klasy czy przy użyciu frameworka. Na przykład na napisanie formularza będę musiał poświęcić trochę czasu, ale będzie on później chodził szybko. Przy frameworkach działających w oparciu o architekturę MVC napisanie formularza wydaje się być bardzo proste i szybkie. Ale jak później z szybkością jego działania? Czy frameworki mają duże narzuty?


Cytat(Riklaunim @ 5.10.2008, 22:02:15 ) *
Na Polskę najlepiej mieć serwery w Europie.

Nie chodziło mi o fizyczną lokalizację serwerów, tylko o wersje językowe portalu smile.gif


Cytat(Riklaunim @ 5.10.2008, 22:02:15 ) *
Budowa dużego serwisu to zajęcie dla kilku programistów, w tym koniecznie jednego od usability i front endu smile.gif

Na początku jak zwykle chodzi o zachowanie tajemnicy, więc podstawy chciałbym stworzyć sam. Później zwrócę się do kolegów, którzy mają większe doświadczenie w web devel i wdrażaniu.

Cytat(Riklaunim @ 5.10.2008, 22:02:15 ) *
A jak chcesz lać na sprawy serwerowe zainteresuj się Google App Engine - jak serwis ci urośnie i przekroczysz limity, to płacisz za wyższe i jedziesz dalej... lecz masz nierelacyjną bazę danych winksmiley.jpg


Bardzo lubię Pythona – napisałem w nim kilka "klasycznych" programów i nie miałem powodów do narzekania na ten język. Jednak nie wiem, czy później znajdę odpowiednich ludzi wśród znajomych do pomocy.

Propozycja naprawdę fajna i kusząca – będę się musiał temu dokładnie przyjrzeć.

Dzięki za pomoc!
kwiateusz
frameworki daja ogromy narzut smile.gif ale wystarczy dorzucic maszne lub 2 ew swietnie rozplanowac cachowane i duzej roznicy juz nie ma, a jak bedziesz chcial kogos zatrudnic to nie bedzie sie musiał tygodniami wdrazac w kod tylko w miare szybko znajac dany FW siadzie i zacznie pisac smile.gif
michalkjp
Cytat(blooregard @ 5.10.2008, 22:13:29 ) *
No jak już tak radzimy - to raczej gotowy framework (Zend na przykład - wiele pracy chłopcy włozyli w niego smile.gif , zal nie skorzystać )


Mi raczej chodziło o to czy korzystać z frameworka czy nie i tworzyć własną bibliotekę.

Wybór frameworka jest trudny – jak zwykle zależałoby mi na:

  • bezpieczeństwie
  • szybkości działania
Każdy framework jest tak reklamowany – nikt nie napisze, że jego dzieło jest wolne jak objuczony muł i dziurawe ja ser szwajcarski. Dlatego będę musiał przeprowadzić dokładne rozeznanie, jeśli zdecyduję się na coś takiego.

Z drugiej strony niektórzy twierdzą, że rapid development nie ma nic wspólnego z jakością. Dlatego zależy mi na wielu opiniach i argumentach za i przeciw gotowym frameworkom przy takich projektach.
kwiateusz
na + frameworkow masz to ze nie wymyslasz kola od nowa, masz wszystko co potrzebne, a jak nie masz w standardzie to ktos to już pewnie dopisał, dodatkowo nad tym pracują ludzie ktorzy znając sie an rzeczy, taki framework testują setki tysiecy uzytkownikow wiec jak tylko znajdzie sie bug dot. bezpieczenstwa jest łatany. Tu nie chodzi tylko zeby pisac jak najmniej, ale miec sprawdzone przez wielu narzedzia ktore my pewnie pisalibysmy kilka tygodni, a i tak nie wiadomo jakby to wyszło

co do dzialania to jednak czesto gesto maja duzo zbednych klas ladowanych wiec albo cache, albo dodatkowe maszyny, albo robienie wersji lite frameworka (tu wylaczenie ladowania zbednej klasy, tam wyciecie czegos etc.), ewentualnie polaczenie metod smile.gif
Cysiaczek
Szybkość działania? Malujesz klasy wraz z relacjami w UML, przekładasz to na modele Propela, generujesz kod. Poprawiasz interfejsy na zgodne z projektem i zdrowym rozsądkiem i masz http://img134.imageshack.us/img134/9996/bshh11yv3.png
Sama klasa BasesfGuardUserProfile to 3500 linii kodu
Znalazłem i przetestowałem plugin forum i kilka innych użytecznych narzędzi, które wykorzystałem lub zainstalowałem do późniejszego wykorzystania. Obecnie mam w bazie 21 tabel (razem z forum). Planuję jeszcze raz tyle.
Gdybym miał to pisać ręcznie, od podstaw, to bym szału dostał snitch.gif

Na koniec wspomnę, że to wszystko machnąłem wczoraj - w Symfony smile.gif

Bynajmniej, nie skończyłem pracy, a dopiero ją zacząłem, lecz teraz skupię się na ważniejszych rzeczach - kontrolerach i widokach i zaprzęgnięciu tego do współpracy.
Na rozruch potrzebny jest mały serwer dzielony, potem konieczny jest dedyk.

Pozdrawiam.
michalkjp
Cytat(kwiateusz @ 5.10.2008, 23:14:17 ) *
na + frameworkow masz to ze nie wymyslasz kola od nowa, masz wszystko co potrzebne, a jak nie masz w standardzie to ktos to już pewnie dopisał, dodatkowo nad tym pracują ludzie ktorzy znając sie an rzeczy, taki framework testują setki tysiecy uzytkownikow wiec jak tylko znajdzie sie bug dot. bezpieczenstwa jest łatany. Tu nie chodzi tylko zeby pisac jak najmniej, ale miec sprawdzone przez wielu narzedzia ktore my pewnie pisalibysmy kilka tygodni, a i tak nie wiadomo jakby to wyszło

To na pewno jest duży plus, tylko ta szybkość działania jak pisałeś wcześniej...

Cytat(kwiateusz @ 5.10.2008, 23:14:17 ) *
co do dzialania to jednak czesto gesto maja duzo zbednych klas ladowanych wiec albo cache, albo dodatkowe maszyny, albo robienie wersji lite frameworka (tu wylaczenie ladowania zbednej klasy, tam wyciecie czegos etc.), ewentualnie polaczenie metod smile.gif

To jest dobre rozwiązanie, tylko wymaga bardzo dobrej znajomości danego frameworka. Tworzenie takiego forka kodu na własne potrzeby obarczone jest też dużym nakładem pracy jeśli chodzi o przenoszenie poprawek z kodu bazowego.



(dużo zależy od szybkości rozwoju konkretnej platformy)







Cytat(Cysiaczek @ 5.10.2008, 23:32:22 ) *
Na koniec wspomnę, że to wszystko machnąłem wczoraj - w Symfony smile.gif

Tempo pracy z użyciem frameworków jest naprawdę imponujące (jeśli ktoś dobrze zna dane rozwiązanie – ja muszę się w coś wdrożyć).

Dziękuję wszystkim za wskazówki i porady – prześpię się jeszcze z problemem i podejmę decyzję odnośnie skorzystania z jakiegoś frameworka. (Jutro pewnie będę szukał najlepszego dostępnego rozwiązania winksmiley.jpg).

Pozdrawiam.



Ok, przyjrzałem się trzem popularnym frameworkom Cake, Symfony, Zend (Google App Engine jest kuszącą ofertą, ale z powodu tego, że na razie jest to preview i nie wiadomo jak to później będzie działało – jakie będą możliwości i koszty, to na razie rezygnuję z tego pomysłu).

Każdy z tych frameworków ma swoje zalety. Jeśli chodzi o bezpieczeństwo, to Symfony wydaje się być najlepsze – nie znalazłem informacji o żadnej wpadce w bazach CVE, NVD, SecurityFocus czy Secuni. Dwa pozostałe frameworki odnotowały wpadki, ale w porównaniu z innym oprogramowaniem jest ich naprawdę mało (dwie Cake i jedną Zend Framework), więc się tym nie przejmuje. Wszystkie trzy frameworki utrzymują wysoką jakość jeśli chodzi o tę kwestię.

Możliwości też mają bardzo zbliżone.

Nie udało mi się znaleźć żadnych rzetelnych testów porównujących wydajność tych rozwiązań. Jakie są doświadczenia kolegów w tym względzie?

Symfony i Cake to chyba najpopularniejsze frameworki, które warto znać (biorę pod uwagę ilość ofert pracy na rynku związanych z tymi rozwiązaniami), dlatego skłaniałbym się do wykorzystania któregoś z nich. Oba mają dobrą dokumentację i sporo rozszerzeń.

Jeszcze nie wiem który wybrać. Jakieś wskazówki?
kwiateusz
ze znanych masz jeszcze zend framework (aczkolwiek go osobiscie nie lubie bo to raczej kupa klas do samodzielnego montazu niz framework w pełnym słowa tego znaczeniu). Mi cake nie spodobał sie, wole duzo bardziej symfony (zwłaszcza za swietna dokumentacje)
michalkjp
Już o nim pisałeś, dlatego też wziąłem go pod uwagę, ale odpadł na etapie "popularności frameworka" (wychodzę z założenia, że warto się uczyć rzeczy częściej wykorzystywanych - taki pragmatyzm).
phpion
Aktualnie będę pisał system dla siebie i naszła mnie myśl aby połączyć 2 frameworki. Jest to myśl "na gorąco" i nie do końca jeszcze przemyślana. Cały frontend postawiłbym na Kohana - moim zdaniem świetny, lekki, szybki framework. Więcej do tego projektu mi nie potrzeba. Backend natomiast wygenerowałbym dzięki Symfony. Nie wiem czy jest to dobre podejście; do tej pory nie myślałem nawet o sekcji administracyjnej: całością zarządzałbym poprzez konsolę.

Co mógłbym zyskać na takiej fuzji? Na pewno szybkość działania systemu (praktycznie 0 cache więc Kohana zdecydowanie góruje) oraz prostotę zarządzania. Nie podoba mi się jednak zaprzęganie Symfony jedynie w celu generowania admina... No ale z drugiej strony: skoro można go mieć w prosty sposób to dlaczego nie?

Co sądzicie o takim podejściu?
Riklaunim
Jeżeli obecność frameworka powoduje "zamulanie" czy "obciążanie" nadmierne serwera to serwer jest za słaby tongue.gif To że drugi serwer aplikacyjny będziesz musiał dostawić tydzień później kosztem ograniczenia w stosowaniu frameworkowych narzędzi niczego dobrego nie da... Ogólnie nie trzeba stosować 2 frameworków - wystarczy wybrać taki, w którym wszystko zrobisz. Zawsze możesz zastosować Django - dla Panelu Admina, czy też ogólnie do całości smile.gif Podobnie z tymi dwoma frameworkami smile.gif
Cysiaczek
Dlaczego 0 cache?
Btw. Ja zadam pytanko przy okazji. Stosując cache w Symfony, opłaca się robić go na krótki okres? W sensie np. na 30-60 sekund? To przy dużym ruchu powinno w teorii pomóc, bo można skeszować cały layout, a userzy mieliby laga snitch.gif
Dotąd zakładałem cache na dłuższy okres.

Pozdrawiam.
phpion
@Cysiaczek:
0 cache bo akurat taki charakter serwisu. Głównym elementem serwisu będzie sekcja administracyjna dla użytkowników i nie bardzo mogę co tam cache'ować. Na Kohanie pracuje się bardzo przyjemnie i na pewno dużo prościej niż na Symfony (co nie zmienia faktu, że Symfony to super framework!).

Jeżeli chodzi o cache w Symfony. Ja ustawiam je na minimum 3 minuty. Wydaje mi się, że ten czas jest na dyle długi aby korzyści z zastosowania cache były widoczne, a równocześnie na tyle krótki aby dane wciąż "sprawiały wrażenie" świeżych. Przy innych elementach (takich, które nie są zmieniane często) ustawiam cache nawet na 24h. Wszystko zależy przecież od konkretnego przypadku.
athabus
@phpion - podział na 2 frameworki jest imho niezbyt dobrym pomysłem. Wprawdzie wszystko zależy od sytuacji i czasami warto, ale według mnie siła symfony leży w modelu - tam dajesz tak na prawdę 90% kodu. Jak wiadomo model=propel. Teraz jeśli będziesz chciał do frontendu wykorzystać kohana to albo musisz wszystko przepisać jeszcze raz (kiepski pomysł patrząc potem na utrzymanie tego), albo użyć propela w kohanej - wtedy jednak okazuje się, że kohana nie jest aż tak "lekka" i różnica między symfony a kohana się zaciera. Tak na prawdę symfony jest takie ciężkie głównie z powodu propela.

Co do cachu to też się nad tym zastanawiam na jak długo cachować aby to miało sens. Raczej stoję jednak na stanowisku, że cache na okresy liczone w sekundach jest bez sensu, chyba że obciążenie jest naprawdę spore. Jeśli np. w serwisie masz >1000 stron (np. sklep internetowy), to jakie jest prawdopodobieństwo, że user w ciągu minuty wyświetli 2 razy tą samą stronę -> pewnie duże w przypadku najczęściej odwiedzanych stron ale w przypadku tych mniej chętnych już gorzej, a cachowanie też daje swój narzut. Cachowanie z całym layoutem jest rzadko możliwe - dużo szczęścia jak w ogóle całą akcje da się cachować. Ogólnie w tej chwili właśnie przymierzam się do walki z cachem w sklepie internetowym i widzę, że lekko nie będzie - chcę jednak skorzystać z cache managera i czyścić cache strony (akcji) tylko gdy nastąpią zmiany w backendzie -> np. koniec promocji czy brak produktu. Jestem jednak trochę zagubiony, bo na pierwszy rzut oka brakuje mi kilku rozwiązań w cachowaniu symfony, z drugiej strony wzrost wydajności jest tak duży, że żal z tego nie skorzystać.
Cysiaczek
Użycie cacheManagera mam w planie. Co do krótkotrwałego cache - odpadł z tego powodu o którym piszesz ~athabusie smile.gif
Z drugiej strony boję się trochę, bo strasznie będzie zawikłany kod akcji - będę musiał chyba kolejną warstwę wprowadzić...

Pozdrawiam.
athabus
~Cysiaczek - cachowanie lepiej zrobić w modelu (zazwyczaj metoda/y save() ) - wtedy zmiany w modelu będą ładnie wywoływały czyszczenie cachu. Ogólnie jednak z cachem to jest tak, że ładnie to w teorii wygląda, ale potem utrzymanie powiązań co gdzie i jak ma się wyczyścić to już niezła zabawa ;-)
Cysiaczek
Wywołanie może w modelu, ale implementacja na pewno nie w nim, tylko w osobnym typie.
Taki ModelCacheManager z opcją reload() uwzględniającą powiązania z innymi cache :-)
LBO
Cytat(athabus @ 7.10.2008, 15:22:09 ) *
Ogólnie jednak z cachem to jest tak, że ładnie to w teorii wygląda, ale potem utrzymanie powiązań co gdzie i jak ma się wyczyścić to już niezła zabawa ;-)


Dlatego jestem za cachowaniem layoutu - pod warunkiem że silnik cache'a jest mocno wgryziony/zintegrowany z samym framem. U mnie cache jest przezroczyste dla aplikacji (bardzo sobie tą przezroczystość cenie w każdym aspekcie programowania - może sobie coś być, albo nie, a i tak działa) i mam z jego poziomu dostęp do niemal wszystkiego: zmiennych żądania, akcji, widoku, sessionUser, locale, typu widoku (HTML, JSON,...) etc... tym samym mogą być kryteriami, którym moge nadawać identyfikatory i grupy (Smartowe takie). A wszystko w xmlowym pliczku ze śliczną składnia smile.gif

Nie neguję przydatności programistycznego cache'a ofkorz. Po prostu uważam, że cache jest taką rzeczą, która niekoniecznie musi być wgryziona w kod.

Pozdrawiam, Alan
Moli
Ja chce używam do danych pobranych z bazy, do danych które magą zajmować sporo czasu (duże operacje, duże obliczenia itp.). Cachowanie gotowych jakoś mnie nie przekonuje. Ładnie ponazywane i pogrupowane cache nie sprawi problemu.
3miel
Witam,

dołączam się do kolegi..
ostatnio zastanawia mnie jak działają wielkie portale. Przykładem najpopularniejszym może być nasza-klasa, czy też fotka.

Głowne pytania:
1) Jakie serwery? jeden czy wiecej? Hosting czy własny serwer?
2) Technologie, czy PHP + MySQL wystarczą? Czy dobrym pomysłem jest AJAX? Czy lepiej napisac swoj silnik czy freamwork?
3) MySQL - czy jedna baza wystarczy? Np. komentarze na poltarach spolecznościowy, jest ich setki milionów, czy to w jednej bazie sie miesci czy wiecej? Jak się obsługuje kilka takich samych baz?
4) Jak to wszystko działa pod obciązem? Czy są jakieś specjalne sposoby na to? Cachowanie wystarczy? I czy jest niezbędne?
5) Bezpieczeństwo - jakie są najważniejsze środki bezpieczeństwa w portalach spolecznościowych? Jak wygląda system bezpiecznego logowania?
6) Dostęp np do zdjęc, jeżeli są w folderze to jak zablokować bezpośredni dostep do nich, żeby były odczytywane tylk oprzez strone i wyświetlane na niej?
7) Przyjazne linki - konieczność czy tylko ozdoba?

Może macie jeszcze jakieś cenne informacje nt. strony technicznej wielkich portali?
Również bedę wdzięczny za jakiekolwiek linki.

Z góry dzięki za każdą wypowiedź.

Pozdrawiam,
Sebastian
athabus
@3miel - Chyba nie uświadamiasz sobie skali takich przedsięwzięć jak nasza klasa. Hosting współdzielony to możesz mieć na stronkę firmową czy jakieś małe forum. Duża strona (w sensie chętnie odwiedzana) to już zapewne dedyk - w przypadku nk czy podobnych przedsięwzięć to już serwery dostawia się w dziesiątkach ;-). Żeby uzmysłowić ci skalę przedsięwzięć, to dla przykładu google za sam prąd dostaje rachunki liczone w milionach dolarów miesięcznie. Oczywiście polskie portale nie zbliżają się wielkością do tego co musi mieć google, ale też na pewno nie stoją na hostingu czy pojedynczym dedyku ;-)
Co do technologii, to się nie wypowiadam bo nie wiem jak jest w nk, ale ogólnie w dużych projektach rzadko ogranicza się do jednej technologii czy jednego silnika bazy. Nie możesz powiedzieć, że np. allegro jest napisane w php - pewnie częściowo jest, a częściowo w innych technologiach.
Co do bezpieczeństwa to znowu samo logowanie to jest pikuś - tu chodzi o wiele innych kwestii - na takie serwisy jak nk na pewno "zasadzają" się hakerzy itp, więc wiele osób zapewne pracuje nad bezpieczeństwem poczynając od serwera a kończąc na samym oprogramowaniu. Sam system logowania zapewne nie odbiega znacząco od "standardowego" - tu chodzi raczej o całą politykę bezpieczeństwa w wielu obszarach.
Jeśli chodzi o zdjęcia to poczytaj o hotlinking i zabezpieczaniu się.
Jeśli chodzi o przyjazne linki to dla dekoracji - taka moda teraz ;-) Serwis działa tak samo z nimi jak i bez nich - przy czym lepiej mieć bo ładnie wyglądają i są przez to ... przyjazne ;-)
Jeśli chodzi o frameworki to dla dużych przedsięwzieć często pisze się wszystko od zera łącznie w frameworkiem. Choć czasami zdarza się, że np. adoptuje się jakiś istniejący framework przerabiając go do konkretnych potrzeby (patrz yahoo i symfony).
kwiateusz
wystarczy sie zainteresowac ofertami pracy na danym portalu i mozna wywnioskowac z grubsza co oni tam maja smile.gif

np na nk szukaja admiona ktory umie zarzadzac farma serwerów (100 i wiecej maszyn) wiec pytasnie o hosting wspoldzielony jest bynajmniej zabawne smile.gif
allegro rowniez mialo/ma oferty pracy gdzie sa szukani phpowcy (Zapewne do tego co ogladamy na codzien) ale i ludzie od oracle, co do serweropw to pewnie maja farme porownywalna do nk jak i nie wieksza
wlamywacz
Przyjazne linki są jakby nie patrzeć jednym z zabezpieczeń ponieważ na poziomie htaccess lub routera odrzuca się próby SQL Injection ze zmiennych GET. Ogólnie struktura serwerów może wyglądać tak że są one podzielone na:
- statyczne - specjalnie skonfigurowane do szybkiego udostępniania treści statycznych takich jak obrazki, css, js.
- bazodanowe - stawia się na nich bazę danych występuje na nich replikację i inne cuda. Z tego co pamiętam jest jedna baza główna która obsługuje głównie INSERT a reszta to tylko kopie tej główne które obsługują tylko SELECT.
- robocze - wszelkie wykonywanie skryptów php, perl itd.
- balance loadery - urządzenia lub serwery które zarządzają ruchem i kierują go do jak najmniej obciążonego serwera.
3miel
Bardzo cenny link, polecam każdemu: http://talen.jogger.pl/kategoria/duze-portale/
Tak więc temat "dużych portali" jest bardzo trudny. Jeszcze potrzebuję dużo doświadczenia, aby stworzyć coś wartego uwagi.

A takie małe pytanko jeszcze... czy ktoś zabierał się za tworzenie dużych portali? I z jakimi skutkami?
Riklaunim
Ja pracuję w Goldenline.pl i nie jest to mały serwis i admin ma czym administrować i kontrolować winksmiley.jpg. Także teraz prowadzone są prace nad innym serwisem i projektowany jest on pod dużą ilość użytkowników i na dzień dobry wykorzystuje on partycjonowanie danych w MySQL, wyszukiwanie przez Sphinxa, używa Memcache, API do przesyłania plików na serwery statyczne itd.
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.