[ shoba @ 25.09.2005. 15:14 ] @
Pravis PHP + MySQL sajt
i zahtev je da sajt mora izgurati veliki broj clanova
(npr preko 10K clanova, preko 400 online).

Kojih se pravila pridrzavate pri programiranju?
Sta nikako ne sme da se radi, a sta je 'dobra praksa'?
Vasa iskustva u vezi performansi kod velikih projekata.

Hvala!
ps. ne znam smarty :) a i malo je vremena da ga ucim :)
pss. cini mi se da neki php programeri kazu da je sam [es], forum losih performansi
[ Guardian OfThe Blind @ 04.10.2005. 10:56 ] @
Preporučujem ti da ipak izdvojiš vreme za učenje smarty-ja. Odradiš sve sa keširanjem (i eventualno instaliraš zend ili nešto slično) i obezbediš da ima dovoljno prostora na hardu
[ Leftfield @ 09.01.2006. 17:54 ] @
Nema tu nesto posebno. Strukturno programiranje moze proci kod malih projekata ali kod velikih koci i to veoma. Uradis bazu kako treba, zatim klase... Kod velikih projekata, moras da radis objektno programiranje da bi dobio na performansama. A jos bolje ako znas troslojno programiranje.

[Ovu poruku je menjao Gojko Vujovic dana 09.01.2006. u 19:18 GMT+1]
[ Gojko Vujovic @ 09.01.2006. 18:18 ] @
Da
Citat:
shoba:
pss. cini mi se da neki php programeri kazu da je sam [es], forum losih performansi


Tačno, nažalost ali tako je.

ES je baziran originalno na tForumu, što je povuklo za sobom dosta negativnih posledica, ali od nečega se moralo krenuti te 2001-ve. Nije objektno pisan, nije u potpunosti baziran na templejtima, nije troslojni sistem koji spominje kolega u prethodnoj poruci, koristi myisam tabele koje imaju samo table level locking što značajno ograničava performanse na tabelama koje se u isto vreme i čitaju i upisuju velikim brojem kverija.

Radi se na izmenama i nešto je već poboljšano, ali na kraju se svede na taj nesrećni myisam sa koga ćemo kad tad pobeći, ili uvesti više servera (replikacija) i tako imati minimum jedan koji je read only. Samo u tom slučaju nema pomenutog lockinga celih tabela i zakucavanja baze...

Dakle obavezno smarty, obavezno OO, obavezno sve dokumentovano, sve piši kao da će biti 10 puta veće od planiranog, i preskoči myisam, osim ako nemaš na raspolaganju nekoliko database servera u budućnosti.

Ima tu još detalja o kojima se može pričati, ovo je onako uopšteno što mi pada na pamet.
[ dado_k @ 09.01.2006. 22:49 ] @
pa ne bi se složio sa smartyjem on je dosta dosta spor! ako idemo gledati na brzinu onda bi smartyja trebalo odbaciti!
[ bmcvetic @ 27.01.2006. 22:11 ] @
Smarty koristiti obavezno. Nema veze iako malo uspori perfomanse. Treba projekte i održavati. Samo bih molio da mi neko pojasni kakvo je to troslojno programiranje. Možda i znam o čemu se radi, ali ne pod tim imenom. Hvala...
[ Br@nkoR @ 29.01.2006. 13:05 ] @
http://en.wikipedia.org/wiki/3_tier_architecture
[ Keyframe @ 27.05.2006. 18:28 ] @
ne znam konkretno kakve to veze ima objektno programiranje sa performansama.. dapace, cak obratno.. jedino sto doprinosi performansama u slucaju objektnog programiranja, jest da ti je eventualno lakse se snaci u kodu - te ga kao takvog optimizirati.. osobno se dobro snalazim u strukturnom programiranju + tu i tamo koja klasa (dakle, ne cisto objektno programiranje).. takodjer, smarty izbjegavam - iz meni nepoznatog razloga

posto sam radio na projektu koji sada ima nonstop online 1500-2000 clanova, puno rostiljanja po bazi.. mogu reci da je najvise sto se performansa tice doprinijelo to sto je PHP na jednom serveru, a MySQL na drugom.. pokusali smo varijacije na MyISAM i InnoDB - nisam primjetio neku razliku u performansama.. no na kraju smo ipak stavili InnoDB

eto, to su moja iskustva s time
[ Leftfield @ 26.06.2006. 11:11 ] @
@Keyframe
Dugo sam se mislio dal da odgovorim na ovo tvoje zapazanje. Ne zbog neceg drugog nego sto ja nemam toliko mnogo iskustva, a radio sam na samo jednom oop velikom projektu (troslojnom naravno).
A i rado bi cuo tvoj komentar na ovo:

O performansama u oop je sasvim dovoljno:
http://www.zend.com/manual/migration5.oop.php
A o php-u 5:
"including the ability to access low-level socket operations on streams"
poboljsan MySQL interface,
XML alati, interators i spl,
SQLite
Error Handling i Debugging
Streams, Filters, Wrappers...




[Ovu poruku je menjao Leftfield dana 29.06.2006. u 00:57 GMT+1]