Jump to content
php.lv forumi

Meklējam PHP programmētāju ar OOP un MVC backgroundu


Recommended Posts

Nu gluži tā nav, ka viņi pilnībā izmanto visus OOP labumus, kaut vai tās pašas globālas include_javascript(), utt. funkcijas, kuras tiek ielādētas arī parastā ajax requestā, kur viņas simts gadus nav vajadzīgas.

 

Hello world piemēra smagums jau tam ir tieš apliecinājums un uz lielākām aplikācijām performance neuzlabojas.

Ar gatavajām kešosānas sistēmām tāpat neko prātīgu nevar panākt, jo kešošanā katrs gadījums parasti ir ļoti specifisks. Ir nācies redzēt vienu symfony projektu, kur bija izmantota kešošana, kā rezultātā viss tika pārāk daudz kešots, kā rezultātā aplikācija pārāk bieži rādīja nokešotus datus, kad reāli vajadzēja rādīt jau jaunos, kas pamatīgi pasliktināja "user experience". Reāli aplikācijās, kuras strādā ar online datiem, ar ģenerētā kontenta kešošanu parasti var panākt ļoti nedaudz, tad jau daudz vairāk ar datu kešošanu operatīvajā (memcached).

Esmu redzējis labākas ORM par Doktorīnu, kuras nodrošina daudz patīkamāku (tuvāku OOP) abstrakcijas līmeni.

 

Ok, šitais jau aiziet krietnā offtopikā, bet argumentācijas pēc var parunāties :))

 

1) Hello world smagums nav apliecinājums. Visātrākais hello world "freimvorks" ir die('Hello world'). Ja klients pasūta hello world aplikāciju, tad var to izmantot. Kaut kam pamatīgi izvērstākam, ir jādomā par ko citu.

Tātad no viena symfony projekta, kur caching sistēma nedeva labus rezultātus, Tu to vispārini uz visu symfonijas overall performanci? Cik liels bija tas projekts?

 

2) Neesmu hardcore Symfony fans (patiesību sakot, tikai sāku viņu apgūt), bet spriežot pēc vispārējām reālu un virtuālu cilvēku atsauksmēm esmu secinājis, ka tas ilgtermiņā būs visticamāk pats labākais FW šobrīdējam projektam.

 

3) Intereses pēc labrāt uzklausītu Tavu labāko/piemērotāko/ātrako/customizējamāko FW topu.

 

4) Kādus labākus ORM tu esi tieši "redzējis" (arī izmantojis???). Priekš PHP 2 labākie ir Propels un Doktrīna.

Link to post
Share on other sites

1) Tā gluži nav, ka tas nav apliecinājums. Ar Hello world benchmarku ir jārēķinās, ka tā ir nasta, kura nāks līdzi gandrīz katram requestam.

 

2) Es nesaku, ka viņu nevar izmantot projektiem, noteikti var un tas, ka to izmanto salīdzinoši daudzos projektos, dod zināmu drošības sajūta par šī freimworka universālumu, bet manuprāt tā ne tuvu nav labākā izvēle.

 

3) MVC patterna struktūra patiesībā nav sarežģīta un palielam projektam tā sastādīs labi ja 5% koda, tāpēc jau labu laiku dodu priekšroku pašrakstītam MVC, kurā esmu apkopojis labākos (manuprāt) risinājumus dažādiem MVC aspektiem. Tam ir vairāki plusi:

a)performance - mans freimworks ir krietni (vairākas reizes) ātrāks par Symfony, jo tajā ir apkopotas idejas no daudziem freimworkiem, bet vienmēr priekšroku dodot performancei, nevis liekai funkcionalitātēi, piemēram:

- kāpēc vajadzīga konfigurēšana izmantojot .yml failus, kurus pēctam jāpārsē ar PHP, ja var konfigurāciju rakstīt uzreiz PHP.

- dažādu lietu lādēšana, ja tās netiek izmantotas. Manā freimworkā tiek ielādētas tikai tās lietas, kuras tiek izmantotas.

 

b) security through obscurity viennozīmīgi. Ja tiek izmantots OpenSource frameworks, tas nozīmē, ka aplikācijas pamatkods ir visiem pieejams, kas ļauj daudz efektīvāk plānot uzbrukumus un apdraud aplikāciju, ja pašā FW atklājās ievainojamība.

 

4) php.activerecord, manuprāt, ir labāks. Tam ir daudz sakārtotāks abstrakcijas slānis.

Link to post
Share on other sites

Tātad būtībā tas, ko es gribēju pateikt, ir tas, ka, ja projekts ir salīdzinoši mazs, tad nav vajadzīgs tāds freimworks ar pluginiem, filtriem, componentēm, superuniversālām konfigurācijām, utt., savukārt, ja projekts ir pietiekoši liels, tad MVC kodolu var atļauties rakstīt paša projekta ietvaros un pielāgot to projekta specifikai un galvenais drošībai. Iespējams, ka stap šo "mazs" projekts un "liels" projekts pastāv kāda sprauga, kurā iesprausties arī vidējiem projektiem, kuros optimālākais risinājums būtu izmantot šādus freimworkus, taču es īsti šādu spraugu nesaskatu.

Link to post
Share on other sites

Daudzkodolu nanotehnoloģijas procesori pieejami lietošanā pat mājsaimniecēm, nemaz nerunājot par serveru hostingu firmām! Runāt te par salīdzinoši nelieliem "performances" ietaupījumiem, sevišķi, ja testēts uz 4 gadus veca galda datora, ir diezgan mazvērtīgi! Bet ja grib lietot lētu darbaspēku, lētu hostingu par 5 USD mēnesī, tad arī tikai var runāt par mazajiem (mazbudžeta) projektiem un viss! Pat ja projektu izpilda viena, divas privātpersonas, tik un tā, mazbudžeta projekts ir tāds, kura summas nav mērāmas daudzos tūkstošos, bet gan simtiņos! Redziet, kvalitatīvs softs, hostings un tehnoloģijas maksā naudu!

Ja opensource palielina ievainojamību, tātad - štruntīgs opensource!

 

Visdīvainākais ir tas, ka visparanoiskākie tieši pret hakeru uzbrukumiem ir visādi "sīkie" - mazbudžetnieki, kurus pat sūdam nevajag! Bet lielie, kur tiešām ir svarīgi dati, mēdz pieļaut "caurumus" (bet tur parasti ir vainīgi projektu vadītāji un šefi, nevis programmeri)!

Link to post
Share on other sites

Mastermind, runāt par salīdzinoši nelieliem performances ietaupījumiem lielos projektos neizmantojot pārbāztos universālos framework risinājumus ir maigi izsakoties ĻOTI naivi.

Link to post
Share on other sites

It kā offtopic nav atļauts, bet ja jau citi, tad es arī.

 

Kodēju izmantojot FW jau gadus 2. Turklāt ne jau Symfony, bet daudzu viedoklī vēl smagāku un visādi citādi nekrutāko ZendFramework. Līdz ar to varu pateikt kas un kā ir ar to overhead ko dod FW izmantošana.

1) Jā - FW softs būs lēnāks kā konkrētajam projektam izveidots freimvorciņš. Protams, labi pārzinot to pašu ZF, Symfony vai jebkuru citu, šo overhead var samazināt līdz pieņemamiem apmēriem, bet vienalga tas būs jūtams!

2) Overhead jūt ne tikai uz paša skripta izpildi (plugini, renderēšanas, ntās klases utt.), bet uz arī uz parastu Hello world. Un pēdējais visvairāk sit pa kabatu Ajax pieprasījumu gadījumā (kad vajag izpildīt kādu mazu uzdevumiņu).

3) FW izmantošana KRIETNI paātrina izstrādi. Nav nepieciešams 2x taisīt to, ko jau ir uztaisījuši un notestējuši citi.

4) FW izmantošana standartizē kodu. T.i. - pieslēdzot projektam kādu citu cilvēku viņam iebraukt struktūrā ir daudz vieglāk kā pure custom made sistēmā.

5) Rezumējot - ja vajadzīga katra milisekunde (jo īpaši ajaxīgos requestos), tad FW izmantošana ir apšaubāma. Taču ja milisekundes nav tik nozīmīgas (un runājam par milisekundēm nevis sekundēm), tad FW izmantošana IETAUPA naudu, jo kodera stundu darbs (kurš tiek ietaupīts) ir dārgāks par to dzelzi kuru nāksies izmantot jaudīgāku, kā ne FW gadījumā.

Link to post
Share on other sites

Runāt te par salīdzinoši nelieliem "performances" ietaupījumiem, sevišķi, ja testēts uz 4 gadus veca galda datora, ir diezgan mazvērtīgi!

1) Nu, nu, performaces ieguvums nav neliels, bet gan vairākas reizes, ja MVC kodols tiek izstrādāts precīzi projekta vajadzībām, kas jo lielākam projektam ir svarīgāk, jo vairākas reizes samazina serveru iegādes vai nomas izmaksas.

2) Ja lapa tiek ģenerēta smagam FW papildus 200-300ms, tad tā viņa tiek ģenerēta un tas atstās papildus performances pēdas uz jebkuru lietotāju, varbūt pirmajā brīdī nemanāmas, taču vēl kautkur kaut ko izveidojot neefektīvāk, lapu jau sāks uzskatīt par bremzīgu.

3) Un, ja projekts ir pietiekami liels, tad visdrīzāk tā intelektuālā bāze būs daudz labāka par paša freimworka izstrādātāju bāzi un tieši šī iemesla dēļ viņi varēs radīt daudz augstākas drošības un performances MVC kodolu.

 

 

Ja opensource palielina ievainojamību, tātad - štruntīgs opensource!

Opensource FW samazina drošību tāpēc, ka ir opensource, tad pēc tava teiktā visi opensource ir štruntīgi.

Samazina drošību, jo:

1)Ir zināms kā uz freimworka tiek rakstīta aplikācija, kādas ir raksturīgākās un iespējamākas kļūdas, ko developeris un konkrētā freimworka varētu pieļaut;

2)Pašā freimworkā tiek atrasts drošības caurums, kas ir ne mazums. Vari kaut vai pats iemest google un pamaklēt cik tad Symfony ir bijuši tie drošības caurumi un cik daudz ir bijuši drošības fix-i.

 

 

Visdīvainākais ir tas, ka visparanoiskākie tieši pret hakeru uzbrukumiem ir visādi "sīkie" - mazbudžetnieki, kurus pat sūdam nevajag! Bet lielie, kur tiešām ir svarīgi dati, mēdz pieļaut "caurumus" (bet tur parasti ir vainīgi projektu vadītāji un šefi, nevis programmeri)!

Tā nu gluži arī nav, liela daļu mazo ir pilni ar elementāriem XSS un SQL injekcijām, nemaz nerunājot par daudz dziļākiem un nemanāmākiem caurumiem.

Bet būtībā aplikācijas drošība nav tik daudz atkarīga no budžeta kā no tās izstrādātāju kompetences.

 

Un kā jau teicu, lielā projektā MVC FW aizņems labi ja 5% koda, tāpēc ir racionāls ieguvums šo MVC kodolu izstrādāt tieši projekta vajadzībām.

Edited by codez
Link to post
Share on other sites

Grūti jums iet ar to php. Visādi sūdīgi freimvorki, drošības caurumi! Ar Java tādu problēmu nav - tur arī ir opensource frameworki, tur ir veseli API un tehnoloģijas un drošības caurumi atkarīgi no roku līkuma vai taisnuma!

Bet jā, tur iesācēji nevar neko daudz izdarīt...

Link to post
Share on other sites

Grūti jums iet ar to php. Visādi sūdīgi freimvorki, drošības caurumi!

Starp citu tāpēc, ka JAVA ir krietni komplicētāka elemenetāru lietu veikšanai webā, tajā ir daudz vairāk līka koda kā PHP. Un ir arī līki freimworki un neskaitāmi drošības caurumi.

 

Ar Java tādu problēmu nav - tur arī ir opensource frameworki, tur ir veseli API un tehnoloģijas un drošības caurumi atkarīgi no roku līkuma vai taisnuma!

Nevar būt JAVA un API? JAVA un tehnoloģijas? Ko tu saki?

Un pat atzīsti, ka JAVĀ var būt līkas rokas un tad rodās drošības caurumi?

Laikam tāpēc tikai retais izmanto JAVU web izstrādē.

 

Bet jā, tur iesācēji nevar neko daudz izdarīt...

Redzi pats atzīsti, ka JAVA ir sarežģīta un kodu tur rakstīt ir sarežģīti.

Es labāk izmantoju PHP un kodu rakstu viegli, kamēr domas var vairāk pievērstie globālai aplikācijas struktūrai.

Link to post
Share on other sites

Zinu pavisam noteikti ar ko Java atšķiras no php. Taču programmējot webus - gaumes jautājums, bet strīdaties jūs te par niekiem - tiem jau jābūt atrisinātiem, pirms izstrādājs sāk projekta izpildi! :)

Un es nedomāju, ka Javā kodu rakstīt ir ļoti sarežģīti... Python'isti teiks, ka Pythonā var visātrāk visu uzrakstīt!

Edited by Mastermind
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...