1 (edited by Ajaks 2012-02-17 17:15:07)

Topic: Dinaminiu svetainiu kurimo praktika

Norejau paklausti apie bendras (geresnes) dinaminiu svetainiu kurimo praktikas.

Konkreciai tokia sugalvota situacija:

100 prekiu. Kiekvienai prekei, po viena puslapi (php).

Ar sukurti 100 fiziniu puslapiu serverio direktorijoje ar sukurti viena puslapi ir su apache mod_rewrite generuoti dinamiskai puslapius naudojant kintamuosius?

fiziskai vienas failas pvz. 'prekes-pavadinimas.php' o lankytojai mato:

saitas.com/prekes1-pavadinimas1.php
saitas.com/prekes2-pavadinimas2.php
ir t.t.

ar

fiziskai tureti

direktorija/prekes1-pavadinimas1.php
direktorija/prekes2-pavadinimas2.php

ir t.t.

Ar yra kokiu nors dinaminio failu generavimo minusu pries statinius fizinius failus? Kaip paieskos varikliai elgiasi? Ar visais atvejais tai bus 1:1

Re: Dinaminiu svetainiu kurimo praktika

Nuo kada kiekvienas URL adresas turi po atskirą failą?
Ką matai URL tai dar nėra teisybė (*.html *.php). Normaliose svetainėse iš vis niekas nebededa galunių, nes jokios naudos neduoda.
VISAS užklausas nukreipi į index.php o ten pasiėmęs $_SERVER['REQUEST_URI'] darai ką nori. Taigi gera praktika yra: vienas programos įeities taškas ir ne kitaip (na blogiausiu atveju keletas, bet tikrai ne keliolika/keliasdėšimt ar kaip siūlai keli šimtai).

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

3 (edited by Ajaks 2012-02-17 18:12:15)

Re: Dinaminiu svetainiu kurimo praktika

zygis wrote:

Nuo kada kiekvienas URL adresas turi po atskirą failą?

Turbut nuo tada kai zmones pradeda kurti svetaines. Turbut statistiskai tokiu svetainiu gal 90%? :)


zygis wrote:

Ką matai URL tai dar nėra teisybė (*.html *.php). Normaliose svetainėse iš vis niekas nebededa galunių, nes jokios naudos neduoda.
VISAS užklausas nukreipi į index.php o ten pasiėmęs $_SERVER['REQUEST_URI'] darai ką nori. Taigi gera praktika yra: vienas programos įeities taškas ir ne kitaip (na blogiausiu atveju keletas, bet tikrai ne keliolika/keliasdėšimt ar kaip siūlai keli šimtai).

Logiska ir turbut teisingiausia.

Tokiu atveju ir visas tekstinis turinys irgi kaupiamas duomenu bazese (?)


Del galuniu tai turbut nei silta nei salta ar jos yra ar nera?

Re: Dinaminiu svetainiu kurimo praktika

Nemanai, kad dinamines svetaines taip vadinamos, nes jos generuojamos dinamiskai? (-;

Re: Dinaminiu svetainiu kurimo praktika

Tikrai nemanau, kad tokių svetainių 90%, nes jos tiesiog dažnai neišvysta dienos šviesos. Jau nekalbu, kad dažniausia visi pradeda nuo open source sprendimų.
Ir pagal logiką gaunasi, kad visi kiti praėję "žaliąjį" kompetencijos lygmenį - sukuria tik likusius 10%? :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Dinaminiu svetainiu kurimo praktika

Neodan wrote:

Nemanai, kad dinamines svetaines taip vadinamos, nes jos generuojamos dinamiskai? (-;

Manau kad gali buti statiniai failai, kuriuose zmones kuria dinaminius rezultatus. Ir taip bus dinaminiai failai. Tik ju daug :)

zygis wrote:

Tikrai nemanau, kad tokių svetainių 90%, nes jos tiesiog dažnai neišvysta dienos šviesos. Jau nekalbu, kad dažniausia visi pradeda nuo open source sprendimų.
Ir pagal logiką gaunasi, kad visi kiti praėję "žaliąjį" kompetencijos lygmenį - sukuria tik likusius 10%? :)

Turbut butu keista jeigu zmones darytu svetaines ir ju nepaleistu online :) Jos sviesa isvysta tik jos yra uz antrojo google desimtuko. Ten, kur niekas neina. Jeigu ivedi paieskos zodi, tai turbut radus 300 svetainiu, pirmos 30 yra 'pazengusios', o like 90% - aibe kazkokiu projekteliu :)

Bet mes kazkaip cia krypstam ne ten kur reikia. Geriau prie tip'su ir trick'su susijusiu su tema :) Kokia praktika butu jeigu reiktu tureti kelis skirtingu 'formu ir funkciju' puslapius t.y. koks nors prekes puslapis ir atsiliepimu puslapis.

Ar tokiu atveju butu keli dinaminiai failai kuriu kiekvienas generuotu tos rusies puslapius ar vistiek viskas eitu per bendraji index.php ir jame paskirstymas gautusi?

7 (edited by Neodan 2012-02-18 11:25:50)

Re: Dinaminiu svetainiu kurimo praktika

@Ajaks
pasidomek kas yra seo friendly urls ir kaip jie realizuojami. Tada suprasi, kad beprasmiska kurti n failu kurie daro ta pati. O ir failas kuri matai adrese, nebutinai istikro egzistuoja.

P.S. pasidomek dar ir MVC.

Re: Dinaminiu svetainiu kurimo praktika

Jau įsivaizduoju google`ą su statiniais .php failiukais. :D

Re: Dinaminiu svetainiu kurimo praktika

Ajaks,
gerenės praktikos kaip naudoti MVC ir nėra. Ten išsisprendžia tavo visi ir dar daugiau neužduotų klausimų.

Neplakti visko į vieną, google yra servisas, puslapis yra puslapis, duomenų bazė yra duomenų bazė ir t.t. jeigu sunku suprasti kaip jie kartu susiję, tai gal reikia pasibraižyt ant popiergalio kokią nors schemutę su išvedžiojimais/rodyklėm kaip kas jungiasi ir kas už ką atsako.

Kiek maigyklių sudėvėjai ?

10 (edited by Ajaks 2012-02-20 16:23:05)

Re: Dinaminiu svetainiu kurimo praktika

md5 wrote:

Ajaks,
gerenės praktikos kaip naudoti MVC ir nėra. Ten išsisprendžia tavo visi ir dar daugiau neužduotų klausimų.

Neplakti visko į vieną, google yra servisas, puslapis yra puslapis, duomenų bazė yra duomenų bazė ir t.t. jeigu sunku suprasti kaip jie kartu susiję, tai gal reikia pasibraižyt ant popiergalio kokią nors schemutę su išvedžiojimais/rodyklėm kaip kas jungiasi ir kas už ką atsako.

Gryztant prie temos, zygis jau daugiau maziau parase reikiama atsakyma (pradziai), t.y. $_SERVER['REQUEST_URI'] paima linko duomenis ir is ju nusprendzia ka daryti toliau.

Kokie gali buti tie veiksmai toliau? Priklausomai nuo gautos informacijos is linko, zaisti su visokiais include'ais? Ar daryti redirectus?

Praktiniai aspektai manau idomesni, negu abstrakti teorija ;)

Re: Dinaminiu svetainiu kurimo praktika

Imk kokį framework, pasidaryk default application pagal pavyzdžius. Tavo tikslas padaryti bent kažką panašaus į tai (jei default netinka). Koks framework nėra labai svarbu, visi jie panašių principų laikosi. Man pvz patinka Zend Framework struktūra, jei ką reikia greito sukurpti be jokių framework - nejučia pats apsirašau laaaabai panašią struktūrą ir laaabai panašias klases :) Tai taupo ir laiką ir nervų ląsteles. Taip pat jei koks kitas programuotojas prisėstų - jam tai jau būtų kažkur matyta ir nekiltų klausimų "ką čia šitas daro?" :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Dinaminiu svetainiu kurimo praktika

php pats savaime jau yra 'framework'as', tai kam dar naudoti papildomus frameworkus kad dirbti su frameworku? Papildomai turi mokintis nauja terpe kuri su laiku tik dideja ir gremezdiskeja, o padaro ta pati.

Bet vel cia mus kazkaip i sona nesioja :)

13

Re: Dinaminiu svetainiu kurimo praktika

Ajaks,
tavo teorinės žinios tikrai smailus kelia, nori kažko tokio ohoho kokio, lyg vilkai, programuotojas su programuoju, patirtim dalintusi susitikę po 20metų... kitaip sakant, aukčiau bambos nepašoksi.

Kiek maigyklių sudėvėjai ?

14 (edited by Neodan 2012-02-20 22:26:05)

Re: Dinaminiu svetainiu kurimo praktika

Ajaks wrote:

php pats savaime jau yra 'framework'as', tai kam dar naudoti papildomus frameworkus kad dirbti su frameworku? Papildomai turi mokintis nauja terpe kuri su laiku tik dideja ir gremezdiskeja, o padaro ta pati.

Bet vel cia mus kazkaip i sona nesioja :)

Panasu, kad tu net nelabai zinai kas yra frameworkas ir kam jis reikalingas (ka jis duoda). Net tingi pasigylinti kas yra MVC. Dinaminis interneto puslapis yra programa, tik jos life cycle kiek kitoks nei desktopines programos.

P.S. pradedantiesiems programuotojams deretu pasiskaityti teorijos ir apie programu projektavima, o ne tik pasimokinti elementarius programavimo kalbos pagrindus.

Re: Dinaminiu svetainiu kurimo praktika

Tai pala. Kokio velnio tada lendi prie PHP, tai yra tikrai ne tai ko ieškai. C++ ? Hmmm, kažkaip dar per daug "frameworkas". ASM - štai kur tikriems vyrams vieta :D
Tiesa ne visur veiks, bet kai jau veiks tai žaibo greitumu :D

Truputį nesupranti kam skirtas tas frameworkas. Tikrai ne tam, kad viskas lėčiau veiktų :) O tam, kad kodas būtų standartizuotas (apie tai ši tema ir yra), dokumentuotas, kokybiškas. Niekas nesiginčija  plain PHP greitesnis už visus frameworkus, bet pagalvok ką darysi parašęs didžiulę sistemą? Tikrai reikės kažką pakeisti, va tada išlenda visos architektūrinės/struktūrinės klaidos. Tai kas tau dabar atrodo "aš čia viską suprantu" gali taip nebe atrodyti po jau po kelių mėnesių (patikėk, kalbu iš savo patirties), o kas jeigu komandą papildys keli nauji nariai su skirtingu žinių lygiu?


P.S. esu matęs vieną sistemą kuri generuodavo statinius HTML failus, esmė tokia, kad perl skriptas sukdavosi kiaurą parą ir jis iš tikro nebelabai spėdavo per tą parą susukti. Sugeneruoti jam tekdavo tikrai didelius kiekius HTML failų. Po pakeitimų admin dalyje žmonės juos pamatydavo tik kitą dieną, kai prasisukdavo laimingasis ratas. Jei įvestuose duomenyse pasitaikydavo klaida, tai ją ištaisę vėlgi pakeitimus pamato tik sekančią dieną. Tai ar tikrai to nori?

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Dinaminiu svetainiu kurimo praktika

http://www.mysql.lt/res/knygos/PHP_Arch … s_2005.pdf

Re: Dinaminiu svetainiu kurimo praktika

zygis wrote:

Tai pala. Kokio velnio tada lendi prie PHP, tai yra tikrai ne tai ko ieškai. C++ ? Hmmm, kažkaip dar per daug "frameworkas". ASM - štai kur tikriems vyrams vieta :D
Tiesa ne visur veiks, bet kai jau veiks tai žaibo greitumu :D

Truputį nesupranti kam skirtas tas frameworkas. Tikrai ne tam, kad viskas lėčiau veiktų :) O tam, kad kodas būtų standartizuotas (apie tai ši tema ir yra), dokumentuotas, kokybiškas. Niekas nesiginčija  plain PHP greitesnis už visus frameworkus, bet pagalvok ką darysi parašęs didžiulę sistemą? Tikrai reikės kažką pakeisti, va tada išlenda visos architektūrinės/struktūrinės klaidos. Tai kas tau dabar atrodo "aš čia viską suprantu" gali taip nebe atrodyti po jau po kelių mėnesių (patikėk, kalbu iš savo patirties), o kas jeigu komandą papildys keli nauji nariai su skirtingu žinių lygiu?


P.S. esu matęs vieną sistemą kuri generuodavo statinius HTML failus, esmė tokia, kad perl skriptas sukdavosi kiaurą parą ir jis iš tikro nebelabai spėdavo per tą parą susukti. Sugeneruoti jam tekdavo tikrai didelius kiekius HTML failų. Po pakeitimų admin dalyje žmonės juos pamatydavo tik kitą dieną, kai prasisukdavo laimingasis ratas. Jei įvestuose duomenyse pasitaikydavo klaida, tai ją ištaisę vėlgi pakeitimus pamato tik sekančią dieną. Tai ar tikrai to nori?

Man atrodo kad mes jau lyg ir 'nusprendem' kad pilnai dinaminis variantas (vienas iejimo taskas - failas) yra 'geriausia praktika'. Sita klausima galima jau uzdaryti. Niekas toliau ir nesigincyja apie kruvas visokiu statiniu failu. Ar verta mums apie juos dar kalbeti po 10 kartu?

Gi tema butu apie praktini ivairiu sprendimu (loginiu taip pat) panaudojima. Duotas konkretus pavyzdys su nedideliu kiekiu (100 prekiu, 100 puslapiu, prekes duomenys is duomenu bazes), ir galimi variantai kaip jis galetu buti sprendziamas.


P.S. Ar galbut cia kazkam labai jautri tema kurioje gali buti isduotos kazkokios paslaptys ir know how, ko pasekoje visi iskarto neteks darbo? Ir geriausia gryzti prie 'standartiniu' sintakses klausimu? :)

Re: Dinaminiu svetainiu kurimo praktika

@Ajaks:
juk tau sakom, kad pasiskaitytum apie designpaternus (minde net dave knyga kur viskas jau vienoje vietoje yra). Kaip tu gali kazka cia diskutuoti, kai net neisvaizduoji kaip galima padaryti.

19 (edited by zygis 2012-02-21 14:47:59)

Re: Dinaminiu svetainiu kurimo praktika

Aišku verta :)

Nežinau ką daugiau ir bepridurti, viskas jau buvo išsakyta. Apibendrinant štai koks sprendimas yra "pakankamai geras":

index.php  -  paruošia programą darbui (pvz DB ir URL apdorojimas).
važiuojam prie MVC:
Pakraunamas tinkamas kontroleris (C) - tai yra veiksmų seka kurią reikia įvykdyti konkrečioje situacijoje
Modelis (M) pagal sistemos paruoštus duomenis suranda reikiamą prekę DB ir gražina juos kontroleriui (C)
Kontroleris gavęs visą reikalingą informaciją pakrauna tinkamą šabloną (V) ir jam atiduoda reikiamus duomenis
šablonas (V) pagal gautą iš kontrolerio (C) informaciją visą informaciją sugeneruoja HTML kodą

Programos pabaiga.

P.S. Kai kurie šaltiniai teigia, kad modelis turėtų (M) save atvaizduotų šablono pagalba (V). Visgi vienos teisybės nėra. Svarbiausia atskirti skirtingas dalis vieną nuo kitos, taip ir lengviau kodą prižiūrėti ir klaidas surasti. Pvz.: jei klaida HTML'e - žinai kur ieškoti, atkrenta kokie 80% kodo kuriame tektų knaisiotis jei nenaudotum MVC.

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Dinaminiu svetainiu kurimo praktika

zygis wrote:

Aišku verta :)

Nežinau ką daugiau ir bepridurti, viskas jau buvo išsakyta. Apibendrinant štai koks sprendimas yra "pakankamai geras":

index.php  -  paruošia programą darbui (pvz DB ir URL apdorojimas).
važiuojam prie MVC:
Pakraunamas tinkamas kontroleris (C) - tai yra veiksmų seka kurią reikia įvykdyti konkrečioje situacijoje
Modelis (M) pagal sistemos paruoštus duomenis suranda reikiamą prekę DB ir gražina juos kontroleriui (C)
Kontroleris gavęs visą reikalingą informaciją pakrauna tinkamą šabloną (V) ir jam atiduoda reikiamus duomenis
šablonas (V) pagal gautą iš kontrolerio (C) informaciją visą informaciją sugeneruoja HTML kodą

Programos pabaiga.

P.S. Kai kurie šaltiniai teigia, kad modelis turėtų (M) save atvaizduotų šablono pagalba (V). Visgi vienos teisybės nėra. Svarbiausia atskirti skirtingas dalis vieną nuo kitos, taip ir lengviau kodą prižiūrėti ir klaidas surasti. Pvz.: jei klaida HTML'e - žinai kur ieškoti, atkrenta kokie 80% kodo kuriame tektų knaisiotis jei nenaudotum MVC.

Nu va, pagaliau! Siaip ne taip, su spardymaisis ir kanciom, priejom prie kazkokios 'praktikos', kad ir pro teorinius akinius. Tai jau sioks toks aiskumas ir realus suvokimas o ne vaikiski pasiulymai 'pasiskaityk google' :)

Ar MVC elementai (Kontroleris, Modelis, Vaizdas) yra individualiai kuriami nuo nulio kiekvienam projektui ar naudojami gatavi produktai ir jie ( a) nemodifikuojami b) modifikuojami) ? Viskas is 'geroji praktika' puses.