Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Profesionalni rad u PHPu

[es] :: PHP :: Profesionalni rad u PHPu

Strane: < .. 1 2 3 4

[ Pregleda: 28198 | Odgovora: 78 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Branimir Maksimovic
Senior Software Engineer

Član broj: 64947
Poruke: 5442
178.250.138.*



+1054 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 20:24 - pre 38 meseci
Vlada:"Sajt na kojem sam radio ima preko milion online korisnika u svakom trenutku"

Koliko requesta u sekundi? quad core moze da vrati do 60k requesta u sekundi hello world stranica. Znaci ako iza ide PHP sa jos nekim procesiranjem i bazom
onda je to znatno manje.

"I da, itekako je ovo problematika za PHP"

Problematika u smislu kako ces resiti problem, koristeci neko gotovo resenje ili sam pisati server u nekom drugom jeziku ;p



press any key to continue or any other to quit....
 
Odgovor na temu

dejanet
Beograd

Član broj: 19240
Poruke: 1064



+774 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 20:32 - pre 38 meseci
Citat:
Branimir Maksimovic: Sta onda predlazes kao bolju strategiju? Ja recimo dok traje generisanje ne pustam dva konkuretnna ista upita...

Pustio bi background proces koji generise data, a zatim kada zavrsi, podmetnuo kao cache objekat. To bi ujedno bila i invalidacija old data-e.
Obicno za ove tipove report-a postoje postoje razne opcije u db serverima.

Citat:
Branimir Maksimovic: Kako to pomaze kod konkuretnih upita i zasto je to bolje od cache-a i kako se to upste razlikuje od cache-a.

Pa instanca klase i memory cache objekat stoje u meoriji, ali nisi ogranicen cache implementacijom koja je mnogo sira od implementacije klase za konkretan slucaj. Koristis prave array tipove za konkretan slucaj, menjas property values koje moras u thread safe maniru, a ne ceo cache objekat, imas puno slobode i mogucnosti da optimzujes metode u klasi itd.. Kada imas definisan "graph" sa svim desavanjima i zavisnostima, onda imas sanse da uradis citanje i promene data koliko toliko optimalno.
 
Odgovor na temu

Branimir Maksimovic
Senior Software Engineer

Član broj: 64947
Poruke: 5442
178.250.138.*



+1054 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 20:37 - pre 38 meseci
Deja: "Pustio bi background proces koji generise data, a zatim kada zavrsi, podmetnuo kao cache objekat. To bi ujedno bila i invalidacija old data-e.
Obicno za ove tipove report-a postoje postoje razne opcije u db serverima."

To mozes tako ako je upit unapred poznat i ako ih ima ograniceno malo. U mom slucaju upit je unapred nepoznat i ne zna se koliko ih razlicitih ima.
Dakle recimo vremenski period presek, konkretno, ne mozes tako resiti.

"
Pa instanca klase i memory cache objekat stoje u meoriji, ali nisi ogranicen cache implementacijom koja je mnogo sira od implementacije klase za konkretan slucaj. Koristis prave array tipove za konkretan slucaj, menjas property values koje moras u thread safe maniru, a ne ceo cache objekat, imas puno slobode i mogucnosti da optimzujes metode u klasi itd.. Kada imas definisan "graph" sa svim desavanjima i zavisnostima, onda imas sanse da uradis citanje i promene data koliko toliko optimalno. '

Mislim da se u ovom slucaju radi o terminologiji. Ti pravis custom cache resenje koje je svakako bolje od generickog resenja. Mislim da se ovde slazemo.


press any key to continue or any other to quit....
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.tippnet.co.rs.



+213 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 21:15 - pre 38 meseci
Podmetanje kesa iz background-a kod statistika ima smisla ali kod realtime podataka bas i ne.
PHP ima gotovo resenje za kesiranje a tvoje je da mislis o tome kada i gde da pises, citas i brises kes u PHP kodu.
Ovde ne pricamo o programu koji kes server vec koriscenju kes servera preko PHP-a.

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

dejanet
Beograd

Član broj: 19240
Poruke: 1064



+774 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 21:38 - pre 38 meseci
Citat:
Branimir Maksimovic: To mozes tako ako je upit unapred poznat i ako ih ima ograniceno malo. U mom slucaju upit je unapred nepoznat i ne zna se koliko ih razlicitih ima. Dakle recimo vremenski period presek, konkretno, ne mozes tako resiti.

Da kapiram, cache varijante odpadaju.
U tim slucajevim kada podataka ima ober "puno" a query traje, uveo bih nesto kao fifo queue, tj. red cekanja, pa koliko traje traje(puci nece) ili scheduled reporting ako se report moze generisati kao neki dokument, a moze i kao serijalizovan report object. Ne znam koji je db server u pitanju , ali ako i nema, mozda moze da se nabudzi materialized view tabela i deo posla gurne u db server.
 
Odgovor na temu

dejanet
Beograd

Član broj: 19240
Poruke: 1064



+774 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 22:03 - pre 38 meseci
Citat:
VladaSu: Podmetanje kesa iz background-a kod statistika ima smisla ali kod realtime podataka bas i ne.

Slazem se da za real time data mora postojati neka varijanta cache-a, odakle web server putem websocket-a ili signalr-a broadcast-je datu web klijentima ili pak old fashion preko ajax poziva. U taj cache mogu npr. dolaziti real time data i drugih delova sistema putem nekom service bus-a ili tcp-a.
Ovde bi takodje izbegao genericki cache u korist "speijalizovane" implementacije.
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4274
*.dynamic.sbb.rs.



+491 Profil

icon Re: Profesionalni rad u PHPu23.05.2018. u 23:17 - pre 38 meseci
Ja sam zapocinjao temu, reci cu samo da sam ovakve stvari sretao u MMORPG projektima na netu, Omerta klon i Travian klon (ne bukvalni klonovi naravno, neke stvari su izmenjene ali je ideja igre zadrzana, omerta je nesto kao "mafia wars" sa fejsbuka). Kako bih rasteretio sistem, neke stvari mi je C++ brze izvrsavao, i ono sto je moralo da se radi u realnom vremenu se vrtelo u C++. Projekat je bio mesavina C++/PHP/MySQL/AJAX/ostale frontend tehnologije. Jednostavno mi je bio neophodan daemon, mogao sam da koristim mozda PHP CLI za to, ili cist PHP, ali C++ je po meni bio bolji izbor. Konkretno u travian klonu sam imao mnogo izazova - imao sam mapu 400x400 polja, svaka je imala neke svoje podatke o resursima, svaki igrac je imao vlasnistvo nad 1+ polja mape, svako polje mape je imalo 20+ resursnih polja. Nesto je moglo da se pegla u frontendu, tipa trenutna kolicina resursa koje igrac ima u svom polju (selu), bilo bi malo glupo svaki cas ajaxom da zovem bazu i da je apdejtujem vise puta u sekundi. Problem je bio kako u realnom vremenu racunati da li korisnik ima dovoljno resursa za izgradnju nove zgrade u tom selu a da pritom ne moram da cesto menjam podatke o resursima korisnika. Znaci imamo recimo, glinu, kamen, zito, drvo, to su sve resursi kojih se dobija promenljivo, 10-50000/h, po selu koje jedan igrac ima, a sela je moglo da bude 400x400. PHP mi nije bio pogodan za to, C++ je bio mnogo bolje resenje, i tu sam koristio C++ za kesiranje mnoooogo podataka. Iskreno nisam siguran da PHP u bekendu i moze da izadje na kraj sa tim.

Ono sto sam radio je apdejt svih sela koje igraci imaju na nivou jednog sata, jedno po jedno kako ne bi dolazilo do zagusenja. Upisivalo se vreme poslednje promene i nivo proizvodnje resursa svakog polja u selu - kojih je 20. Kada korisnik unapredi resursno bolje, i to se apdejtuje u bazi. Potom pri izgradnji nove zgrade se racuna koliko je korisnik potencijalno imao resursa naknadno posle poslednjeg apdejta. Takodje, morala je da se apdejtuje i proizvodnja kad god se unapredi resursno polje, i podatak proizvodnje resursa na sat.

Generalno, ne znam puno o kesiranju da budem iskren, zato sam i pitao. Ali nikad nisam dostigao limit u normalnim PHP aplikacijama da imam neki problem sa brzinom, zanimalo me je o kakvom kesiranju, i tipa podataka koji se kesiraju je rec. Sada mi je dosta jasnije.

Moje misljenje je samo da ne treba prelaziti granice nekih tehnologija. PHP sigurno nije bio zamisljen da ikad radi ovo sto je meni trebalo, zato sam se odlucio za C++ u bekendu, PHP je bio veza i neki srednji "bekend" i dalje, a ajax i javascript u frontendu su mi zavrsavali posao. O dizajnu nema sta da se prica, BS i ostalo je korisceno, to nije vezano za temu.

Cepam Laravel, iskreno jos nisam dosao do dela sa kesiranjem i njegovog "posrednistva" u istom. Ne znam koliko ce mi to kao trenutno samostalnom programeru i znaciti, verovatno bi me tim obucio ako radimo na vecoj aplikaciji sta da radim u kom slucaju. Kada sam procitao "kesiranje, validacija" itd, mislio sam da se radi o protoku raznih tipova fajlova preko HTTP headera i tu sam zastucao dok nisam shvatio o cemu se radi :)
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1075
*.tippnet.co.rs.



+213 Profil

icon Re: Profesionalni rad u PHPu24.05.2018. u 07:33 - pre 38 meseci
Pod realtime nisam mislio na chat aplikaciju da se prikazuju realtime podaci. Mislio sam da mnogo redje citas iz baze tako sto ces kesirati neki podatak iz neke tabele. Kada dodje do promene tog podatka onda se i kes vezan za taj podatak brise.
Primer je recimo ovde na ES kada ja odem na tvoj profil nema potrebe da se svi ti podaci uvek citaju iz baze.
1 . Prvi put kada neko ode na tvoj profil kod ce pokusati sa kes servera da procita da li ima nesto pod key "profile-dejanet".
Ako nema onda ce da procita iz baze i procitane podatke da stavi u kes pod key "profile-dejanet".
2. Sledeci put kada neko dodje na tvoj profil ide opet provera da li ima nesto pod key "profile-dejanet" i sada ce biti i uzecemo podatke sa kes servera a ne iz baze.
Rasteretirili smo bazu i dobili mnogo brze ucitavanje stranice.
3 .Problem je kada ti editujes svoj profil onda program mora da brise key "profile-dejanet" i onda ce sledeci dolazak biti opet pod 1. Ako je lose organizovan kod onda je ovo problem a ako nije onda je stvarno lako.

E sada na tvom profilu ima i lista tema gde si ti nesto pisao. To bi bilo recimo u kesu "theme-dejanet" i svaki put kada nesto napises treba da se resetuje kes pod ovim key.
Medjutim tu nastaje problem kada neko izbrise temu. To znaci da ce neko na tvom profilu videti da si pisao u nekoj temi koja vise ne postoji.
Resenje je da se to ignorise. Neko klikne tamo na link teme koja ne postoji i dobije obavestenje da je tema izbrisana.
U ovom slucaju svi "theme-*" key-evi treba da imaju timeout od recimo 1 sat ili 1 dan. To znaci da ce posle 1 sata ili 1 dana lista biti osvezene.
Takodje lista ce biti osvezena ako ti napises nesto novo jer se i tada brise key.
I postoji mogucnost da pri brisanju teme pogleda se ko je sve ucestvovao u toj temi i onda da se izbrisu "theme-*" key svih ucesnika teme.
Postoji i mogucnost preko tagova gde ces reci da se brise svaki kes koji ima odredjeni tag ali onda moras da vodis racuna o tagovanju kes key-a.

Znaci ovde ne pricamo o pravljenju kes servera vec o tome kada i kako slati naredbe i podatke kes serveru, o organizaciji php koda. To je iskljucivo do logike php programera.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4274
*.dynamic.sbb.rs.



+491 Profil

icon Re: Profesionalni rad u PHPu19.06.2018. u 15:05 - pre 37 meseci
Jasno. Usao u fazon kesiranja sa Laravelom, malo je otvorio oci :)

Nego, jedno blic pitanje.

Chat aplikacija sa logovanjem. Koju bazu koristiti? Mongo? Sta se preporucuje za takve projekte?

Razmisljam se da u periodu "odmora" napravim neki lightweight chat sistem u Laravelu, zadao sebi danas zadatak. Pitam se da li da pravim server u C++ ili koristim gotov DB za to?
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

Deunan

Član broj: 338178
Poruke: 76
*.dynamic.isp.telekom.rs.



+21 Profil

icon Re: Profesionalni rad u PHPu19.06.2018. u 23:55 - pre 37 meseci
Kakav chat ti treba? Neki forum? Youtube komentari?
Mislim da je najbolji mysql za to. Najbrzi je za pretragu velikog broja redova.

Ako zelis neki chat kao Viber, Facebook...
Ne radi se to HTTP nego XMPP protokolom. Ne moras da pravis svoj server, imas dosta gotovih.
Najpopularniji je Ejabberd (Viber i Whatsapp su poceli na njemu), pisan u Erlang-u. Ako znas javu, imas i Openfire, bolji je za pocetnike, ali nije bas za production. Imas i Tigase, Prosody...

A imas i google-ov Firebase servis ako ne zelis sam da instaliras i konfigurises.
 
Odgovor na temu

Miljan_X
Miljan Jagodic

Član broj: 338764
Poruke: 4



+1 Profil

icon Re: Profesionalni rad u PHPu04.07.2018. u 21:02 - pre 37 meseci
Ukoliko planiras da radis u drustvenom okruzenju primetit ces da dosta poslodavaca trazi sledece:

- Pozavanje framework (Laravel, Symfony ili neki drugi)
- Pozavanje Node JS
- Poznavanje bar jednog Javascript frameworka (po mom iskustvu Angular je jako trazen!)
- Rad preko Gita i repositoria
- "Just do your biz" sto bi u prevodu znacilo samo gledaj svoj posao pusti ostale da rade svoj deo

to su neke osnovne stvari koje bi trebao znati pre nego sto udes u timski rad.
Ukoliko dobro pozaes materiju vrlo lagano ces da oskocis od ostali i mogucnost napredka u svemu tome ce da se poveca.

 
Odgovor na temu

balavi

Član broj: 175011
Poruke: 770
*.dynamic.isp.telekom.rs.



+104 Profil

icon Re: Profesionalni rad u PHPu04.07.2018. u 22:04 - pre 37 meseci
@Miljan_X

po tvom iskustvu , koliko je vremena potrebno savladati Laravel i Angular?
 
Odgovor na temu

svepomalo

Član broj: 306404
Poruke: 186



+21 Profil

icon Re: Profesionalni rad u PHPu04.07.2018. u 22:12 - pre 37 meseci
Citat:
balavi: @Miljan_X

po tvom iskustvu , koliko je vremena potrebno savladati Laravel i Angular?


sve zavisi kakvo ti je iskustvo... moze i za 2 godine a moze i mesec dana
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4274
*.dynamic.sbb.rs.



+491 Profil

icon Re: Profesionalni rad u PHPu04.07.2018. u 23:03 - pre 37 meseci
Jos nisam video da je ijedan poslodavac za PHP inzenjera trazio poznavanje JS frameworka. Pogotovu ne da zna i node.js, koja je poenta PHPa onda?
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

Branimir Maksimovic
Senior Software Engineer

Član broj: 64947
Poruke: 5442
*.p58.bvcom.net.



+1054 Profil

icon Re: Profesionalni rad u PHPu05.07.2018. u 05:27 - pre 37 meseci
Mislim da sto znas vise to bolje, ali naravno nije obavezno sad i pod moranje. Nekako php i js idu zajedno, ako znas js to je plus, zato sto te web stranice koje pravis tesko da ce biti bez js ;)
press any key to continue or any other to quit....
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4274
*.gprswap.mts.telekom.rs.



+491 Profil

icon Re: Profesionalni rad u PHPu05.07.2018. u 07:44 - pre 37 meseci
JS nije frka, ali rad u fwu? Mozda jquery :) I node.js? Sta cu da radim sa pho i nodejs?
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

brux002
Goran Blazin
Web Developer
Svuda po malo

Član broj: 280339
Poruke: 246
79.101.13.33

Sajt: goranblazin.com


+96 Profil

icon Re: Profesionalni rad u PHPu05.07.2018. u 10:30 - pre 37 meseci
^

Ja sam imao projekat gde smo imali dinosaurus PHP aplikaciju pisanu u Yii 1.X frameworku, dok su hteli da novi featuri bude pisani u nodejs-u i dodati na app kao mikroservisi. Ovo je dosta cesta praksa da se udahne nov zivot starim aplikacijama bez prepisivanja cele app u nodejs. Tu recimo odlicno dodje poznavanje oba jezika. Takodje mislim da su jezici alati i da seniori moraju znati bar nekoliko da bi upotrebili pravi alat za pravi posao (ako sve sto znas da koristis je cekic - svaki problem ce ti liciti na ekser :) )
Violence is the last refuge of the incompetent.
 
Odgovor na temu

CoyoteKG

Član broj: 70939
Poruke: 2781



+6834 Profil

icon Re: Profesionalni rad u PHPu05.07.2018. u 22:26 - pre 37 meseci
Citat:
ako sve sto znas da koristis je cekic - svaki problem ce ti liciti na ekser :)


vrh. Odavno nisam cuo neku bolju metaforu.
 
Odgovor na temu

knezr
Radimir Knezevic
programer
Samostalni preduzetnik
Beograd, Srbija

Član broj: 314803
Poruke: 3
87.116.179.*



Profil

icon Re: Profesionalni rad u PHPu22.05.2019. u 10:04 - pre 26 meseci
Citat:
Zlatni_bg:
Nemoj da se ljutis, ali to bas nema veze s mojim pitanjem :) Sa 10 godina radnog iskustva sa freelancingom i zivotom od toga, nemam bas problem da posao bezi od mene, ima ga na pretek :)

Ono o cemu sam pisao su propusti i greske u mom radu a ne to kakav je freelancing.


Ti imas posla na pretek sto verovatno znaci malo slobodnog vremena. Kod mene je obrnuto, manjak posla a slobodnog vremena kolko hoces. Programer sam vise od 25 godina, sa PHP-om se bavim oko 8 godina. Zainteresovan sam za neku saradnju, finansijski uslovi nebitni. Ako si zainteresovan mozes me kontaktirati na [email protected]
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4274
*.dynamic.sbb.rs.



+491 Profil

icon Re: Profesionalni rad u PHPu28.09.2019. u 03:39 - pre 22 meseci
I tako... nekih 16 meseci od otvaranja teme, mogu reci da su me odgovori od svih vas oblikovali. Kapiram da ce Nemanja najvise da se obraduje sto je Laravel sada postao standard :)

1. Presao sam na Laravel - zlo i naopako je ako hoces nesto nabrzaka da napises, ukoliko ti treba neka skriptica, za vece projekte je banja. Takodje, gladan je k'o niko za resursima, mada ako se zadje malo u fajlove koje nisu za sve da se ceprkaju i to moze da se ispravi po potrebi. Poceo sam i nastavio sa LaraCastsom, i svim savetima i predlozima koje je Jeffrey (ako ne gresim) odatle izneo.

Prvo me je izjedalo neka 3 meseca sto ne znam gde mi sta pravi kada koristim artisan i da li propustim nesto u procesu, bilo je tu mnogo vracanja tutoriala, citanja dokumentacije, itd... mogu da kazem da tek posle 4-5 meseci vise nisam otvarao tutoriale. Dokumentacija je non stop otvorena, mada ne verujem da je to ikad losa stvar. Pogotovu sa Eloquentom, i dalje nisam pokupio sta sve moze, pa dobro dodje da tu nadjem sta mi treba.

2. Relativno skoro presao na lokalni development bas zbog Laravela - nista od text editora/IDEa nije radilo kako treba (skoro smo pisali o tome pa necu duziti)

3. I dalje ne koristim sve sto mi Laravel pruza, mada mislim da to i nije losa stvar - kad nadjem nacin da nesto moze bolje da se odradi i da radi efikasnije u ekosistemu, koristicu to.

4. PHPunit i pisanje testova su postali standard takodje.

5. Zbog blade-a vise nema mixovanja nikakve kolicine PHPa sa HTMLom

6. Kesiranje, alokacija memorije i sve ostalo o cemu smo ovde ranije pricali itekako ima smisla kada vidim koliko Laravel ume da mi pojede server.

Sve u svemu, mogu reci da evo, nesto malo jace od godinu dana otkako je otvorena tema, u potpunosti postujem best practices o kojima smo pricali ovde. Malo me je nerviralo to sto nisam znao sta je Laravel uradio za mene a sta nije u pocetku, na to je otislo najvise vremena. Sada gledam da upotpunim ovo sve sa Vue i eventualno tezim ka nekom FullStacku za nekih godinu-dve.

Takodje, vise nemam zelju za freelancingom, tema je otvorena kad sam imao 26, sada imam 27, mislim da je dosta. Ukoliko bih neki svoj CV bazirao striktno na PHP+Laravelu, da li bi bilo korektno da se pravdam sa jednom godinom iskustva u svemu tome i *eventualno* navedem duzi rad u PHPu? Na stranu svo ostalo znanje koje imam, interesuje me pravdanje iskustva u PHP FW-u. Mislim da je suludo ista drugo navoditi jer ne verujem da ce ikoga zanimati sta sam radio pre toga jer pozicije za core PHP gotovo da ne postoje. Ili gresim. Rado bih se prihvatio pocetne pozicije za rad u bekendu. I dalje imam ogromnu zelju da ucim Laravel, ali bih malo za promenu zeleo da mene uce neke cake vise nego da sam kroz dokumentaciju dalje dolazim do boljih i efikasnijih nacina :)
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

[es] :: PHP :: Profesionalni rad u PHPu

Strane: < .. 1 2 3 4

[ Pregleda: 28198 | Odgovora: 78 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.