Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Pro _ php a duże projekty.

Napisany przez: anas 27.08.2006, 22:03:12

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

Napisany przez: nazihipi 27.08.2006, 22:55:35

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)

Napisany przez: splatch 28.08.2006, 07:10:29

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.

Napisany przez: nazihipi 28.08.2006, 12:27:26

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..

Napisany przez: anas 28.08.2006, 14:32:42

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

Napisany przez: bela 28.08.2006, 14:46:13

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

Napisany przez: sf 28.08.2006, 18:48:38

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.

Napisany przez: Ace 28.08.2006, 22:39:12

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?

Napisany przez: mike_mech 28.08.2006, 23:50:52

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

Napisany przez: SongoQ 29.08.2006, 01:38:28

@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.

Napisany przez: Ace 29.08.2006, 08:44:12

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.

Napisany przez: sopel 29.08.2006, 09:20:09

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.

Napisany przez: anas 29.08.2006, 14:53:58

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

Napisany przez: nasty_psycho 29.08.2006, 18:58:01

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

Napisany przez: anas 30.08.2006, 11:42:11

@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

Napisany przez: Ace 31.08.2006, 09:28:10

@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.

Napisany przez: pawel_k 31.08.2006, 11:14:35

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...

Napisany przez: anas 1.09.2006, 22:46:49

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

Napisany przez: itsme 2.09.2006, 12:24:03

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 ....

Napisany przez: anas 2.09.2006, 16:24:08

@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

Napisany przez: NuLL 3.09.2006, 03:50:22

Co do frameworkow i innego softu pisanego przez innych. Korzystanie z nich w duzych projektach to tak naprawde porazka. Na frameworki jest moda - miec fw ktory wszystko potrafi. A tak naprawde cos co jest do wszystkiego jest do niczego. Kazdy projekt ktory ma pracowac na duzym obciazeniu powinien miec swoj wlasny szkielet inwidualnie dobrany do projektu - po co komu router ktory supportuje rozne schematy linkow skoro w danym projekcie bedzie tylko jeden questionmark.gif I tak pokolei. Tlumaczenie sie tym ze ktos chce miec projekt szybciej przy skalowaniu go na kilkaset tysiecy userow szybciej ( i chce zarobic wiecej kasy ) to zadne tlumaczenie tak naprawde.

Napisany przez: Cysiaczek 3.09.2006, 04:14:07

Faktycznie OOP jest lepsze do dużych projektów, ale coś za coś - tracimy na wydajności. Jest to widoczne zwłaszcza w php, gdzie inicjalizacja aplikacji odbywa sie nimal za kazdym kliknięciem (AJAX trochę pomaga).
Już samo tworzenie obiektów to duże obciążenie dla progrmu, a dobry kod obiektowy w duzych projektach zazwyczaj charakteryzuje się sporą ilością obiektów.
Z tego, co zdążyłem zauważyć, to gotowe frameworki nadają się zazwyczaj do małych i średnich projektów - przy większych okazuje się, że są po prostu za wolne, a do tego wymagają przebudowania.
Pozostaje pokładać nadzieję w jeszcze szybszym rozwoju infrastruktury sieci oraz sprzętu.

Pozdrawiam,

Napisany przez: 60156 3.09.2006, 05:23:44

Czesc ...
Odpowiadacja nad temat duzych projektow i roznych frameworkow,
to sa one takie uzywajac przenosni ze aby "sie napic mlepka to trzeba krowe kupic".
Przerabialem, wysztkie po kolei w nadzieji ze cos jest w miare przyzwoite ale
sie okazalo, ze wiekszosc to przyslowiowe wolne kobyly. Dlatego opracowalem
swoj, ktory nazywa sie IWA albo SOWA (Services Oriented Web Architecture),
zajelo to kilka lat ale wyniki sa rewelacyjne ... Pislame aplikacje przez 6 tygodni
a inn profesjonalna firmasoftwerowa spedzila nad nia (5 osob) uzywajac wlasnie
tych frameworkow 1.5 roku i ani sie nie zblizyla funkcjonalnoscia do mojej ..
pozdrawiam 060156

Napisany przez: itsme 3.09.2006, 10:15:30

sluchajcie nie rozumiem zdan ze przez OOP tracimy na wydajnosci i takie tam.
Nie ma innej mozliwosci niz kodowanie OOP. Inne podejscie przy duzych, srednich i malych projektach jest bledne.

Zatem nie rozmawiajmy o tym ze OOp jest wolniejsze bo roznice sa tak niewielkie ze szkoda to poruszac.
Oczywiscie wszystko zalezy od jakosci kodu.

ja wraz ze wspolnikami (tak samo jak 060156 ) rowzniez napisalismy aplikacje ktora ma stale kompenety i jest niezwykle uniwersalna. Jest to program klasy CRM, DMS. Interfej zawsze ten sam wiec nie interesuje nas wogole co sobie zyczy klient. To jest program nie strona www.

Korzysci ? system do zarzadzania zadanami, zasobami (pojazdy, telefony komputery), kontakty (adres, osoby kontaktowe) oraz powiazania pomiedzy tymi obiektami zajmuje nam 2-3 dni. I mamy wszystko od uprawnien, baze po formularze.

kazdy z nas chce kodowac tak aby niska iloscia pracy osiagnac maksymalne wyniki. I wlasnie to chcielismy osignac.

oczywiscie co jezeli klient bedzie chcial cos jeszcze ? wszystko w OOP i MVC zatem zmiany nie sa ciezkie do wdrozenia.

Co do duzych projektow. Uwazam ze mozna korzystac z malych wspomagaczy ktore wspomoga a nie zastapiam nam nasza prace

Napisany przez: anas 3.09.2006, 11:02:07

@060156: moze pochawlisz sie chociaz czesciowo jak wyglada architektura Twojego systemu?
@itsme: Nie mialem na mysli zastapenia czyms wlasnej pracy - przeciez .net to tez gotowy framework prawda? Chodzi mi o podobne podejscie, tak abym nie skupial sie na rozwoju narzedzi, a rozwiazywaniu problemu ktory jest przedmiotem prowadzonego projektu.

@060156: Jeśli Twój system zastępuje pracę 5 osób przez 1.5 roku w stosunku do 6 tygodni jednej to ja jestem skłonny Ci za takie rozwiązanie zapłacić dużo pieniędzy smile.gif - w takim razie ile by Ci zajęło postawienie systemu ze złożonością powiedzmy allegro na Twoim systemie (orientacyjnie)? Może zwolnie 5 osób i zatrudnie Ciebie dając Ci 5x ich wypłata x okres potrzebny na zrobienie tego smile.gif (choiaż trudno mi w to uwierzyć)

Pozdrawiam

anas

Napisany przez: itsme 3.09.2006, 11:20:49

caly czas mowie ze ciezko to okreslic
system aukcyjny ma zupelnie inne narzedzia niz CMS, niz forum i inne - nie ma uniwersalnych rozwizan do roznych typow projektow - niestety.

ZAtem nie ma tez jednoznacznej odpowiedzi na Twoje pytanie

Napisany przez: Dravo 3.09.2006, 11:24:43

Ja dodam, że wiekszość wspaniałego oprogramowania, które widzimy na co dzień jest pisana niechlujnie (nie jestem święty) a powodem jest pośpiech.

Co do frameworków, to sprawa jest oczywista: coś co jest do wszystkiego jest do niczego.

(Ale) Może spojrzeć na to jak na silną podstawę do tworzenia swojego projektu? To tak jak z językami programowania, dlaczego nadal nie pracujemy w Assemblerze, tylko przenosimy się na coraz wyższą abstrakcją?

Ja osobiście nie pracowałem nad dużymi projektami, więc mogę jedynie gdybać, ale warto tutaj podejrzeć rozwiązania chociażby z .NET.

Ciekawym pomysłem jest również rozwinięcie swoich komponentów, które poźniej łatwo modyfikować.

Co do sprzętu: sprawa jest oczywista pośpiech powoduje bałagan, a stan idealny - złoty środek - to po prostu bajka. Programiści wychodzą z butów, żeby zdąrzyć na czas, a straty rekompensują sprzętem i właśnie to jest postęp... Mamy nowsze procesory, większe dyski...

Nie zapominajmy, że przyzwyczajenie i nałogi to nasza prawdziwa natura (wedle Arta) i przejście na nowe oprogramowanie też może mieć mały impakt powodujący opóźnienia.
A praca na swoich śmieciach i sprawdzonych rozwiazaniach taki problem niweluje pozwalając maksymilizować zyski z obecnych sposobów bycia.

Pozdrawiam
ww

Napisany przez: Cysiaczek 3.09.2006, 11:27:04

@itsme - wydaje mi się, że anasowi chodzi o narzędzia takie jak cashe, validatory, auotoloadery itp. Te wystepują (niekoniecznie razem) w prawie wszystkich większych systemach i stawia się na prostę ich konfiguracji niż pisanie od nowa. Dzięki temu są użyteczne. Tak mi się przynajmniej wydaje.

Pozdrawiam.

Napisany przez: 60156 3.09.2006, 20:19:19

Odnosnie,
Framoworkow to sie zgadzam, ze cos co jest do wszystkiego to jest do
niczego.
Dlatego zastosowalem inne podejscie.
Nie budowanie monstrum tylko podejscie polegajacych na budowaniu klas
z ktorych mozna skladc system. Oto ich przyklady:

PRZEGLADARKI KLASY:
--------------------------
Service
content marshaling
request, response
Database
Presentation
Screen
Dialog
Canvas, Dynamic, Static
Element
Style
Move
Resize
Default Dialogs
Info
Message
Confirmation
Popup Menu
Upload File
Calendar
Cookie
Clipboard

php KLASY
------------
Service
content marshaling
request, response, forwarding
Database
mysql
browser mysql
odbc
PDF Document
Macromedia Monitoring
Html
pages, emails
Session
License
expiration, evaluate, customer name
Validate
date, zip, phone, credit cards, email
Email
preferred, text, html, attachment
Log
error, warning, info, debug

Pozysze klasy sluza do budowania services po stronie php z ktorymi
sie komunikuje Browser przesylajac lub dostajac business content.
Warstwa komunikacyjna wywolywania serwisow jest obecnie
zaimplementowana w HttpRequest, Frame i IFrame.









Cytat(anas @ 3.09.2006, 10:02:07 ) *
@060156: moze pochawlisz sie chociaz czesciowo jak wyglada architektura Twojego systemu?
@itsme: Nie mialem na mysli zastapenia czyms wlasnej pracy - przeciez .net to tez gotowy framework prawda? Chodzi mi o podobne podejscie, tak abym nie skupial sie na rozwoju narzedzi, a rozwiazywaniu problemu ktory jest przedmiotem prowadzonego projektu.

@060156: Jeśli Twój system zastępuje pracę 5 osób przez 1.5 roku w stosunku do 6 tygodni jednej to ja jestem skłonny Ci za takie rozwiązanie zapłacić dużo pieniędzy smile.gif - w takim razie ile by Ci zajęło postawienie systemu ze złożonością powiedzmy allegro na Twoim systemie (orientacyjnie)? Może zwolnie 5 osób i zatrudnie Ciebie dając Ci 5x ich wypłata x okres potrzebny na zrobienie tego smile.gif (choiaż trudno mi w to uwierzyć)

Pozdrawiam

anas


Tutaj zalaczam opis Sowa frameworku: http://216.122.144.196/Sowa/SowaPolishIntroduction.doc

Napisany przez: MMP 3.09.2006, 21:00:19

Cytat
Zatem nie rozmawiajmy o tym ze OOp jest wolniejsze bo roznice sa tak niewielkie ze szkoda to poruszac.
Oczywiscie wszystko zalezy od jakosci kodu.

(...) To jest program nie strona www.


Może i w wypadku programu uruchomianego za przez każdego na swoim komputerze nie ma znaczenia, ale odpal ten program 1000 razy na tym samym komputerze - tak jak działa serwer.

-------------------
060156, Twoje podejście wg mnie jest najlepsze - jednoczesnie szybkie jak i wygodne.

Napisany przez: itsme 3.09.2006, 21:49:45

MMP aplikacje pisane przez moja firme dzialja na serwerach jest tam okol 2GB ramu i mocny procek
online pracuje okolo 200 userow na jednym programie
zas na drugim okolo 190 USerów
wiec obciazenie jest i naprawde napisanie takiej aplikacji strukturalnie i badanie czasow wydaje sie hmmm niekonieczne prawidlowe ...

dlatego nie mowmy tutaj o OOP i strukturce inne poziomy programownia i inne zastosowanie.

Napisany przez: anas 5.09.2006, 17:52:34

@060156: Twoje rozwiazanie pochodzi mi pod EZ Components + dobudowanie prostej obsługi żądań i odpowiedzi. Domyślam się że to jest bardzo szybkie rozwiązanie - każde żądanie używa bibliotek takich jak potrzebuje, wykonuje swoje zadania zwraca dane i finito.

Mam jednak wątpliwości co do użeteczności - tak naprawdę pewne czynności mogą być uciążliwe: forwardowanie, przekierowania, obsługa błędów, autentykacja, obsługa formularzy, wymiana widoków(HTML, PDF, RTF...), obsługa filtrów. Tak naprawdę jeśli chcesz wprowadzić globalne zmiany musisz modyfikować dużo kodu.

Jak to rozwiązałeś? Lub może ktoś inny rozwiązał?

Pozdrawiam

anas

Napisany przez: Prph 5.09.2006, 18:25:39

Znowu gadanie typu frameworki sa zle tez jest bez sensu.

Framework nie koniecznie oznacza cos wielkiego i skomplikowanego. Przeciez oczywiste jest, ze kazda aplikacja wymaga obslugi pewnych rzeczy, takich jak sesja, autoryzacja, baza danych. A co z samym uruchamianiem odpowiednich akcji?

Mozna przeciez napisac framework lekki, ktory udostepnia nam minimalnych srodkow koniecznych do sprawnego budowania aplikacji. W ten sposob oszczedzamy na czasie pisania oraz (co jest moim zdaniem duzo bajdziej znaczace) nasza aplikacja staje sie jednolita pod wzgledem budowy i trudniej o popelnienie jakiegos bledu.

Adrian.

Napisany przez: 60156 5.09.2006, 20:24:48

Cytat(anas @ 5.09.2006, 16:52:34 ) *
@060156: Twoje rozwiazanie pochodzi mi pod EZ Components + dobudowanie prostej obsługi żądań i odpowiedzi. Domyślam się że to jest bardzo szybkie rozwiązanie - każde żądanie używa bibliotek takich jak potrzebuje, wykonuje swoje zadania zwraca dane i finito.

Mam jednak wątpliwości co do użeteczności - tak naprawdę pewne czynności mogą być uciążliwe: forwardowanie, przekierowania, obsługa błędów, autentykacja, obsługa formularzy, wymiana widoków(HTML, PDF, RTF...), obsługa filtrów. Tak naprawdę jeśli chcesz wprowadzić globalne zmiany musisz modyfikować dużo kodu.

Jak to rozwiązałeś? Lub może ktoś inny rozwiązał?

Pozdrawiam

anas

Nie jest to trudne, wlasnie wszystkie te funkcje co opisales za zaimplementowane i modyfikacja
bazowych klas nie zdaza sie czesto, ostatnio modyfikacje wykonalem 4 miesiace temu
i sa one postepujace to znaczy wszystkie poprzednie wersje sa zgodne z
postepujacymi modyfikacjami ...
Klasy zostaly tak zaprojektowane, ze miedzy nimi istnieje tylko relacja warstwowa,
czyli:
- klasa service (request, response, marshaling, forwarding, obsluga bledow applikacji i systemowych)
- ogolne klasy funkcjonalne (pdf, flash, html, email, validate, session, database, dialogs, etc ...)
- klasy applikacyjne (security, kalendarz, workflow engine, page builder, etc ..)
- aplikacje uzywaja powyzszych klas ..


Mozesz poczytac o tym na: http://216.122.144.196/Sowa/SowaPolishIntroduction.doc

pozdrawiam 060156





Cytat(Prph @ 5.09.2006, 17:25:39 ) *
Znowu gadanie typu frameworki sa zle tez jest bez sensu.

Framework nie koniecznie oznacza cos wielkiego i skomplikowanego. Przeciez oczywiste jest, ze kazda aplikacja wymaga obslugi pewnych rzeczy, takich jak sesja, autoryzacja, baza danych. A co z samym uruchamianiem odpowiednich akcji?

Mozna przeciez napisac framework lekki, ktory udostepnia nam minimalnych srodkow koniecznych do sprawnego budowania aplikacji. W ten sposob oszczedzamy na czasie pisania oraz (co jest moim zdaniem duzo bajdziej znaczace) nasza aplikacja staje sie jednolita pod wzgledem budowy i trudniej o popelnienie jakiegos bledu.

Adrian.

Mam pytanie jak rozumiesz framework ?
Dla mnie to specifikacja i zestaw komponentow(np. Smarty) do budowania aplikacji. Czyli masz dostep
tylko do warstyw aplikacyjnej, jesli chcesz cos zrobic co nie miesci sie w warstwie aplikacyjnej
to jest problem. Moje doswiadczenia wykazaly, ze wlasnie specyfikacja frameworku czasami
jest zaleta bo masz przepis jak budowac aplikacje a czasami duzym ograniczeniem jesli
chcesz zrobic cos co nie miesci sie w niej. Dlatego ja zrezygnowalem z frameworkow
natomisat postawilem na uzywanie roznych klas w miare malych i dobrze, ktore umozliwiaja
pisanie szybko i roznych aplikacji ..
pozdrawiam 060156


---
korekta: dr_bonzo

Napisany przez: Prph 2.10.2006, 22:27:26

Witam,

Framework kojarzy sie z raczej z kombajnem, ktory daje w prosty sposob uruchomienie dosyc skomplikowanego procesu. Sam uruchimi sesje, wyswietli prezentacje, ble, ble...

Ale jak kolega dobrze zauwazyl - bywaja one czasem wielkiem utrudnieniem. Juz sporo czasu wczesniej myslalem, jak stworzyc system, ktory pozwalalby na wydaje pisanie nowych aplikacji, ktore moga sie bardzo roznic.

Czy ktos ma jakies swoje wlasne szkielety dobrze sprawdzajace sie w takich sytuacjach? Moglby je udostepnic?

Pozdrawiam, Adrian.

Napisany przez: patrycjusz 3.10.2006, 19:05:53

że tak spytam z czystej ciekawości jakim utrudnieniem jest wykorzystanie dobrze napisanego frameworka? Bo nie bardzo rozumiem, ale konkretnie przykłady itp.

Napisany przez: Prph 3.10.2006, 21:17:07

Nie mam duzego doswiadczenia w pracy z frameworkami. Ale zauwazylem jedno - fraweworki bardzo dobrze sprawdzaja sie okreslonych sytuacjach, takich jak budowanie stron portalowych, blogow itp.

Ale co w przypadku budowanie zupelnie innych aplikacji? Zaraz po napisaniu frameworka stworzylem na nim newsletter - swietnie sie na nim pracowalo (tj. na frameworku). Ale kiedy wzialem pioro do reki, zeby zaprojektowac szkic innej aplikacji, to przyznam, ze framework okazal sie wielkiem utrudnieniem.

Sprawa wygladalaby inaczej, gdyby framework byl zupelnie bazowy - bylby odpowiedzialny jedynie za podstawowe rzeczy, takie jak uruchamianie akcji, forwardowanie. Ponadto udostepnialby szereg klas, dzieki ktorym moznaby szybciej tworzyc aplikacje.

Wtedy zabierajac sie za nowy projekt, moglbym go dobrze zaprojektowac i nie myslec, czy moge cos zrobic, bo framework mi na to pozwoli lub nie.

A do tego wystarczy spojrzec na rozne projekty... wieksze projekty. Zaden z nich nie przypomina frameworkow, takich o jakich ostatnio na forum wiele sie mowi. To raczej bazowe elementy z bogatym zapleczem bibliotek. I co wazne - to jakos bardziej oddaje idee programowania obiektowego, przez co moze byc bardziej intuicyjne - nawet dla autorów.

Adrian.

Napisany przez: Ace 3.10.2006, 22:13:11

Cytat(Prph @ 3.10.2006, 22:17:07 ) *
Sprawa wygladalaby inaczej, gdyby framework byl zupelnie bazowy - bylby odpowiedzialny jedynie za podstawowe rzeczy, takie jak uruchamianie akcji, forwardowanie. Ponadto udostepnialby szereg klas, dzieki ktorym moznaby szybciej tworzyc aplikacje.


no popatrz, a ja myślałem, że to właśnie jest Framework? Czyli coś co umożliwia podstawowe rzeczy - stworzenie akcji, nałożenie filtrów, oraz zawiera klasy pomocnicze hm - ORM, uprawnienia użytkowników, klasę do obsługi SOAP, do generowania RSS z podanych danych...

To nie framework? Framework to podstawa na której budujesz reszte. To fundament dobrej budowy.

Cytat
Nie mam duzego doswiadczenia w pracy z frameworkami. Ale zauwazylem jedno - fraweworki bardzo dobrze sprawdzaja sie okreslonych sytuacjach, takich jak budowanie stron portalowych, blogow itp.


Z jakiego frameworka skorzystałeś? Może z gotowego systemu blogów czy systemu portalowego.. - Wordpress??

Ja mam dosyć banalny Framework, ale sprawdza sie. Pisałem na nim portale, sklepy internetowe, system spedycyjny, systemy wewnętrzne (obieg dokumentów) i ... wyobraź sobie, żę zrobiłem to na 1 swoim frameworku... Dziwne nie?

Napisany przez: Prph 4.10.2006, 06:10:34

Wyobraz sobie, ze uprawnienia najbardziej ograniczyly mnie w projekcie...

A z jakiego korzystalem? Z wlasnego winksmiley.jpg W sygnaturze mam linki do Rapide.

Adrian.

Napisany przez: Ace 4.10.2006, 08:25:47

W takim razie Twój framework w czym stwarzał Tobie problemy? Wnioskuje z twojej wypowiedzi, żę Rapide umożliwia tworzenie tylko ... no właśnie czego? Bloga? Portalu?

Spróbuj użyć może jakiegoś nie własnego? Może będziesz mógł stworzyć więcej typów aplikacji winksmiley.jpg

Napisany przez: bela 4.10.2006, 08:32:21

Cytat(Prph @ 4.10.2006, 07:10:34 ) *
Wyobraz sobie, ze uprawnienia najbardziej ograniczyly mnie w projekcie...

A z jakiego korzystalem? Z wlasnego winksmiley.jpg W sygnaturze mam linki do Rapide.

Adrian.

Hm, po to m. in. programuje się obiektowo, zeby mozna latwo zamieniac implementacje poszczegolnych interfejsow. Wiec nie wiem jaki tu problem. Jak klasa nie pasujesz to piszesz nowa i juz.

Napisany przez: Prph 4.10.2006, 13:50:32

Nie twierdze, ze nie dalo sie tego wymienic na inny system, ale w takim wypadku lepiej jest stworzyc cos bardzo prostego i miec wieksza elastycznosc pracy.

Napisany przez: sadu 7.10.2006, 13:13:04

Heja

Pytanie na temat, ale troche z innej strony. Duzych projektow zwykle nie robi sie samodzielnie lecz jakas grupa programistow, grafikow itp... Jakich narzedzi uzywacie wspomagajacych prace grupowa ?

Pozdrawiam i z gory dzieki

Napisany przez: anas 8.10.2006, 11:51:47

Hej.

Jak najbardziej chodziło mi o pracę grupową. Wspomagamy się Subversion, do raportowania błędów używamy flayspray'a, MS Project do zarządzania projektem i oczywiście inne narzędzia przy etapie projektowania. Pytanie dotyczyło technologii która ułatwi sam etap implementacji, a dodatkowo będzie bardzo wydajne ze względu na wielkość projektu i jego docelowo dociążenie.

Pozdrawiam.

anas

Napisany przez: patrycjusz 8.10.2006, 19:27:27

continuum+ant lub trac+phpunit

Napisany przez: jarrod 14.10.2006, 20:45:10

Witam.

Myślę że php + mysql całkiem dobrze sobie radzi nawet w dużych projektach... Ale nie mam zamiary się wdawać w dyskucje na temat co jest lepsze bo to głupota...

Myślę również że czas spędzony nad tworzeniem kodu jest zależny od umiejętności programistów. Nic nowego ale dodam że im większe umiejętności to ten czas się ... wydłuża. Lepiej zabezpieczmy, kombinujemy etc.

To jak się pracuje w php zależy od tego jaki framework sobie stworzymy.
W mojej firmie na php + mysql działa kilka serisów mających w jednej bazie ponad 430K userów. Przy czym najpopularniejszy serwis w sezonie internetowym (mam na myśli wrzesień - październik) ma 2M odsłon dziennie.
Muszę przyznać że jeszcze nie mieliśmy problemów z przeciążeniem serwera... Dzięki dobrze skonstrowanemu cachowaniu można poważnie odciążyć serwer bez kompromisów.

Myślę że można zaprojektować w php odpowiedni framework niemal do wszystkiego (portal czy chociażby newsletter). My sobie taki stworzyliśmy i każdu pomysł jaki nam teraz przyjdzie do głowy to kwestia dopisania odpowiedniej klasy.

Fakt jednak jest faktem że aby stworzyć DOBRY framework potrzebna jest dobrze zgrana drużyna programistów którzy mają doświadczenie w programowaniu więcej niż jednym języku.

Pozdrawiam

Napisany przez: Ociu 15.10.2006, 07:57:10

@jarrod: imho nie php+mysql, a php+$db gdzie !in_array('mysql', $db) == true. MySQl jest dość słabą bazą, nie korzystałem z 5, także wypowiedziałem się na temat 4. Myśle, że wielkie projekty można opisać na 'mocniejszych' bazach , np. pgsql.

Napisany przez: Sh4dow 23.10.2006, 14:18:31

Z tego co anas sie wypowiedział że to tak duży projekt to na dzieńdoby powienien pogadac z adminami na temat mozliwosci i architektury sprzetowej całości. Bo jesli to ma działać na jednej maszynce to juz sobie dajcie spokoj. Bo jesli ktos mowi o paru tysiacach ludzi online i złożonej funkcjonalnosci to rozumiem ze to raczej powazna firma ktora ma powazna kase i wlasne zaplecze serverowe.
Z tym ze MySQL sie nie nadaje do duzych projektow, to albo nie widział duzych projektów albo nie umie wykozystac MySQL'a. Podchodze krytycznie do tego i takich tekstów bo jak na razie nic nie było w stanie przekonac mnie ze MySQL nie potrafi obsluzyc duzych baz danych czy tez nie poradzi sobie z duzym ruchem. Jakos przacowałem przy dużym sklepie na MySQL'u gdzie była wielo gigabajtowa baza i chodziło szybko i bez problemów. Aktualnie pracuje przy impementacji klastra mysql ktory takze posiada duże możliwosci których nie potrafił zapewnić postresql, a na oracle nas niestety jeszcze nie stać.
Proponuje przez serverami z apache postawic loadbalancer'a. Podejzewam ze to bedzie apache a nie lighthttpd poniewaz on obsluguje dobrze rzeczy statyczne. Co za tym idzie podzielenie serwerow na serwery generujace strony i na serwer z danymi statycznymi da duży wzrost wydajnosci.
Przy takiej aplikacji raczejbym stawiał na własne wyspecjalizowane rozwiazania aby uzyskać dużą wydajność. Wszystkie rzeczy, które są bardzo elastyczne, do najbardziej wydajnych nie należą. Dobra budowa Bazy danych tez jest wazne.
Wszystkie elementy sa bardzo wazne przy takich aplikacjach wiec nie mozna zostawiac tego tylko w kwestii samej aplikacji.

Napisany przez: Bora 11.11.2006, 00:58:01

Mysql wspiera np synchronizacje baz danych co pozwala na rozbicie na pare serwerów.

Napisany przez: MStaniszczak 24.11.2006, 12:23:37

a może Bizgres? http://www.bizgres.org/home.php Pamiętam że ktoś na pl.comp.bazy-danych miał z ta bazą do czynienia i chyba nawet mile wspominał jako alternatywa dla czystego PostgreSQL-a w "dużych zastosowaniach".

Pozdrawiam,
Marcin Staniszczak

Napisany przez: rashid 26.01.2007, 13:17:44

Cytat(anas @ 27.08.2006, 22:03:12 ) *
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). [...]

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


Trudno jest jednoznacznie ocenic czym jest 'w miare duzy projekt', ale mysle ze wspolnym mianownikiem dla takowych jest brak mozliwosci skorzystania z gotowych rozwiazan bez ich modyfikacji. Wiekszosc frameworkow jest pisana pod malej/sredniej wielkosci serwisy: blogi i przegladarki bazy danych. Duze projekty maja to do siebie, ze podczas ich pisania wychodza zupelnie nieprzewidywalne problemy wydajnosciowe (np. powolnosc __autoload) i wtedy trzeba usiasc i zmienic implementacje na lepsza dla specyficznych wymagan projektu. Przywiazanie do frameworka w takiej sytuacji moze bolec. Trzeba moc powiedziec 'stop', odpiac sie od drzewa rozwojowego frameworka i zrobic jego wyspecjalizowana wersje.

Sama wydajnosc jest zwodnicza. Programista zawsze chcialby, zeby wszystko bylo ladnie i szybko, ale ilu z Was zastanawialo sie co o tym mysli klient? Niektore zapytania raportowe zawsze beda trwaly kilka godzin, a czasami klient korzystajacy z aplikacji siedzi po drugiej stronie oceanu i jest mu zupelnie obojetnie czy serwis reaguje w 5ms czy w 100ms, bo u siebie i tak ma to z 200ms opoznienia. Nie odgaduj wymagan klienta, sam ci powie czego oczekuje.

Piszac duzy system musisz byc elastyczny, scisle trzymanie sie frameworkow zmniejsza elastycznosc.

Napisany przez: DeyV 6.02.2007, 19:51:46

Rozmowa o frameworkach zawsze stanowi pewien problem, tak jak i wymagania zawsze są inne.

Wydaje mi się więc, że jedyne rozwiązania które mogą się sprawdzić w różnorakich zastosowaniach i nie stanowić zbyt dużego obciążenia dla wydajności do zestawy klas typu EZ compontents albo ZF - dobrze przemyślane mechanizmy realizujące konkretne zadania w szybki i skuteczny sposób.
Są to jedyne 'frameworki' które uznaję, bo w ich przypadku nie mam cały czas wrażenia, ze 'za chwilę' okaże się, że wykorzystywany przeze mnie szkielet nie będzie wstanie czegoś zrobić. W przypadku wykorzystywania ZF oznaczać to może po prostu, że należy coś inaczej zestawić, wykorzystać inny komponent, lub po prostu coś dopisać.

Oczywiście narzędzia typu Prado albo Symfony również mogą się wielu ludziom przydać, szczególnie w przypadku braku własnych narzędzi i sprawdzonych rozwiązań, jednak ich użyteczność jest znacznie mocniej ograniczona.

Napisany przez: mike_mech 6.02.2007, 20:07:41

Cytat(DeyV @ 6.02.2007, 19:51:46 ) *
(...) jednak ich użyteczność jest znacznie mocniej ograniczona.

Jeśli porównując Symfony do ZF mówisz że Symfony jest przy nim ograniczone to nie masz zielonego pojęcia o czym mówisz.
Najzwyklej nie znasz Symfony.

Napisany przez: DeyV 6.02.2007, 22:14:02

mike_mech - myślę jednak, że tym razem nie przeczytałeś ze zrozumieniem.

Symfony jest bardzo rozbudowaną aplikacją, w bardzo zaawansowany sposób wspierająca programistę. I ja dobrze sobie z tego zdaję sprawę, choć osobiście nie przepadam za tego typu rozwiązaniami.

Z przekonaniem będę jednak bronił stanowiska, że:
1) narzędzia typu ZF czy eZComponents można zastosować w o wiele większej ilości przypadków - są bardziej elastyczne i pozwalają na bardziej "wybiórcze" wykorzystanie
2) zarówno Symfony jak i PRADO - mimo bardzo rozbudowanych systemów cache i sporej optymalizacji kodu - narzucają spory bagaż na wydajność aplikacji. W takim przypadku chęć optymalizacji pewnych elementów, ich uproszczenie lub 'rozczłonkowanie' może być na tyle trudne, że łatwiej byłoby pewnie napisanie tych elementów od zera.

A w Symfony osobiście nie lubię nadmiernego pracowania "za" programistę i oraz wykorzystywanie XML'owego DAO, choć wiem, że to akurat można ominąć.

@Turgon - a Twoja wypowiedź jak zawsze - ma bardzo dużo sensu. Żeby choć była gramatyczna... (kurcze - tylko nie tłumacz się potem, że znów byłeś chory)

Napisany przez: menic 7.02.2007, 11:29:45

To że symfony jest wolne i krowiaste to niestety fakt. Ale ze sie wygodnie na nim pracuje to co innego winksmiley.jpg, chociaż brakuje pare rzeczy dry.gif

Napisany przez: bela 7.02.2007, 18:44:01

Cytat(DeyV @ 6.02.2007, 22:14:02 ) *
1) narzędzia typu ZF czy eZComponents można zastosować w o wiele większej ilości przypadków - są bardziej elastyczne i pozwalają na bardziej "wybiórcze" wykorzystanie
2) zarówno Symfony jak i PRADO - mimo bardzo rozbudowanych systemów cache i sporej optymalizacji kodu - narzucają spory bagaż na wydajność aplikacji. W takim przypadku chęć optymalizacji pewnych elementów, ich uproszczenie lub 'rozczłonkowanie' może być na tyle trudne, że łatwiej byłoby pewnie napisanie tych elementów od zera.

ZF może da się użyć w dużej ilości wypadków, ale trzeba jeszcze dużego nakładu pracy aby powiązać to w miarę sprawnie. I właśnie na tym polu Symfony wygrywa, gdyż rozwiązanie zostało sprawdzone wielokrotnie, a do ZF trzeba obsluge podstawowych czynności dopisać (odpalanie akcji, filtow etc) a jak praktyka wielokrotnie dowiodła rozwiązania dopiero co wprowadzone w 99% będą wolniejsze.

Cytat(menic @ 7.02.2007, 11:29:45 ) *
To że symfony jest wolne i krowiaste to niestety fakt. Ale ze sie wygodnie na nim pracuje to co innego winksmiley.jpg, chociaż brakuje pare rzeczy dry.gif

1) Czy duża biblioteka znaczy, że rzecz jest krowiasta? Jakiś konkretny dowód masz odnośnie Symfony?
2) Czego brakuje?

A ja będę dalej dawać za przykład tego, że Symfony nie jest krowiaste i nieelastyczne http://bookmarks.yahoo.com/

Napisany przez: Krolik 12.02.2007, 12:12:08

Jak już o frameworkach mowa: czy w php są jakieś LEKKIE frameworki do budowy aplikacji?
Przez lekki rozumiem framework, który nie narzuca określonego sposobu pisania kodu - możesz wziąć z frameworka tylko tyle ile chcesz, a reszty swojego kodu nie musisz do tego dostosowywać.
Przykładem lekkich frameworków dla Javy jest SPRING. Mozna pisać kod w Springu, który jest 100% czystym kodem Javy bez używania jakichkolwiek importów ze Springa.

I drugie pytanie:
Czy jest dla php jakiś framework wspierający IoC? IoC bardzo ułatwia tworzenie i testowanie dużych projektów.

Napisany przez: normanos 12.02.2007, 12:31:23

CodeIgniter albo ZendFramework przy czym chyba ZF by ci bardziej spasował skoro chcesz poszczególne klasy sklecić wg. własnego 'widzimisie'.

Napisany przez: anas 19.02.2007, 22:17:19

Witam,

jako że jestem autorem wątku, postaram się odnieść do wypowiedzi powyżej i tego na co ostatecznie postawiliśmy:

Symfony Framework - za jego wydajność, skalowalność, szybkość kodowania, dokumentację, wsparcie, wydajność, wydajność, wydajność, szybkość kodowania, wsparcie, dokumentację, wydajność... smile.gif

MySQL w wersji 5.1.x obsługiwany za pomocą ORM'a - pewnie za raz padną teksty, że nie ma to prawa bytu, a ja na to jak na lato - bo to działa bez zarzutu - co ciekawe nie jestem jedyny, na grupach Symfony pojawiły się posty w których to autor prezentował wyniki działania aplikacji opartej o Symofny mającej ponad 25, a może i 35 mln rekordów w bazie danych. Wszystko to stoi na 2 serwerach (jeden do obsługi ruchu WWW, a drugi do obsługi serwera baz danych - MySQL.

Od kilku miesięcy cała moja firma, a tym samym programiście w niej pracujący kodują większość rozwiązań PHP'owych właśnie w oparciu o Symfony. Klienci są zadowoleni z wydajności pracy, ja z kasy, serwery z małej ilości pracy przy dobrej konfiguracji środowiska produkcyjnego.

Dodam że dziś wyszła stabilna wersja 1.0 Symfony, niedawno opublikowana została książka - za darmo dostępna na stronach projektu, a np. takie dodatki jak obiekt $browser (odsyłam do dokumentacji) do testowania wydajności aplikacji mówią mi że jako kierownik projektów postawiłem na dobre rozwiązanie.

Co do innych rozwiązań, jak ZF czy EZ Components - można wybiórczo użyć w Symfony, albo napisać sobie plugin, ehhh po co pisać pewnie już jest napisany biggrin.gif.

Pozdrawiam, anas

Napisany przez: splatch 20.02.2007, 08:11:04

Cytat(normanos @ 20.02.2007, 00:12:30 ) *
a potem się obudziłeś? biggrin.gif Różne rzeczy można powiedzieć o Symfony (nawet dobre he he) ale wydajność? winksmiley.jpg


Wbrew pozorom, symfony nie jest najwolniejsze. Z moich testów, które przeprowadziłem przy pomocy XDebuga wynika, że było szybsze niż Agavi (+Smarty). winksmiley.jpg

Napisany przez: normanos 20.02.2007, 10:52:40

true, smarty przymuli wszystkim winksmiley.jpg

http://www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks/
http://wiki.rubyonrails.com/rails/pages/Framework%20Performance
http://www.sellersrank.com/php/cakephp-codeigniter-benchmark/ (+symfony)

oczywiście zawsze można mieć jakieś "ale" odnośnie metodologii badań ale wiecznie ostatnie miejsca okupowane przez Symfony chyba nie plasują tego FW w kategoriach "wydajny"?

Napisany przez: anas 20.02.2007, 22:40:16

Cytat(normanos @ 20.02.2007, 10:52:40 ) *
true, smarty przymuli wszystkim winksmiley.jpg

http://www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks/
http://wiki.rubyonrails.com/rails/pages/Framework%20Performance
http://www.sellersrank.com/php/cakephp-codeigniter-benchmark/ (+symfony)

oczywiście zawsze można mieć jakieś "ale" odnośnie metodologii badań ale wiecznie ostatnie miejsca okupowane przez Symfony chyba nie plasują tego FW w kategoriach "wydajny"?


"Hehe" potęguje tylko fakt, że podpierasz się opiniami innych, a nie swoim doświadczeniem - testowałem różne rozwiązania, testowałem rozwiązania własne, oceniałem je na tle kosztów utrzymania, rozwoju...

Ja mogę napisać skrypt, który nazwę HyperFastPHPFW, który będzie po prostu realizował wyświetlenie Hello World i nie zapewniał nic dodatkowego - wygram we wszystkich testach, pytanie co z tego. Symfony dostarcza mnóstwo narzędzi, które usprawniają pracę, wydajność(cache po stronie templatów, cache po stronie dostępu do danych). Tak naprawdę fakt czy dany framework jest dobry czy nie, wydajny czy też nie - nie określa głupi (bo inaczej go nie nazwę) test wyświetlania HelloWorld, a składowa wielu czynników o których zapomniałeś.

Osobiście nie zależy mi na tym aby ktokolwiek wierzył, czy nie wierzył w to co piszę - Polacy to uparty naród - ale Symfony jest wydajnym frameworkiem, tylko trzeba go odpowiednio dostroić.

Pozdrówka, anas

Edyta:

Tak BTW, to warto poczytać wyniki różnych innych testów - mimo, że nie odnosiłbym się jak pisałem powyżej z pełnym zaufaniem, bo są "debilnie" nierealne, ale poniżej dowód na to, że Symfony nie wypada aż tak źle - bo z 4 testowanych FW, jest tutaj drugim pod względem wydajności, przy założeniu że ma największą ilość załadowanych dodatków(plików) - dając tym samym dużo większe możliwości.

Oto adres: http://paul-m-jones.com/blog/?p=236

Napisany przez: anas 21.02.2007, 00:44:30

Cytat(normanos @ 20.02.2007, 23:01:48 ) *
jeżeli swojego doświadczenia nie przeleje na oficjalny wpis na blogu to dla ciebie jest to gówno warte?
a Hummer H3, podobno obiekt westchnień (?!?) spala 10-20l na setkę...


Czytanie ze zrozumieniem to chyba kolejny problem naszego narodu, cóż.

Pierwsza rzecz to przelewanie na wpisy w ramach blogu - gdzie, ktokolwiek wspominał, że masz to robić - podkreślam, bazujesz na opiniach z blogów, przytaczasz argumenty innych - napisz: pracowałem na: X, Y, Z - w mojej ocenie Y wypada najlepiej bo... i jeśli przekonasz mnie, moich klientów, programistów, administratorów że inny framework jest korzystniejszy, podbudowując to konstruktywną argumentacją, uwierz mi że będę się mocno zastanawiał nad ewentualną zmianą.

Porównanie do Hammer'a jest ni w ząb nie trafione, bo moja "Edyta" wyraźnie wskazała, że nie masz racji, nawet co do testów na których bazujesz. Są inne, całkiem odwrotne do tych które podałeś. Ja dodatkowo mogę powiedzieć co nieco prosto z warsztatu, bo moja firma jak wspominałem bazuje na Symfony, jeśli chodzi o aplikacje PHP.

Porównując Symfony do np. takich FW jak ZEND FW, Solar - to tak jak bym porównywał .net + VS Studio, do EditPlus'a i korzystania z MFC. Dzisiejsze koszty sprzętu w stosunku do kosztów pracy inżynierów są śmieszne. Skoro optymalizacja wydajność, bazująca na pracy 3-4 inżynierów to koszt średnio 12-15 tyś miesięcznie na rękę + ZUS, podatki, koszta utrzymania firmy, to ja za te pieniędzy dozbroję się w kolejny serwer i wydajność zostanie podniesiona dużo bardziej. Dodatkowo optymalizując środowisko pracy, można zbliżyć się do wyników najbardziej wydajnych środowisk, który przytaczałeś.

Dodam jeszcze, że w stosunku do inżynierów Yahoo, Twój autorytet ma dla mnie mniejszą wagę, a oni postawili właśnie na Symfony, przy jednym z serwisów tematycznych i co ważniejsze, są z tej decyzji zadowoleni. Niemniej jednak każda konstruktywna wypowiedź ma wartość merytoryczną, byleby właśnie była konstruktywna.

Każdy robi to co lubi, jeśli nie lubisz Symfony to używaj innych narzędzi, jeśli jednak nie masz pewności polecam wypróbować - to nic nie kosztuje poza poświęconym czasem.

Pozdrówka, anas

Edyta: No i bym był zapomniał - porównujemy FW bazujące na 4 i 5 wersji PHP - to też silny argument który wpływa na decyzję - zalet programowania obiektowego nie trzeba chyba nikomu tłumaczyć, ograniczeń co do tych kwestii 4 wersji PHP też, nie będę wspominał o tym że warto zastanowić się nad dostępnością php4 w stosunku do php5 teraz i za kilka lat, chyba że myślimy o aplikacji na dzisiaj i wczoraj, nie dzisiaj i jutro.

Wydzieliłem z tematu parę "bardziej osobistych" postów.
Szkoda psuć ciekawy wątek. - DeyV

Napisany przez: NuLL 22.02.2007, 18:52:52

PHP4 to przezytek - czy jest na serwerach czy nie. I to jest pewne.

Duze projekty przewaznie chodza na serwerach dedykowanych badz firmowych - bo duzego projektu na hostingu wspoldzielonym to ja nie widze. Dlatego tez jedyne sensowne PHP w duzych projektach to PHP5 i basta.

Co do testowania - zadnego z testow nie uwazam za wiarygodne - sporo z nich przegladam ( linkow nie pamietam smile.gif ) i przewaznie sie rozne wyniki.

Z tego co ja przejadlem pomimo mojego mlodego wieku wynika iz miejscami dobrze napisac FW pod konkrenty projekt. Mowie tu o obciazeniu rzedu kilku mln uniq smile.gif Napisanie fw pod taki projekt do dla dobrego programisty nie jest niczym szczegolnym. Kierujac firmowym FW wycina sie to co zbedne. Np. jakies pluginy kontrollera ( ZF ) na rzecz konkretyzacji np. pluginu autoryzacyjnego.

ORM - korzystalem tylko z phpDoctrine. Propela chcialem raz uzyc z grubej dosc rury winksmiley.jpg pt. 70 kilka tabeli. Pojawialy sie joiny po kilkunastu tabelach i nie chcialo mi sie patrzec na wydajnosc tego bo jej nie bylo. SMARTY do tego i byl kill. Ale Propela wywalilem przechodzac czesciowo na phpDoctrine, czesciowo na proste mapowanie klasami tabel i pojedynczych wierszy ( activeRecord itp ), do tego szablony przeszly na PHP i cud miod malina smile.gif

Napisany przez: nasty_psycho 14.03.2007, 22:40:24

Cześć!

Tak sobie czytałem ten topic i nasuną mi się pomysł jak można odrobinę "ztiuningować" serwis.
Wszyscy zapewne kojarzycie technologie AJAX z serwisami web 2.0 gdzie głownie jest wykorzystywana dla bajeru, po to aby użytkownikowi przyjemniej się chodziło po portalu.
Ale można tez wykorzystać AJAX-a to poprawy wydajności serwisu.

W "normalnych" okolicznościach to surfowanie po portalu wygląda następująco: użytkownik wchodzi na stronę, strona się ściąga, użytkownik klika jakiś link, i kolejna strona się ściąga, aż mu się znudzi i wyjdzie. W tej sytuacji można skorzystać z AJAX-a następująco: użytkownik wchodzi na stronę, strona się ściąga, użytkownik klika w jakiś link, i ściąga się tylko pewna część strony, a inne elementy pozostają nie zmienne. W tym przypadku przyjmijmy ze strona ma rozmiar 50 KB a użytkownik klika w 10 linków zanim mu się nie znudzi.

Wiec jest tak:
- 50 KB (pierwszy raz) + (50*10) = 550 KB
czyli serwer to każdego człowieczka wysyła ponad 0,5 MB

A przy wykorzystaniu tego co omówiłem przed chwilą, to wygląda tak:
- 50 KB (pierwszy raz) + (10*10) = 150 KB
czyli serwer wysyla tylko ~ 27% tego co by wyslal w tradycyjnych warunkach.
Czemu 10 KB a nie 50 KB? dlatego ze główne elementy które sporo waza takie jak reklamy, grafika, itd. pozostają niezmienne.

ps. Może ktoś mówić ze przeglądarki maja cache, ale według mnie to nie daje takich możliwości jak AJAX.

Pozdrawiam

Napisany przez: Łukasz O. 16.03.2007, 08:50:44

a kiedy przychodzi do SEO to zbierasz resztki tego co z Ciebie zostanie po tym jak Cię klient dorwie i zaczynasz pisać wszsytko od nowa - AJAX w postaci zaproponowanej przez Ciebie TAK - ale dla panelu administracyjnego chyba, albo strony, która całkowicie pozycjonowanie olewa

Napisany przez: Ace 16.03.2007, 09:42:00

Można to wszystko napisać tak, aby googlebot widział ten content. Po prostu każdy komponent piszesz w wersji AJAX i zwykłej winksmiley.jpg A w serwisie wtedy możesz rozpoznać w jakiś sposób, czy np: Googlebot sobie chodzi i ustawić mu AJAX=false i po ptakach.

Napisany przez: Diwi 16.03.2007, 20:13:24

Tyle że to jest Cloaking czyli podstawianie botowi wyszukiwarki innej treści za co niestety Google potrafi ukarać.

Pozdrawiam

Napisany przez: normanos 16.03.2007, 21:27:32

już tam nie przesadzajcie, jak wszystko trzeba używać z głową winksmiley.jpg Ajaxa używać do takich elementów, których bot i tak nieindexuje (przykład: głosowanie w ajaxie, zamiast oddania głosu i reloadu strony) a nie do np. paginacji czy innych kluczowych elementów strony.

Poza tym jaki cloaking skoro każdy bot zobaczy to samo?

Napisany przez: bełdzio 17.03.2007, 12:38:05

Cytat(Ace @ 16.03.2007, 09:42:00 ) *
Można to wszystko napisać tak, aby googlebot widział ten content. Po prostu każdy komponent piszesz w wersji AJAX i zwykłej winksmiley.jpg A w serwisie wtedy możesz rozpoznać w jakiś sposób, czy np: Googlebot sobie chodzi i ustawić mu AJAX=false i po ptakach.

ewentualnie jedna wersja strony + funkcja JS, która zamieni linki z normalnych na "ajaxowe"

Napisany przez: Fuzja 18.03.2007, 16:26:11

Zawsze lubiłem symfony, a zf jakoś mnie odrzucał.
Wczoraj poczytałem dokumentację tutorial przetłumaczony przez Wojtka Naruńca i naprawdę super rzecz. Byłem sceptycznie nastawiony do tego frameworka ale teraz jestem jego wielkim fanem.
Polecam wsystkim, dla których liczy się szybkość tworzenia, świetna dokumentacja oraz wsparcie winksmiley.jpg

Napisany przez: a79rtur 18.04.2007, 13:13:56

anas: twoj lobbing na rzecz symfony jest calkiem przekonywujacy smile.gif, dlatego troche sie tym zainteresowalem
mam pytanie, jak wyglada tam sprawa z uzyciem szablonow xsl ? czy jest to wogole mozliwe ?

Napisany przez: anas 18.05.2007, 15:43:46

Hej,

a79rtur: a dlaczego miałoby nie być możliwe? Przecież to Open Source - można sobie przepisać framework w taki sposób aby była taka możliwość. Rozumiem, że chodzi Ci o jakąś automatyzacje, tak więc:

widok, to zwykły plik, więc możesz tam tworzyć XML'a który będzie opisywał Twój dokument, a następnie transformować go za pomocą XSL do np. XHTML'a - po stronie serwera można to usprawnić poprzez podmianę klasy

rendering_filter:
class: sfRenderingFilter

w pliku factories.yml

Oczywiście można też transformację przenieść na przeglądarkę, ale tutaj pojawia się wiele problemów z obsługą przez nie XSL'a.

Tak czy siak wszystko jest możliwe.

------------

BTW. Teraz borykam się z innym problemem - chodzi o wersjonowanie danych w bazie - wyobraźmy sobie sytuację, że produkt jest opisany za pomocą kilku tabel: produkty, atrybuty, atrybuty_produktow, zalaczniki_produktow, itd...

Teraz jakiś klient sklepu internetowego składa zamówienie dla produktu znajdującego się w jakimś stanie - jakaś cena, przypisane atrybuty, załączniki. Po złożeniu zamówienia dochodzi do tego że administrator kasuje załącznik i dodaje nowy, w drugim wprowadza zmiany (np. dotyczące gwarancji z 24 na 12 miesięcy). Zmienia wartość atrybutu "gwarancja" też z 24 na 12 msc, a tym samym wpływa to na cenę i w głównej tabeli produktu, więc i ją edytuje. Takich zmian dokonuje w między czasie wiele - użytkownik po 2 tygodniach loguje się na swoje konto i chce zobaczyć załącznik do produktu który zamówił (czyli stan taki jak z daty kiedy składał zamówienie) - podobnie ma widzieć odpowiednią cenę i atrybuty produktu.

Jak rozwiązujecie wersjonowanie danych na poziomie bazy, w systemach gdzie stan na daną datę jest krytyczny?

Pozdrówka, anas.

Napisany przez: NuLL 18.05.2007, 16:05:53

Cytat
Jak rozwiązujecie wersjonowanie danych na poziomie bazy, w systemach gdzie stan na daną datę jest krytyczny?


Troche to hardcore mowiac prawde winksmiley.jpg W większości wypadków trzeba wesjonować wszystko - mowie np o calym rekordzie. Rozwiazanie z jakiego korzystam to pakowanie tar-em najczesciej i trzymanie wersji poszczegolnych w SQLLite - ew mozna to trzymac w plikach - obecna wersja w glownej bazie i tylko. Z takimi rzeczami jak atrybuty to by trzeba pomyslec - ale jakby sie chcialo do tego przylozyc to zapewne wypadaloby sobie napisac mechanizm drzewiasty bo on idealnie do czegos takiego sie nadaje : )

Jak się składa zamowienie na produkt - to sie powinno zgodnie z prawem dostac to co sie zamowilo - ale to taki maly OT: D

Napisany przez: Łukasz O. 18.05.2007, 16:11:24

przykład z zamówieniem w sklepie internetowym:
dodałem dodatkową tabelę z zapisanymi zserializowanymi informacjami o produkcie (na wypadek gdyby mi jakieś pola doszły/uciekły) - klient zapisuje dane, a ja odczytuję - kiedy zamówienie zostanie zrealizowane rekord jest usuwany

PS. wszystkie zrealizowane zamówienia zrzucane są do osobnej tabeli a ta archiwizowana raz na miesiąc (umożliwia to odtworzenie wszelkich transakcji)

Napisany przez: Sedziwoj 18.05.2007, 18:35:39

W sumie jak jest zmieniane coś więcej niż cena to już się staje innym produktem, bo zmieniając okres gwarancji tworzy się nowy produkt, najczęściej z inną ceną.
Edycja produktu powinna się ograniczyć do poprawy błędnych informacji, czy zmiany ceny (bo cena danego produktu maże się zmieniać, ale ją można trzymać w tabeli wiążącej transakcja-produkty)
A więc zmiana okresu gwarancji to utworzenie nowego artykułu, a stary staje się niedostępny do kupna.
Ale to są raczej moje rozmyślania, bo tabela produktów robi się przerostowa. A jak chcieć przenosić skasowane do innej to tabela wiążąca transakcja-produkt powinna wiedzieć, że produkt nie jest w aktywnej liście produktów, tylko w archiwum.
Np. mając dwie kolumny id jedna odnosi do aktualnej tabeli a druga do archiwalnej, tylko wtedy wyzwalacz który by przenosił produkt do archiwalnej przy kasacji musiał by też zmienić kolumnę z id... lub lepiej mieć dwie tabele wiążące transakcje z produktem tongue.gif

Co do przenoszenia (podkreślam, bo tworzenie kopi to inna sprawa) jakiś danych z bazy do pliku, jest dziwne, no chyba że to są elementy nie istniejącego już systemu, a dlaczego dziwne? Bo przecież wchodząc w swoje transakcje chcę widzieć wszystkie i móc zobaczyć co wtedy kupiłem, a nie że (np.) po pół roku znikają...
To przypomina mi Allegro gdzie jednaj osobie wystawiłem trzy razy komentarz, bo zmieniali system czy też archiwizowali(?), ale transakcja została, tylko informacja o komentarzu wyleciała...

Napisany przez: Rokis 18.08.2008, 22:12:14

Panowie, gdy sprawdzałem sobie wydajność frameworków to za głowę się złapałem. My piszemy kod na podstawie własnego framework'a, który za każdym razem obcinamy na potrzeby konkretnego projektu.

Ten sam kod po implementacji i benchmarkach:
Nasz FW: 300 req/s
ZF: 60 req/s
CakePHP: 27 req/s


Naszym zdaniem:
1. Zaoszczędzisz na czasie kodowania ($ dla programistów) = wydasz na infrastrukturę
(40k BRUTTO za m-c pracy zespołu to mały wydatek przy zakupie 10 wysokowydajnych serwerów)
2. Klient którego ktoś przekona że da się szybciej bez inwestowania w infrastrukturę nie zostawi u Ciebie po raz kolejny pieniędzy.

Napisany przez: rybik 19.08.2008, 00:04:33

Bardzo to dobry i pożyteczny topic smile.gif proszę wytłumaczyć laikowi tak w kilku zdaniach (bo wiem, że o frameworkach napisano juz wiele) co różni wymieniane frameworki i na jakie cechy kładzie się największy nacisk we własnych fw pod kątem aplikacji dużych i mocno obciążonych.
To nie jest pytanie z cyklu "który framework wybrać". Chciałbym się z grubsza dowiedzieć "co kosztem czego" w danym frameworku.

Napisany przez: chlebik 19.08.2008, 01:09:18

Panowie, ale wydaje mi sie, ze caly czas zapominamy o podstawowej rzeczy - o tworzeniu elastycznego i latwego w utrzymaniu kodu. Owszem, mozna napisac swoj FW (no dobra, biblioteke klas bo nowka sztuka FW to raczej nie bedzie) pod konkretna aplikacje. Mozna, ale potem project manager sie zmieni, lead programmer tez kiedys w koncu odejdzie skuszony praca dla JeszczeBardziejNowatorskiejFirmy i zostanie 2 swiezo przyjetych koderow, ktorzy beda probowali zrozumiec, o co chodzi w tym kodzie.

Ja wiem, upraszczam, ale zaleta stosowania najbardziej popularnych FW jest to, ze w razie jakichkolwiek zawirowan personalnych, dosc szybko mozna znalezc ludzi, ktorzy projekt pociagna dalej, bez tracenia miesiaca na rozgryzanie pozostalosci po poprzednikach. Zas nawet w samych popularnych FW da sie tak przykroic kod, ze zostanie tylko to, co konieczne - bezposrednie wpisywanie kodu SQL do zapytan, cache na wyniki zapytan do bazy, statyczny content, cache serwera lub samej bazy (memcache), uzywanie statycznego w znacznej mierze layoutu rozwiazuje kwestie wydajnosci w 90% przypadkow tzw. duzych projektow.

Napisany przez: normanos 19.08.2008, 14:34:52

+1 dla @chlebika winksmiley.jpg

To m.in. dlatego duże firmy wybierają Symfony.

Napisany przez: Krolik 12.09.2008, 09:22:09

Trochę rozbawiła mnie dyskusja na temat wyższości wydajności jednego frameworka PHP nad innymi biggrin.gif
To trochę jak w czasach, kiedy szczytem marzeń był Polonez, porównywać czyj Fiat 126p wykręca więcej na liczniku.

A tak bardziej na serio, to:
1. Wiele serwisów przytyka się na bazie danych, nie na warstwie prezentacji / logiki biznesowej. I winny temu nie jest zwykle ORM, tylko po prostu brak umiejętności posługiwania się obecnymi RDBMSami. Np. jak ktoś robi złączenia kilkunastu tabel na MySQL, to tylko się prosi o kłopoty z wydajnością.

2. Tam gdzie wydajność wyższych warstw ma rzeczywiście ma znaczenie - lepiej pisać serwis w J2EE / .NET. Wydajność wykonywania kodu znacznie wyższa
(ponad 10x), lepsze biblioteki i frameworki, udogodnienia w języku specjalnie do dużych projektów (np. statyczna typizacja), narzędzia do refactoringu, większe możliwości buforowania różnych rzeczy, wiele gotowych zaawansowanych rozwiązań jak np. replikacja, failover itp. Wszystko to oczywiście da się uzyskać w PHP, ale robiliśmy kilka projektów w tym i w tym, i musze przyznać, że w J2EE wychodzi taniej szybciej i porządniej. Jedyny problem, że programiści J2EE cenią się zwykle wyżej niż PHPowcy, więc trzeba im więcej zapłacić. No i ostatnio coś ciężko ich na rynku znaleźć. sad.gif

Napisany przez: Cysiaczek 12.09.2008, 14:43:31

Co do porównania pehapowych FW to może i bym się zgodził, ale o jednej rzeczy zapomniałeś - o tym, że logikę też można skopać smile.gif
Ba! Można ją skopać razem z bazą danych - wystarczy prosty skrypt w php wyświetlający dane z bazy w widoku przez mysql_fetch_assoc(), gdzie w pętli umieścimy dodatkowe obliczenia. Gwarantuję, że jeśli baza ma limity, to zdechnie tongue.gif.

W dużym serwisie łatwiej dostawić serwer z aplikacją niż kolejną bazę ( http://forum.php.pl/index.php?showtopic=102621&view=findpost&p=515320 ). Jeśli łatwiej, to koszt utworzenia aplikacji w .NET, J2EE, czy PHP zdaje się nie mieć znaczenia. Różnice wydajnościowe muszą być niewielkie, skoro php jest dalej stosowane - te 10x to skąd wziąłeś? Bo to tak trochę jak z Rubym, który niby jest taki pro, a jednak muli i nikt go nie chce. Java też muli... .NET - nie wiem smile.gif

Pozdrawiam.

Napisany przez: Krolik 12.09.2008, 20:36:32

1. Benchmarki: Wejdź sobie na Great Language Shootout. Ruby jest na końcu listy wydajności, PHP niewiele lepiej. Można instalować przyspieszacze (bytecode cache), ale i tak daleko jeszcze do szybkości języków z górnej części listy (C, C++, D, Java i parę innych).

2. Teoria: Język interpretowany, dynamicznie typowany (PHP, Ruby) zawsze będzie dużo wolniejszy od języka ze statyczną typizacją, natywnie kompilowanego (Java, .NET).

Mimo to, napisałem, że wydajność PHP na ogół nie jest przeszkodą, bo jak się dobrze napisze warstwę logiki / prezentacji, to ona niewiele ma do roboty w porównaniu z np. bazą danych. Oczywiście wszytko zależy od konkretnego systemu.

BTW: Dołożenie nowego serwera aplikacyjnego jest w PHP trudniejsze niż w J2EE. Choćby dlatego, że takie rzeczy jak replikacja przezroczysta dla aplikacji jest w J2EE dostępna "out of the box" (np. Terracotta) - instalacja w kilka minut i mamy klaster - z dowolnej aplikacji, bez ruszania ani jednej linii kodu źródłowego. Podobnie przy aplikacjach w EJB3 - przełączasz 2 switche w ustawieniach serwera aplikacyjnego i masz klaster. Tymczasem o PHP był tu gdzieś wątek i z tego co pamiętam, nikt nie podał satysfakcjonującego rozwiązania (replikacja sesji + failover).

Napisany przez: mrok 12.09.2008, 21:53:41

J2EE Taaaak zajebisty pomysł winksmiley.jpg pracuję właśnie w firmie zajmującą się tą technologią - pewnie dało się to zrobić lepiej, ale teraz projekt nad ktorym pracujemy jest ogromną kobyłą, która kompiluje się 12 minut, a uruchamia na serwerze kolejne 25min - najdrobniejsza nawet zmiana to ponad pol godziny czekania. Koledzy z .net mówią ze u nich jest podobnie winksmiley.jpg Dlatego wole php - większość zmian wymaga tylko ctrl+r w przeglądarce i widzę efekty

Napisany przez: orglee 13.09.2008, 00:17:34

mrok: Normalnie mało ze śmiechu się nie popłakałem. A nie można tego modułowo napisać i kompilować tylko konkretne części / biblioteki.
Poza tym chyba trochę przesadziłeś z tymi 25cioma minutami. Przecież to jest nierealne. To ta aplikacja służy do obliczeń danych z LHC. tongue.gif
Mógłbyś uściślić co to za kobyła która odpala się 25 minut ?

Napisany przez: sf 13.09.2008, 06:24:47

Cytat(chlebik @ 19.08.2008, 02:09:18 ) *
Panowie, ale wydaje mi sie, ze caly czas zapominamy o podstawowej rzeczy - o tworzeniu elastycznego i latwego w utrzymaniu kodu. Owszem, mozna napisac swoj FW (no dobra, biblioteke klas bo nowka sztuka FW to raczej nie bedzie) pod konkretna aplikacje. Mozna, ale potem project manager sie zmieni, lead programmer tez kiedys w koncu odejdzie skuszony praca dla JeszczeBardziejNowatorskiejFirmy i zostanie 2 swiezo przyjetych koderow, ktorzy beda probowali zrozumiec, o co chodzi w tym kodzie.


Dlatego taki framework można potem udostępnić np. na zasadach open source. Tak przecież zdobył popularność code igniter. Z drugiej strony nie wydaje mi się dużym problemem by zapoznać programistę w pierwszym miesiącu z wewnętrznym frameworkiem. Istotną kwestią jest to czy ten framework jest udokumentowany, dobrze napisany i ciągle rozwijany, jeśli tak to moim zdaniem śmiało w firmie można go używać.

@Krolik: pomyliłeś topiki? to jest forum o PHP, pytanie jest o PHP i duże projekty, więc sobie o tym JAVA vs PHP pisz w osobnym topiku na hydepark

Napisany przez: Krolik 13.09.2008, 11:47:00

Pytanie jest o PHP i duże projekty. Wyraziłem tylko opinię, że w dużych projektach PHP nie jest tym co tygryski lubią najbardziej, bo są lepsze rozwiązania i tyle. Może nie na temat?

PHP nigdy nie było projektowane z myślą o dużych systemach. Że niektórzy je stosują na siłę do dużych projektów, bo najpierw projekt był mały, chodził na tanim hostingu, ale zdobył popularność i się rozrósł, to inna sprawa. Ale później są niezłe problemy. Jak mi goście z dużego polskiego portalu opowiadali jakie cuda musieli robić, żeby ostatecznie rozwiązać problem składowania i replikacji sesji, to się zastanawiałem, gdzie sens i logika, skoro w J2EE te rzeczy są gotowe i działają od razu.

Frameworki do budowy aplikacji - wszystko fajnie, jeśli chodzi o funkcjonalność, ale tylko do stron o małym obciążeniu. Narzut czasu wykonania jest ogromny, kiedy taki framework MVC przy każdym requeście musi parsować ponownie wszystkie szablony w XML, tworzyć obiekty, które po zakończeniu skryptu lecą na śmietnik. Są na to jakieś tam obejścia, acceleratory i inne hacki, ale jakbym miał kasę wyłożyc na projekt, to wolałbym, żeby nie był to jeden wielki hack powiązany sznurkami i taśmą klejącą, tylko coś porządnego zaprojektowanego raz a dobrze. Duże serwisy jak Onet, owszem robią w PHP, ale piszą w sposób proceduralny i nie polegają na gotowcach.

BTW: To jakiś niezły WTF macie w tej aplikacji, że musicie restartować wszystko aby zmienić coś w kodzie. W Javie/.NET też można edytować kod bez restartu apikacji. Po kliknięciu "save" zmiany są nanoszone od razu na działający kod. tongue.gif A już ten czas 25 minut to jakiś wielki ROTFL. Robimy duży portal mobilny w J2EE oparty na frameworku komponentowo/zdarzeniowym i odpala się ok. 6-10 sekund na 5 letniej developerskiej maszynie.

Napisany przez: normanos 13.09.2008, 15:03:23

spoko, ale nie śmiećcie tutaj o czymkolwiek innym niż PHP. Temat jest jasno sprecyzowany, a miejsce na jakiekolwiek flejmy jest w hydeparku.

Napisany przez: mrok 13.09.2008, 20:07:13

//adminie to moj ostatni off o javie w tym temacie - odpowiem krotko przedmówcą

orglee - powiem Ci co to za projekt jak zmienie prace winksmiley.jpg można było podzielić na moduly, ale wcześniej nikt o tym nie pomyślał a teraz brak odważnych winksmiley.jpg

Cytat
A już ten czas 25 minut to jakiś wielki ROTFL. Robimy duży portal mobilny w J2EE oparty na frameworku komponentowo/zdarzeniowym i odpala się ok. 6-10 sekund na 5 letniej developerskiej maszynie.
Nie pisałem o maszynie (ja odpalam na 3 letniej), ale serwerze aplikacji (JBoss, GlassFish).

Napisany przez: Krolik 15.09.2008, 16:38:52

Dobra, pozostając przy PHP: czy są jakieś dobre frameworki do budowania aplikacji komponentowo / zdarzeniowo?
IMHO przy dużych projektach ten sposób programowania jest łatwiejszy, i w przeciwieństwie do proceduralnego, bezstanowego podejścia serwowanego przez większość frameworków MVC (nawet jeśli zaimplementowanych przy użyciu klas i PHP5), w pełni wykorzystuje obiektowość.

Napisany przez: LBO 15.09.2008, 19:41:43

PRADO, ale i tak polecałbym zapoznać się z czymś innym.

Napisany przez: Krolik 16.09.2008, 10:23:50

Dlaczego z czymś innym? Jakie są wady / zalety PRADO?
Czy wydajność w dużym projekcie jest rzeczywiście tak dobra, jak piszą na stronie?
Ktoś się tym bawił?

BTW: znalazłem coś takiego: http://www.avnetlabs.com/php/php-framework-comparison-benchmarks
Wynika z tego, że wszystkie te frameworki są okropnie powolne i generują olbrzymie narzuty. sad.gif

Napisany przez: kwiateusz 17.09.2008, 15:34:59

ale jak to ktos madry powiedział: serwer jest tanszy niz programista smile.gif

Napisany przez: Sedziwoj 17.09.2008, 15:38:16

Cytat(kwiateusz @ 17.09.2008, 16:34:59 ) *
ale jak to ktos madry powiedział: serwer jest tanszy niz programista smile.gif


Bo miesiąc pracy programisty to serwer, a więc jak coś sprawi że coś zajmie 2 razy mniej czasu, to po miesiącu już się zwróci ten dodatkowy serwer, po dwóch...
Dlatego FW, OOP itd. jest tak rozchwytywane, bo skraca czas tworzenia, poprawiania, modyfikacji, mimo że daje dodatkowy narzut do obciążenia.

Napisany przez: normanos 17.09.2008, 17:03:19

Cytat(Krolik @ 16.09.2008, 09:23:50 ) *
Wynika z tego, że wszystkie te frameworki są okropnie powolne i generują olbrzymie narzuty. sad.gif

To tak jakby narzekać, że lepiej używać kosy bo kombajny są duże, głośne i na drogą benzynę winksmiley.jpg

Napisany przez: orglee 17.09.2008, 19:20:29

Hahahaha pięknie podsumowaliście pytanie dlaczego należy używać frameworków ^^
Jednak tutaj pytanie jest zdaje się o wydajność innych i to czy warto pisać własny.

Myślę że na drugie można odpowiedzieć tak...
Jeśli możesz wygospodarować trochę czasu lub widzisz wyraźne irytujące braki w innych młotkach, powinieneś zrobić swój własny.
Pisanie własnego czy też używanie już istniejących niesie ze sobą tyle samo zalet co i wad. O tym czy konstruować własny młotek każdy musi zdecydować sam biorąc pod uwagę wiele drobnych szczegółów. Sytuacja ma się nieco inaczej jeśli dotyczy to firmy i grupy programistów.
W takim wypadku jestem zdania że należy użyć już istniejącego jeśli nie chce się doprowadzić do nierentowności firmy.

Napisany przez: Krolik 18.09.2008, 15:47:26

No, ja się zgadzam z tym, że czas programisty jest droższy niż sprzętu, ale... różnice w tych benchmarkach są rzędu 10-15x na niekorzyść frameworków w porównaniu z "baseline PHP", a koszty sprzętu to nie jedyne wydatki związane z niższą wydajnością. A kto: będzie to serwisował, płacił za prąd, pilnował by nie wynieśli, udostępniał pomieszczenia? IMHO koszt zbudowania klastra 50 serwerów zamiast 4 może być bardzo duży w porównaniu z kosztem samych skrzynek. Zresztą skrzynki serwerowe tanie nie są. Przecież nie postawię serwisu na sprzęcie domowym w garażu u kolegi. Serwer dedykowany to ok. 5 tys /rok. Stawiając takich 50 łatwo wylecieć z całego budżetu na projekt... Przy projektach, które przewidują duże obciążenie, użycie frameworku PHP przynosi korzyści na początku, ale na dłuższą metę może być ryzykowne.

A jeśli pisać własny, to czy w ogóle da się dorównać wydajności zwykłego proceduralnego PHP?


Cytat
Cytat

Wynika z tego, że wszystkie te frameworki są okropnie powolne i generują olbrzymie narzuty. sad.gif

To tak jakby narzekać, że lepiej używać kosy bo kombajny są duże, głośne i na drogą benzynę


Ale co, jeśli można mieć kombajn, który nie pali dużo i jest cichy?

Cytat
Dlatego FW, OOP itd. jest tak rozchwytywane, bo skraca czas tworzenia, poprawiania, modyfikacji, mimo że daje dodatkowy narzut do obciążenia.


Tylko w PHP jest to szczególnie widoczne. W kompilowanych językach narzutu na OOP praktycznie nie ma.

Napisany przez: normanos 18.09.2008, 16:57:19

Cytat(Krolik @ 18.09.2008, 14:47:26 ) *
Ale co, jeśli można mieć kombajn, który nie pali dużo i jest cichy?

Właśnie takim jeżdżę winksmiley.jpg ale Ty ciągle mimo wszystko mówisz o kosie winksmiley.jpg

Napisany przez: LBO 18.09.2008, 17:10:31

Cytat(normanos @ 18.09.2008, 17:57:19 ) *
Właśnie takim jeżdżę winksmiley.jpg ale Ty ciągle mimo wszystko mówisz o kosie winksmiley.jpg


Czytam te Wasze analogie i przypomniała mi się rozmowa na GG z nienzjaomym Mi kolesiem na temat frameworków vs. własne rozwiązania.

Cytat
:nieznajomy:
nie, po prostu uwazam ze nie zatrudniam calej druzy pilkarskiej do strzelenia gola do pustej bramki
alan 11:14:50
Tak, ale mozesz miec takiego trenera, ktory wystawi tylko jednego gracza
:nieznajomy:
tylko ** ***** mam placic za pozostalych 10 zawodnikow i samego trenera



smile.gifsmile.gif Nie zrozumiałem tego ostatniego argumentu, ale i tak bladł przy innych Jego wymysłach.

Cytat
:nieznajomy:
projektuje sie na potrzeby a nie na wyrost
:nieznajomy:
wrzucasz folder 10GB na dysk a potem go otwierasz i usuwasz 9.99GB bo potrzebujesz z niego tylko 1 plik tekstowy!?
alan 11:30:06
ale co to za argument? skoro masz framewrok o swietnej architekturze pozwalajacej na niemal wszystko
alan 11:30:12
i mozesz wylaczyc
alan 11:30:15
to czego nie potrzebujesz
alan 11:30:20
nie chcesz bazy
alan 11:30:26
wylaczasz obsluge bazy
alan 11:30:29
nie chcesz loggerów
alan 11:30:33
wylaczasz loggery
alan 11:30:44
nie chcesz autoryzacji, ba - nie ma sprawy
alan 11:30:48
i nie korzystasz z nich
alan 11:31:12
....po czym nagle klient prosi zby mu dorobic zarzadzanie userami z logowaniem etc
alan 11:31:15
to co robisz?
:nieznajomy:
to po co ma byc na serwerze 90% niepotrzebnych rzeczy?
alan 11:31:22
wlaczasz autoryzacje
alan 11:31:27
dodajesz maly modul
alan 11:31:29
i po prawie
alan 11:31:37
jak to 90%?
:nieznajomy:
chyba tylko jako potencjalne dziury do wykorzystania
alan 11:31:39
chodzi tobie
alan 11:31:45
o źódła frameworka?
alan 11:31:51
źródła?


Cytat
:nieznajomy:
jak mowilem - to nie nasa
:nieznajomy:
kiedys poszedlem do firmy, pogadalem chwile i pytam na jakim systemie pracujecie, a oni ze na ezPublish i joomli, z miejsca podziekowalem i wyszedlem
alan 11:43:33
skoro tak twidzisz, nie chce ciebie przekonywac, bo wydajesz sie nieroformowalny - z argumentami typu, źródeł zajmujacych miejsce na serwerze.
:nieznajomy:
dla mnie firma ktora korzysta z rozwiazan opensource to firma ktora nie potrafi zrobic nic swojego

Napisany przez: kbsucha 18.09.2008, 17:22:28

Cytat(normanos @ 18.09.2008, 17:57:19 ) *
Właśnie takim jeżdżę winksmiley.jpg ale Ty ciągle mimo wszystko mówisz o kosie winksmiley.jpg


Rozumiem, ze masz na myśli Kohane. A skoro w wątku mowa jest o dużych projektach, to zastanawiam się czy sprawdzałeś jej możliwości w takich projektach. Czy sobie poradziła z naprawdę dużymi serwisami. Na razie z tego co widziałem to projekty na stronie oficjalnej nie są zbyt wygórowane, parę blogów, jakieś stronki z filmikami itp. I z tego co widzę po ogromnych zmianach w Core w wersji 2.3 to raczej długo nic poważniejszego nie zobaczę.

Pozdr

Napisany przez: Sedziwoj 18.09.2008, 20:23:35

Co do ceny sprzętu, programistów itd.
To nie ważne jakie argumenty wobec ceny sprzętu postawisz, każdy się zgodzi, jeśli jakieś zmiany zajmują długo, to serwis odpada...
Chociażby Grono, wprowadza zmiany, ale gdyby robił to 2x szybciej, wiele więcej osób by z niego korzystało.
Chodzi o to, że czas wprowadzenia poprawek, zmian, czy dodania funkcjonalności to nie tylko czas pracy programisty, a też oczekiwania klienta, jak zgłosi błąd i w ciągu godziny (czy mniej) go nie ma, to ma uśmiech na ustach a jakby czekał dzień, to już nie koniecznie. Nawet przy własnym projekcie, chce się aby zmiany były jak najszybciej, aby użytkownicy je odczuli. Wtey większość nie ucieknie, bo chwilowy brak funkcji zaspokoi przyzwyczajenie, przy dłuższym czasie, już nie...

Dziś ważny jest czas, bo to pieniądz, czasem za ten czas się płaci sporo, ale często się opłaca.

Napisany przez: normanos 18.09.2008, 22:15:56

Cytat(kbsucha @ 18.09.2008, 16:22:28 ) *
Rozumiem, ze masz na myśli Kohane. A skoro w wątku mowa jest o dużych projektach, to zastanawiam się czy sprawdzałeś jej możliwości w takich projektach. Czy sobie poradziła z naprawdę dużymi serwisami. Na razie z tego co widziałem to projekty na stronie oficjalnej nie są zbyt wygórowane, parę blogów, jakieś stronki z filmikami itp. I z tego co widzę po ogromnych zmianach w Core w wersji 2.3 to raczej długo nic poważniejszego nie zobaczę.

o zmianach wole sie nie wypowiadac bo mi zylka peknie winksmiley.jpg(pisalem na forum Kohany). Co do 2.2 to ja z powodzeniem uzywam do duzych projektow, serwisow spolecznosciowych etc. i nie narzekam.

Napisany przez: Bart77 24.03.2009, 13:05:41

Cytat(mike_mech @ 28.08.2006, 23:50:52 ) *
do dużego projektu MySQL się nie nadaje.
Może w przyszłości MySQL5.0 ale teraz jeszcze nie


Allegro.pl do niedawna śmigało na MySQL smile.gif Co prawda powyższy post jest z 2006, ale i wtedy Allegro było już raczej dużym projektem winksmiley.jpg

Napisany przez: kfx 15.02.2010, 22:02:10

ja wychodze z zalozenia, ze wszystkie frameworki typu cake, kohana, codeigniter - do duzych stron to zdecydowanie za wolne i malo elastyczne...

Napisany przez: stirith 17.02.2010, 23:37:46

fajne odgrzebanie tematu po prawie roku :-)

Jeżeli kogokolwiek to nadal interesuje, to wydaje mi się że najważniejsze to optymalizacja kodu, cache...przykład ? nk.pl, stworzone na czystym PHP i MySQL :-)

Napisany przez: LBO 18.02.2010, 03:11:25

Cytat(stirith @ 17.02.2010, 23:37:46 ) *
przykład ? nk.pl, stworzone na czystym PHP i MySQL :-)


tia a dodatkowo całe mrowie serwerów i dedykowane aplikacje do ich obsługi.

Napisany przez: Kocurro 18.02.2010, 09:12:34

Akurat NK bym nie brał za przykład, to jest po prostu wyjątek potwierdzający regułę ...

Napisany przez: zzeus 18.02.2010, 09:21:16

Cytat(Bart77 @ 24.03.2009, 13:05:41 ) *
Allegro.pl do niedawna śmigało na MySQL smile.gif Co prawda powyższy post jest z 2006, ale i wtedy Allegro było już raczej dużym projektem winksmiley.jpg


Śmigało na MySQL i mieli z tego powodu same problemy, dopiero po zmianie na Oracla bodajże baza przestała być piątym kołem u wozu.

Napisany przez: stirith 18.02.2010, 10:16:42

Cytat(LBO @ 18.02.2010, 03:11:25 ) *
tia a dodatkowo całe mrowie serwerów i dedykowane aplikacje do ich obsługi.



Tych serwerów nie jest dużo...wiadomo że na jednym to nie leży :-) Ale skoro nadal używają MySQL i PHP, nie przepisują tego, a myśli takie były to chyba musi to w miarę sprawnie działać. Nawet gdyby ta para (MySQL i PHP) działała wolniej od innych rozwiązań to i tak bardziej się opłaca na tym koniu jechać niż wymieniać chociażby bazę na którąś z komercyjnych...

Napisany przez: zzeus 18.02.2010, 10:20:19

Cytat(stirith @ 18.02.2010, 10:16:42 ) *
Tych serwerów nie jest dużo...wiadomo że na jednym to nie leży :-) Ale skoro nadal używają MySQL i PHP, nie przepisują tego, a myśli takie były to chyba musi to w miarę sprawnie działać. Nawet gdyby ta para (MySQL i PHP) działała wolniej od innych rozwiązań to i tak bardziej się opłaca na tym koniu jechać niż wymieniać chociażby bazę na którąś z komercyjnych...


Z tego co mi wiadomo to już zrobili migracje z MySQL na Oracla ... chyba że się mylę ?

Napisany przez: Kocurro 18.02.2010, 10:21:36

A umieli to zrobić?

Napisany przez: stirith 18.02.2010, 10:31:23

Cytat(zzeus @ 18.02.2010, 10:20:19 ) *
Z tego co mi wiadomo to już zrobili migracje z MySQL na Oracla ... chyba że się mylę ?


Tak mylisz się...


Cytat(Kocurro @ 18.02.2010, 10:21:36 ) *
A umieli to zrobić?


Odkąd nk zaistniała w sieci do teraz dużo się zmieniło...nikt kto tworzył nk już tego nie robi (z programistów) - poziom profesjonalizmu programistów z nk oceniam na wysoki :-) chociaż mogę się mylić.... Jak sprawdzić ? Spróbować się u nich zatrudnić :-)

Napisany przez: Kocurro 18.02.2010, 10:33:50

Też mogę się mylić winksmiley.jpg

Napisany przez: XianN 18.02.2010, 23:50:10

Cytat(stirith @ 18.02.2010, 10:16:42 ) *
Tych serwerów nie jest dużo...wiadomo że na jednym to nie leży :-)

Jak dla mnie > 1000 maszyn to jednak kilka jest... winksmiley.jpg

Napisany przez: stirith 19.02.2010, 00:24:10

Cytat(XianN @ 18.02.2010, 23:50:10 ) *
Jak dla mnie > 1000 maszyn to jednak kilka jest... winksmiley.jpg


A skąd masz takie dane... ?

Napisany przez: XianN 19.02.2010, 15:58:19

Cytat(stirith @ 19.02.2010, 00:24:10 ) *
A skąd masz takie dane... ?

http://nasza-klasa.pl/blog/portal/wpis/229
Nudne jak flaki z olejem, ale gdzies tam (kolo 4:30? - zgaduje...) jest koles ktory sie zajmuje tymi maszynami i mowi na czym lezy nk.

Napisany przez: lukasz.adamczewski 23.02.2010, 22:55:22

chcąc nie chcąc nasza klasa narzuca standard serwisów społecznościowych w polsce i pewnie jakby zestawić ich pracowników z np ekipą fotki czy allegro to była by znacząca różnica. zaciekawiła mnie informacja o koncie papieża na naszej klasie. czyżby nie mieli jakiegoś krótkiego cacheowania danych które by rozwiązało problem jednoczesnego dostępu wielu użytkowników do jednego zasobu?

Napisany przez: XianN 26.03.2010, 11:03:53

Cytat(lukasz.adamczewski @ 23.02.2010, 22:55:22 ) *
chcąc nie chcąc nasza klasa narzuca standard serwisów społecznościowych w polsce i pewnie jakby zestawić ich pracowników z np ekipą fotki czy allegro to była by znacząca różnica.

Nie rozumiem dlaczego tak sadzisz... Gdyby wielkosc przedsiewziecia byla miara jakosci to np Windows bylby najlepszym system napisanym przez najlepsza firme w branzy w ktorej pracuja najwybitniejsi pracownicy, najlepiej zarzadzajacy ludzie w polsce to nasz (nie)rzad, a najlepsi kierowcy to Ci w najdrozszych samochodach. IMO, takie generalizowanie to krystaliczne zlo.

Napisany przez: Riklaunim 26.03.2010, 12:37:20

Nie ma dużych serwisów w "czystym" PHP. Zarówno Facebook, czy Nasza-klasa to potężne rozproszone aplikacje wykorzystujące wiele maszyn i różne technologie. Do tego ichniejszy kod PHP to co inne od kodziku napisanym w jakimś frameworku pod średnią webową stronkę. Kod przenosi się do binarnych rozszerzeń dla jeszcze większej wydajności (http://www.tuenti.com/jobs/position/?requisition_id=59 -- ktoś chętny?). Po prostu startup wybiera PHPa bo wychodzi najtaniej. Wraz z rozwojem dochodzi do sytuacji, w której trzeba zacząć robić takie kombinacje bo inaczej się nie da. Konkurencja lub oczekiwania użytkowników są tak wysokie że serwis nie może się zazwyczaj zatrzymać żeby zmienić w większym zakresie technologię. A jak nie może się zatrzymać to zaczyna się rozbijanie aplikacji na coraz mniejsze niezależne elementy i zabawy z binarnymi rozszerzeniami do PHPa, czy sieciowymi usługami na masową skalę (np. Thrift). Koszty rosną bo trzeba coraz więcej developerów do wszystkich tych narzędzi i technologii.
Niektóre serwisy wybierają alternatywne rozwiązanie - migrację na inne technologie, np. ostatnio http://www.reddit.com/r/django/comments/bhvhz/the_onion_uses_django_and_why_it_matters_to_us/ - z tym że The Onion nie jest np. serwisem rozrywkowo-społecznościowym muszącym ciągle się rozwijać (mogli zrobić to na spokojnie).

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