![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
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 ![]() 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. -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() Z PHP sobie radzę, frameworków takich jak Symphony czy Cake jeszcze nie opanowałem. 5. Ogólna wskazówka - serwisu społecznościowego nie napiszesz w dwa zimowe wieczory. Zdaję sobie z tego sprawę ![]() Wymyslisz coś nowego, oryginalnego? Nie sądze. Nie sądź aby nie być sądzonym – czy jakoś tak ![]() Ale masz rację chodzi o coś zupełnie innego. 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. 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! ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() 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. 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. 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. 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 ![]() ![]() -------------------- |
|
|
![]()
Post
#5
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
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 ![]() -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
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? Na Polskę najlepiej mieć serwery w Europie. Nie chodziło mi o fizyczną lokalizację serwerów, tylko o wersje językowe portalu ![]() Budowa dużego serwisu to zajęcie dla kilku programistów, w tym koniecznie jednego od usability i front endu ![]() 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. 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 ![]() 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! |
|
|
![]()
Post
#7
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
frameworki daja ogromy narzut
![]() ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
No jak już tak radzimy - to raczej gotowy framework (Zend na przykład - wiele pracy chłopcy włozyli w niego ![]() 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:
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. |
|
|
![]()
Post
#9
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
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 ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
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ł ![]() Na koniec wspomnę, że to wszystko machnąłem wczoraj - w Symfony ![]() 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. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
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... 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 ![]() 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) Na koniec wspomnę, że to wszystko machnąłem wczoraj - w Symfony ![]() 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 ![]() 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? |
|
|
![]()
Post
#12
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn ![]() |
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)
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 182 Pomógł: 14 Dołączył: 20.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
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).
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
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? |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 640 Pomógł: 44 Dołączył: 8.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli obecność frameworka powoduje "zamulanie" czy "obciążanie" nadmierne serwera to serwer jest za słaby
![]() ![]() ![]() -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
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 ![]() Dotąd zakładałem cache na dłuższy okres. Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@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. |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@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ć. |
|
|
![]()
Post
#19
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Użycie cacheManagera mam w planie. Co do krótkotrwałego cache - odpadł z tego powodu o którym piszesz ~athabusie
![]() Z drugiej strony boję się trochę, bo strasznie będzie zawikłany kod akcji - będę musiał chyba kolejną warstwę wprowadzić... Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
~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 ;-)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 03:51 |