Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

6 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> php a duże projekty., Jakie środowisko używać.
anas
post 27.08.2006, 22:03:12
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


Witam.

Od jakiegoś czasu jako firma realizujemy w miarę duże projekty bazując częściowo na własnych rozwiązaniach (jak to już w świecie php bywa - każdy pisze własny framework). Interesuje mnie wasza opinia czy warto dalej brnąć w tworzenie własnych fundamentów, czy np. nie lepiej pozostawić to innym (Zend Framework, Symfony, itd). Jak wiemy w php zanim się "przetnie deskę", należy sobie stworzyć piłę, samą deskę, a najlepiej to okulary ochronne i wiele innych narzędzi. (szkoda że nie wygląda to tak jak w .net). I teraz najważniejsze to jakie wy narzędzia byście zastosowali przy tworzeniu większych serwisów internetowych (dla przykładu serwis - 50k userów na dzień dobry przeniesionych ze starej wersji - docelowo liczba może sięgnąć kilkuset tysięcy, a może i więcej).

Chodzi mi o solidną platformę - czy ktoś z was pracował na jakimś dobrym ogólnodostępnym frameworku, nad podobnej wielkości projektem i może zdradzić mi jak się zachowywał? A może inne narzędzia? Czego wy używacie przy naprawdę dużych projektach?

Ps. Zależy mi również na szybkości pracy - przy np. 4 programistach nad takim projektem koszta mają dla mnie duże znaczenie.

Pozdrawiam dzięki za sugestie.

anas
Go to the top of the page
+Quote Post
nazihipi
post 27.08.2006, 22:55:35
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 14.07.2006

Ostrzeżenie: (10%)
X----


Jeżeli chodzi o naprawdę duże projekty to ja wogóle stawiam na inny język niż php mianowicie Ruby. Korzystam przy tym (co będzie odpowiedzią na Twoje pytanie) z framewroka Ruby on Rails (dobry framework to na prawdę niezastąpiona sprawa. Radzę Ci po prostu wrzucić na warsztat to co wymieniłeś i samemu określić co spełnia Twoje oczekiwania)
Go to the top of the page
+Quote Post
splatch
post 28.08.2006, 07:10:29
Post #3





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jeśli idzie o szybkość działania. Ruby w połączeniu z Railsami jest bardzo wolne. Z grupy RoR, Symfony, Django najszybsze jest Django, najwolniejsze Symfony..
Co do Cake php - http://www.litfuel.net/plush/?postid=138.


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
nazihipi
post 28.08.2006, 12:27:26
Post #4





Grupa: Zarejestrowani
Postów: 139
Pomógł: 0
Dołączył: 14.07.2006

Ostrzeżenie: (10%)
X----


Cytat(splatch @ 28.08.2006, 08:10 ) *
Jeśli idzie o szybkość działania. Ruby w połączeniu z Railsami jest bardzo wolne.

tak... ? a z czym to porównujesz? może jakieś testy?
tracąc nawet trochę na szybkości działania zyskujesz na niesamowitej szybkości tworzenia.

ps. pisząc o szybkości, nie mieszałbym frameworków dla różnych języków..
Go to the top of the page
+Quote Post
anas
post 28.08.2006, 14:32:42
Post #5





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


Hej.

Ogólnie rzecz biorąc trudno by mi było teraz przekonać wszystkich programistów do tworzenia w Ruby - chodziło mi głównie o frameworki dla php. Co do Symfony - czy ktoś z was postawił na nim duży serwis, z dużą ilośćią odsłon - chodzi mi o porównanie jak się poszczególne fw zachowują w stosunku do obciążenia, jak działa w nich cachowanie, jak szybko się w nich pisze, testuje, etc. Między tym co jest napisane w dokumentacji, a rzeczywistością są zawsze duże rozbierzności - dlatego ciekawią mnie wasze doświadczenia.

Czy np. warto postawić na szybkie tworzenie (stosowanie narzędzi typu ORM) i późniejszcze cachowanie wyników, czy też lepiej skupić się na dobrym oprogramowaniu warstwy DAO i zapomnieć o takim rozwiązaniu?

Ja mam swoją opinię na ten temat, ale nie chciałbym wprowadzać jakichkolwiek sugestii, tylko usłyszeć waszą w miarę obiektywną ocenę.

Pozdrawia i dzięki za pomoc.

anas
Go to the top of the page
+Quote Post
bela
post 28.08.2006, 14:46:13
Post #6


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


nazihipi: chodzi pewnie o ten test http://wiki.rubyonrails.com/rails/pages/Fr...ork+Performance


--------------------
Go to the top of the page
+Quote Post
sf
post 28.08.2006, 18:48:38
Post #7





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Wg mnie aktualnie jeśli ktoś ma już coś swojego i to się dobrze sprawuje to nie widze powodów by się przesiadać na inne rozwiązania. Zwłaszcza, że nie powalają.. a wręcz przeciwnie ma się zawsze jakieś swoje zastrzeżenia do nich.

Wiele osób zachwala Cake php, ale jak już pisałem nie raz dla mnie ten framework od strony kodu jest nie do zaakceptowania. Symfony.. przeglądałem jego możliwości, wszystko ładnie wygląda jak się robi schematyczne rzeczy.. ale u mnie w pracy zawsze są jakieś odchyły i żadko kiedy wygląda to tak prosto jak na przedstawionych tam przykładach.

Stawiam na swoje rozwiązanie z uwagi na to, że wiem jak chce tworzyć aplikacje, jeśli zauważe jakiś problem/złe podejście to sam je rozwiązuje, nie musze czekać na poprawki. Ważne tylko by podglądać `konkurencje` i unowocześniać swój framework od czasu do czasu.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
Ace
post 28.08.2006, 22:39:12
Post #8





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


anas: framework to nie wszystko. Mozesz rowniesz podkrecic baze danych/serwer. Zamiast np Apache moze zainteresuj sie lighttpd, ktory ponoc jest szybszy od apache (nie wiem nie testowalem, widzialem tylko benchmarki na stronie lighttpd), ktory w sobie uwzglednia mozlwiosc loadbalancing. Dodatkowo rozdzielenie uslug baza na innej maszynie, duzo ramu, + programowanie na poziomie bazy danych - postgresql, chyba ze mowimy o platnych rozwiazaniach, to oracle/mssql.

Mysle ze warto zwrocic uwage na optymalizacje kodu. Np generowanie statysytk moze byc czasochlonne... dlatego takie zadanie moze byc wykonywane raz dziennie, o 3-4 w nocy gdy obciazenie serwera jest praiwe zerowe... Cos za cos, raz na dzien aktualizowane statystyki, ale ... nie obciaza to maszyny. Takich praktyk jest wiele.

Ale dobry projetk systemu + dobry projekt bazy + dobre wykonanie + konfiguracja maszyny = sukces.

Cachowanie calych fragmentow strony moze okazac sie owocne, po co za kazdym razem wyciagac to samo menu z bazy, jak mozna raz zchacowac i miec w postaci pliku html gdzies zapisane?
Go to the top of the page
+Quote Post
mike
post 28.08.2006, 23:50:52
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(J4r0d @ 28.08.2006, 23:46 ) *
Przecież mysql jest dostępny w wersji darmowej (bez wsparcia)...

Znasz różnice pomiędzy mySQL a wspomnianymi oracle lub mssql?
Róznice sa tak duże, że nie ma co porównywać tongue.gif a do dużego projektu MySQL się nie nadaje.
Może w przyszłości MySQL5.0 ale teraz jeszcze nie
Go to the top of the page
+Quote Post
SongoQ
post 29.08.2006, 01:38:28
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


@mike_mech podejrzewam ze wersja MySQL 7.0 (hehe)

@J4r0d zwracaj uwage na nazwy bo mylisz pojecia

Jesli chcesz wydajność polepszyc zainteresuj sie DB z plsqlem, bedziesz mogl wiekszosc funkcjonalnosci kodu przeniesc na baze danych. Podejscie ze jeden uzytkownik systemu = jeden uzytkownik bazy danych jest najlepszym rozwiazaniem. Uprawnienie dostep do rekordow zostawiasz bazie danych. Wyciagajac dane automatycznie sa filtrowane dla konkretnego usera. Przy wiekszych, zlozonych bazodanowych aplikachacg jak uczy literatura powinno się wiekszosc logiki zostawic bazie danych.


--------------------
Go to the top of the page
+Quote Post
Ace
post 29.08.2006, 08:44:12
Post #11





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Mysle ze duzy projekt - chociazby gdzie jest strasznie duzo danych w bazie, liczony w milionach rekordow. Po prostu niektore usprawnienia baz typu oracle/pg/mssql usprawnia analize takich danych, co przyczyni sie do wzrostu szybkosci dzialania aplikacji.

Zwroccie uwage, ze zle oprogramowane zagadnienie pracujace na kilku tysiacach rekordow moze byc wolniejsze niz, takie samo zagadnienie lepiej oprogramowane liczone w milionach rekordow.

Wiekszosc pracy ma jednak programista, nie FrameWork, czy Baza danych i to od niego wychodzi ta wydajnosc.
Go to the top of the page
+Quote Post
sobstel
post 29.08.2006, 09:20:09
Post #12





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(SongoQ @ 29.08.2006, 02:38 ) *
Podejscie ze jeden uzytkownik systemu = jeden uzytkownik bazy danych jest najlepszym rozwiazaniem. Uprawnienie dostep do rekordow zostawiasz bazie danych.


no nie wiem, ciezko mi sobie wyobrazic zakładanie dziesiątek tysięcy kont w bazie dla jednej tylko aplikacji i zarządzenie uprawnieniami dla takiej kupy. bardziej juz chyba, rola/grupa w systmie = jeden uzytkownik bazy danych.

Ten post edytował sopel 29.08.2006, 09:21:05


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
anas
post 29.08.2006, 14:53:58
Post #13





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


Hej.

Wracając do topicu: głównie chodzi o pogodzenie czasu (wydajności pracy) w stosunku do jakości tworzonych rozwiązań.

@sf: jasne że własne rozwiązania są bardziej elastyczne - co nie znaczy że jak poznasz dogłębnie jakiś framework to nie możesz nim manipulować.

@SongoQ: zgadzam sie w 100% - lecz rozwiazania ktore proponujesz sa czasochlonne, aczkolwiek bardzo wydajne - stosujac w aplikacji warstwe DAO, zawsze mozna w miare potrzeb przepisywac pewne elementy systemu.

@mike_mech, @SongoQ: odnośnie MySQL 5.0 - my aktualnie korzystamy z mysql 5.1.x - wersji beta - wprowadzono wiele zmian, wydajnosc jest akceptowalna, a funkcjonalnosc dla rozwiazan www jak najbardziej wystarczajaca. Oczywiscie nie zamierzam tutaj porownywac rozwiazan MS, Oracle, czy nawet PostgreSQL - bo wiadomo co zapewniaja tamte systemy - ale uwazam ze MySQL zmierza w dobrym kierunku i przyjemnie stosuje sie go nawet w duzych projektach dla www.

Idac dalej - pogodzenie wydajnosci / jakosci = akceptacja klienta. Teraz stosujac rozwiazania ORM, gotowy framework, ktory zapewnia mi wiekszosc standardowej funkcjonalnosci, oprogramowujac sama logike zyskuje na czasie - pytanie jak to wazyc - czy lepiej np. zrezygnowac z narzedzi ORM - oprogramowywac warstwe danych stosujac wyspecjalizowane obiekty DAO i poswiecajac na to wiecej czasu.

Jak to wynika z waszego doswiadczenia - gdzie jest ten zloty srodek - bo my zastosowalismy rozwiazania ORM, przy odpowiednim cachowaniu, sprzecie, acceleratorze i all jest ok - w przyszlosci w przypadku zwiekszajacego sie obciazenia, czy nie uwazacie ze taniej jest inwestowac w sprzet niz godziny programistow?

Pozdrawiam

anas
Go to the top of the page
+Quote Post
nasty
post 29.08.2006, 18:58:01
Post #14





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
czy nie uwazacie ze taniej jest inwestowac w sprzet niz godziny programistow?

Ja uwazam, ze nie koniecznie, bo piszac aplikacje, to optymalizacja, podobnie jak bezpieczenstwo, nie jest doczepiana na koniec,
tylko aplikacja jest pisana w optymalny i bezpieczny sposob od pierwszej linji, tak wiec majac dobrzych programistow powinnines dostac
najoptymlaniejszy (prawie) kod. Ja osobiscie radze kompilowania php (Zend Encoder, eAccelerator, etc..) do postaci opcodow zenda, co oszczedza,
bardzo duzo czasu. a co do sprzetu, to dobrze jest miec mocny, server, ale prawie 70-90 % wydajnosci skryptu (wykluczajac polaczenia i zadania DB)
jest zalezna od jakosci napisanego kodu.
Pozdrawiam
Go to the top of the page
+Quote Post
anas
post 30.08.2006, 11:42:11
Post #15





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


@Nasty - tak o to się nie martwie - chodzi mi o gotowe narzędzia jak orm - ich wydajność nie jest znakomita, a tym samym jakoś wytwarzanego oprogramowania. Co do optymalizacji w tej chiwli używam APC i rzeczywiście zwiększa to znacznie wydajność. Lokalnie używamy do developerki ZendPlatform i dzięki php Inteligence i profilowaniu udaje się wyszukać wąskie gardła, ale przy np. przetwarzaniu w jednej chwili 50 000 rekordów przez wiele konkurncyjnych połączeń może powodować nie lada problemy - jak sobie z tym radziliście?

Pozdrawiam

anas
Go to the top of the page
+Quote Post
Ace
post 31.08.2006, 09:28:10
Post #16





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@J4r0d: przeczytaj jeszcze raz post anas,
Cytat
Lokalnie używamy do developerki ZendPlatform i dzięki php Inteligence i profilowaniu udaje się wyszukać wąskie gardła


@anas: a powiedz mi czy za kazdym polaczeniem musisz te 50k rekordow przetwazac? czy nie mozesz przypadkiem robic tego okresowo, raz na dzien/godzine/minute. przy wielu polaczeniach w ciagu minuty, generujac takie dane raz na minute i tak zyskujesz czas.

Jesli chodzi o wydajnosc mysql 5.1, na ktorym to robisz, to nie wiem, nei testowalem. Ja staram sie odejsc od mysql na rzecz postgresql.
Go to the top of the page
+Quote Post
pawel_k
post 31.08.2006, 11:14:35
Post #17





Grupa: Zarejestrowani
Postów: 211
Pomógł: 3
Dołączył: 29.07.2005
Skąd: Szczebrzeszyn

Ostrzeżenie: (0%)
-----


zgadzając się z większością zdań dodam od siebie, że dla naprawdę dużych projektów, gdzie online siedzi powiedzmy 5-10 tysiecy ludzików, żaden czołowy framework nie będzie się niestety nadawał. frameworki mają jak najbardziej uprzyjemniac i przyspieszac pracę, przykładowo pisząc dośc prosty cms w symfony sam napisałem ok 800 linni kodu, gdzie pisząc normalnie musiałbym napisać (korzystając z gotowych bibliotek do obsługi bazy, tempalteów itp.) przynajmniej ok 4-5 tysięcy. cena za to - czas generowania na poziomie 0,2 sekundy, co nie jest wartością porywającą (oczywiście dużo też zależy od konfiguracji sprzętowej)... spotkałem się nawet z poglądami że czasem nie warto stosować się do zasad programowania obiektowego - kolejny zysk na wydajności... myślę że przy ogromnych projektach złotym środkiem jest prosty kontroler, szybki system templatów i biblioteka do obsługi bazy (jednak raczej nie rozwiązanie typu orm) + jak największe uproszczenia wszystkiego. przyjemnie i w miarę szybko będzie się programowało, a kod będzie wydajny...
Go to the top of the page
+Quote Post
anas
post 1.09.2006, 22:46:49
Post #18





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


J4rod - co do testowania i wąskich gardeł ja profilu skrypty za pomocą Zend Platform - dzięki temu rozwiązaniu zyskaliśmy na wydajności nawet do 1000%. Czas wykonywaniu skryptu przy przeszukiwaniu takiej ilośći danych z zastosowaniem narzędzi ORM to nawet do 3-4s - co nie jest akceptowalne - stwierdziliśmy że warto będzie budować indeks.

Cały system to bardzo duża aukcja internetowa - w tej chwili dzięki cachowaniu wydajność jest akceptowalna, ale nie jest górnych lotów.

Rzeczywiście jak napisał pawel_k zdecydowanie szybciej pracują duże serwisy napisane proceduralnie - tworzyłem osobiście www.gorzow.com jak uczyłem się php pod koniec lat 90-tych - obecnie muszę stwierdzić że ta aplikacja pracuje wydajniej niż obecne napisane obiektowo przy użyciu frameworka.

Z moich odczuć wynika że przy bardzo dużych projektach znaczący wpływ na wydajność ma tak naprawdę cachowanie - jeśli znacie jakiś mechanizm cache którym łątwo zarządzać i który daje duże możliwości to będę wdzięczny za podpowiedź - obecnie stosujemy po stronie serwera eAccelerator'a, a po stronie aplikacji własne rozwiązania.

pozdrawiam

anas
Go to the top of the page
+Quote Post
itsme
post 2.09.2006, 12:24:03
Post #19





Grupa: Zarząd
Postów: 1 512
Pomógł: 2
Dołączył: 22.04.2002
Skąd: Koszalin




a co do znaczy duzy projekt ?
duzo kodu, duzo danych ?
duzo userow online ?

czy moze ilosc $$ na umowie ...

w php naprawde mozna wiele napisac ... nie koniecznie stron www.
zas wybor narzedzi wspomagajacych pisanie projektu zalezy rowniez od wymagan zlecajacego ...
przeciez nie bedziemy brali kobyly na ksiege gosci ktora bedzie miala 100 mln rekordow i obciazenie 200 usero online

ciezko tu poradzic cos jednoznacznie ....


--------------------
brak sygnaturki rowniez jest sygnaturką
Go to the top of the page
+Quote Post
anas
post 2.09.2006, 16:24:08
Post #20





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

Ostrzeżenie: (0%)
-----


@itsmeMowiac o duzych projektach, mialem na mysli projekty w ktorych jest w miare zlozona funkcjonalnosc - np. serwis aukcyjny, duzy sklep internetowy - i takie ktore maja przy okazji duzy lub bardzo duzy ruch.

@J4rod - nikt tego nie powiedzial - tak poprostu jest - jednak programowanie obiektowe pozwala latwiej organizowac prace, sam projekt, kod, kod staje bardziej elastyczny i co wazne mozna pewne jego fragmenty uzywac w innych projektach bez potrzeby refaktoringu.

Pozdrawiam

anas
Go to the top of the page
+Quote Post

6 Stron V   1 2 3 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.03.2024 - 11:58