Jump to content
php.lv forumi

Kāds ir ņēmies ar MVC iekš PHP ?


Recommended Posts

Interesē pieredze - ir/nav, sanāk/nesanāk, ērti/neērti, rules/sucks un cita veida pārdomas. Runa ir par Phrame un PHP.MVC.

 

Kādu laiciņu provēju ar šiem kaut ko darīt bet beigās nosliecos ņe to gluži savu frameworku uzrakstīt, bet vismaz savu metodoloģiju ieviest, kas pa lielai daļai nodrošina visu MVC burvību.

Tagad sirdsapziņa neliek mieru - moška nevajadzēja?

Link to post
Share on other sites

Neba nu tu būsi vienīgais, kas ir nonācis pie tāda secinājuma. Teikšu uzreiz, ka oficiālos MVC iemēģinājis neesmu. Liekas, ka iemesls ir viens - vienkāršu problēmu sarežģīšana ja ne kvadrātā, tad dubulti pilnīgi noteikti. Ja ir laba humora izjūta un interese palasīties, ir viens labs piemērs par "Hello world" tipa PHP programmu, izmantojot patternus:

http://www.phppatterns.com/index.php/artic...leview/103/1/1/

 

Attiecībā uz vajadzēja/nevajadzēja - domāju, ka par ļaunu nenāks ;)

Link to post
Share on other sites
vienkāršu problēmu sarežģīšana ja ne kvadrātā, tad dubulti pilnīgi noteikti.

Nav jau runa par to, ka tagad rakstīsim visu paternos. Protams ka mazām lietiņām to tanku suportēt nav jēgas - pilnīgi saprotu to hello world piemēru un tml.

Kāpēc interesējos.. pirms pāris gadiem uzcepu sistēmu - online shoppings, resursu managēšana, nedaudz loģistikas problēmrisināšanas, rēķinu izdrukas, veicamo darbu ģenerācijas un tā. No tehniskās puses paskatoties - 33 tabulas datubāzē un hvz cik rindiņas koda - bail skaitīt. Bet kas sāka iebesīt - rakstot šādas lietas 90% laika paiet sacerot SQL selektus, kas būtībā ir vienveidīgi un tipizēti, kā arī ņemoties ar GET/POST mainīgo apstrādi, rutinētu operāciju kodēšanu (insert,edit,delete visa veida ierakstiem) - un tas būtiskākais kas šādai sistēmai ira - t.i. - biznesa loģika, tiek izsvaidīta pa 150 includeem, kas ne tikai ir suxaini no atrašanas/labošanas viedokļa, bet arī daudz vienkāršāk kļūdas salaist, kaut ko aizmirst un tā...

MVC kā risinājums - nezinu, tāpēc jautāju - kāds vispār ar kaut ko tādu nodarbojas? Lielākā daļa man zināmo php koderu baidās no OOP kā tāda, kur nu vēl būtu gatavi studēt šitās lietas.. Bet tad kad es vairāk to projektu nesuportēšu, tad ļoti negribās lai viņš tiktu izsviests miskastē un pārrakstīts no nulles - kā tas notiek ar visiem webiem, kad nomainās programmeris/firma. It kā jau nav mana darīšana, bet anyway - šādā situācijā kaut vai ieraksts portfolio arī pazūd.

Link to post
Share on other sites
Bet tad kad es vairāk to projektu nesuportēšu, tad ļoti negribās lai viņš tiktu izsviests miskastē un pārrakstīts no nulles - kā tas notiek ar visiem webiem, kad nomainās programmeris/firma. It kā jau nav mana darīšana, bet anyway - šādā situācijā kaut vai ieraksts portfolio arī pazūd.

12391[/snapback]

Loģiski, jo katrs nākamais programmētājs grib pavicināt pirkstus \m/ formā un pateikt, ka iepriekšējais programmētājs ir bijis galīgs dunduks un visu sarakstījis greizi. Ja tev uzteiktu tāda projekta supportēšanu un paņemtu vietā kādu programmētāju bez teiksim 3 gadu pieredzes, tad ar garantiju, ka agrāk vai vēlāk viss tiktu aizlaists podā.

 

Nelaime ir tā, ka PHP kā programmēšanas videi/valodai vairāku gadu garumā tā arī nav izveidojies nekāds puslīdz oficiāls "Best practices", kā vienu vai otru lietu vajadzētu veidot. Attiecīgi ir tā, ka gandrīz katrs PHP programmētājs izgudro savu programmēšanas pieeju, kurā tad nu viņš pats arī daudz maz normāli orientējas.

Link to post
Share on other sites
Attiecīgi ir tā, ka gandrīz katrs PHP programmētājs izgudro savu programmēšanas pieeju, kurā tad nu viņš pats arī daudz maz normāli orientējas.

12397[/snapback]

 

nu bet tur jau slēpjas tā kodēšanas burvība, ka tu pats izdomā, uzraksti, saliec un viss strādā tā kā TU gribi nevis tā kā cits gribēja un tu tikai pielāgoji :)

Link to post
Share on other sites
nu bet tur jau slēpjas tā kodēšanas burvība, ka tu pats izdomā, uzraksti, saliec un viss strādā tā kā TU gribi nevis tā kā cits gribēja un tu tikai pielāgoji :)

12398[/snapback]

 

To sauc par burvību līdz brīdim, kamēr viss darbojas. Brīdī, kad tev ir jāsaprot un jāizlabo kāda cita rakstītie garadarbi tad nu drīzāk to sauc par čakarēšanos un kakla laušanu ..

Link to post
Share on other sites
nu bet tur jau slēpjas tā kodēšanas burvība, ka tu pats izdomā, uzraksti, saliec un viss strādā tā kā TU gribi nevis tā kā cits gribēja un tu tikai pielāgoji :)

12398[/snapback]

Offt: uz sevi tēmē?  :D  :P

Bet taisnība tev ira 100%.

12413[/snapback]

Te nu vēlreiz atlaušos paaugstināt jūsu uzmanibu uz grāmatu:

nopirku grāmatu "Анализ Программного Кода на Примере Проектов Open Source" - Дионидис Спинеллис (Jeb oriģinālā "Code reading The Open Source Perspective" - Diomidis Spinellis). Vēl īsti neesmu iegrimis lasīšanā, bet katrā gadījumā grāmatas anotācija un satura rādītājs mani pārliecināja ka ir vērts ieguldīt sūri grūti sakrāto naudiņu.
varu piedāvāt šamo angļu valodā chm formātā (svaigi iz dc++ vilkta), novilkt šeit: http://members.lycos.co.uk/uptest888/Addis...Perspective.chm
Link to post
Share on other sites

Mkeey.. Izlasīju abstractu iekš http://www.spinellis.gr/codereading/ - doma protams ir lieliska - būtu tikai laiks ar to visu nodarboties. Bet problēma (tā par kuru es te izsakos) ir citur - man it kā pat vienalga vai kaut kur kāda cita rakstīta koda iekšpusē ir budzis vai nav - problēma ir tajā, ka mēs (PHP tauta) nehavojam industry-standard veidu, kā tikt galā ar HTTP protokola piedāvāto request/response modeli un katrs to daram savādāk, kā rezultātā fundamentāli mainās veids, kā lietas tiek implementētas. Varianti ir daudz un dažādi - katrs no viņiem ar n-tajiem apakšvariantiem un visi viņi savstarpēji kombinējami.

1) Ņemam gatavas HTML lapas un tajās vietās kuras vajag dinamiskas, sabāžam PHP kodu, kurš to izdara

1a) tajās vietās includējam includes

2) Tajās pašās HTML lapās pirms jebkura outputa izdaram visu mainīgo apstrādi un iegūstam rezultātus, jo mēs jau tāpat zinam, kas šajā lapā jārāda.

3) Būvējam lapas no includēm - header, left panel, main panel, footer etc.. Katrs bloks (include) apstrādā uz viņu attiecošos GET/POST parametrus..

Bet figņa ta ir tāda, ka gan requests, gan response ir viens vesels un ja katrs views tiek sadalīts n-tajās includēs, tad rodas problēmas ar linku veidošanu, bloku savstarpējām interakcijām utt. Ātri uzrakstīt 4-soļu formu wizardu vispār nav jebkuram pa spēkam - just think about it.

Tāpēc ir nepieciešams kaut kāds frameworks, kas šīs lietas darītu puslīdz automātiski vai vismaz asistētu to veikšanā, savādāk tak var nošauties, līdzko kaut kas lielāks jāuzraksta. A figņa tāda, ka šāds vispārpieņemts frameworks php pasaulē... does not exist, tāpēc katram viņš ir savs (reāls, iedomāts.. vai arī koderis vienkārši par šīm problēmām neaizdomājas). Sekojoši arī kaut kādas gatavas klases var uzrakstīt tikai tādā gadījumā, ja viņām nav jāimplementē vairāki ekrāni un viņu savstarpējā interakcija.

OK, pēdējā teikumā mazliet iefantazēju par skaisto nākotni, bet ceru ka sapratāt.

Link to post
Share on other sites

Man atkal liekās, ka izpētot dažus aktīvākos php produktus, izmantojot to Spinelli pieeju, varētu tapt skaidriba par to, kas ir de facto standarts, vai arī vismaz, kādas ir tās izplatītākās projektu realizēšanas metodes veiksmīgākajiem no projektiem.

 

Ja to izdarītu, domāju, rastos ievērojama apgaismība šajā jomā (-;

Link to post
Share on other sites

Tipa kāpēc es te raudu - tāpēc ka nupat ir kādu pusgadu sanācis attālināties no webu pasaules un pakodēt iekš MS Business Solutions Navision - vot tā bļin ir sistēma - protams kā jau 4GL viņai ir n-tie ierobežojumi, bet ja tu vari (ņemsim analogu no php pasaules) diskusiju forumu uzkodēt vienā stundā no nulles, tad arī klients labprāt piecietīs to, ka "kaut ko šī sistēma tomēr nesuportē". Par to viņš pretī saņems risinājumu 50x ātrāk (nepārspīlējot!) un efektīvāk gatavu nekā ja būtu iekš Visual Basic jākodē. IMHO tīra analoģija ar frameworkiem - jā, tu esi ierobežots, bet tu nebūvē velosipēdu katru reizi (jo izgudrots viņš tā kā tā jau ir sen), bet domā par to, uz kurieni tu ar viņu brauksi.

Link to post
Share on other sites
Man atkal liekās, ka izpētot dažus aktīvākos php produktus, izmantojot to Spinelli pieeju, varētu tapt skaidriba par to, kas ir de facto standarts, vai arī vismaz, kādas ir tās izplatītākās projektu realizēšanas metodes veiksmīgākajiem no projektiem.

12418[/snapback]

 

Hmm.. negribi minēt kādu piemēru, kuri ir šie "veiksmīgie projekti" šīs diskusijas (drīz jau par manu monologu taps :unsure: ) kontekstā? Kā es to redzu - populārie un veiksmīgie ir monolīti kluči aļa šī foruma software - mēģināsi iebāzt savās includēs vai integrēt savā saitā - galus atstiepsi :) Iekopēt un darbināt nav māksla, savu headeri vai CSSu uzlikt arī, bet pamēģini teiksim kaut vai no phpBB uztaisīt Delfu komentārus (kas būtībā ir tas pats) - possible?

Lai gan var jau būt, ka es par maz esmu redzējis.

Link to post
Share on other sites
×
×
  • Create New...