Jump to content
php.lv forumi

Komponenšu globalizācija


F3llony

Recommended Posts

Tu idiotu tēlo un oftopiku dzen uz pilnu slodzi, jeb tikai brīvajā laikā?

 

Dīvaini, man šķita, ka ar šo

Globāļi ir ļaunums jo nav iespējams atsekot un limitēt to, kas, kur un kāpēc tur tiek glabāts, kas, kur un kāpēc to izmanto utml sīkas nianses...
tas bija tavs amats.
Link to comment
Share on other sites

  • Replies 37
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Ir globāļi ļaunums un bumba ar laika degli.

Kamēr biju redzējis tikai prātīgu/piesardzīgui/disiplinētu globāļu izmantošanu es ar domāju ka nekas traks globāļi nav, bet nu pēc projekta, kur globāļus maina jebkurš un jebkur, kur tik ienāk prātā..

Link to comment
Share on other sites

Ir globāļi ļaunums un bumba ar laika degli.

Kamēr biju redzējis tikai prātīgu/piesardzīgui/disiplinētu globāļu izmantošanu es ar domāju ka nekas traks globāļi nav, bet nu pēc projekta, kur globāļus maina jebkurš un jebkur, kur tik ienāk prātā..

Par ko es arī runāju. Nav iespējams garantēt, ka API pēcāk neizmantos mazāk skillots cilvēks par pašu arhitektūras veidotāju kas vienkārši nezināšanas dēļ var piešķilt uguni visai jaukajai arhitektūrai.

Link to comment
Share on other sites

Nu bet te jau mēs atgriežamies pie problēmas labs/slikts programmētājs.

 

Bez globāļiem, šārētu atmiņu - sauc kā gribi - kaut ko reāli uzkodēt ir baisi grūti, ja neteiktu neiespējami. Lūk pieredzējušāka cilvēka domas/pieredze: http://prog21.dadgum.com/23.html

 

Pēc otrās reizes, kad tev paprasīs pārrakstīt visu moduli pret doto API tā, lai tas to izmantotu tā, kā tas ir paredzēts arhitektūrā

 

Paredzi arhitektūrā, ka globālus mainīgos nedrīkst izmantot :) Tai skaitā singletonus, multitonus, dabababaonus. Vēl var mēģināt paredzēt, lai kodē bez kļūdām, raksta skaistu kodu un lai performance būtu \m/ :D

Edited by marrtins
Link to comment
Share on other sites

Reāli kāda tad ir atšķirība?

$marrtis_OBJECT1_DB_LINK1=mysql_connect(); <- globāls userspace mainīgais :D

marrtins_get_data($object_id) <- user defined namespace metode :D

T.i., tādā reģistr-objektā ir abstahēts augstāk uzrakstītais, tas arī viss. Destruktīvs programmētājs tāpat atradīs viedu, kā kaut ko sajāt, apiet.

Link to comment
Share on other sites

Nav runa par destruktīvismu, bet gan par pieredzes/skilla trūkumu. Šādi ierobežojumi nav paredzēti lai apturētu psihopātiskus bezsmadzeņu idiotus, bet lai pateiktu programmētājam, kam maz, vai nekāda pieredze ar sistēmu "You are doing it wrong, here is how You do that".

Link to comment
Share on other sites

Vienīgais, kuram te pieredzes ( un saprašanas ) ir par maz, tas ir F4llony.

Tev ir kaut kādas problēmas? Moš satiekamies pie kafijas tases un izrunājam dzīvajā, lielmeistar?

"Here is how you do that" tu gan nekādīgi nepasaki.

Pamatojums? E.G Exceptions/kļūda/whatever "this is a bla bla bla, use bla bla instead" tev neko nepasaka? Nu, kā jau minēju, šādi ierobežojumi nav paredzēti lai apturētu bezsmadzeņu idiotus...

 

Mēs varam atgriezties pie topika un vai grāvis ar kabaci varētu aizvākties ... kaut kur citur?

Link to comment
Share on other sites

Ar DI konteineri viss izskatās jau baudāmāk, bet pastāv viena problēma, reāli aplikācija vār būt simtiem kontroleri, desmitiem modeļi un vēl vesela kaudze dažādu objektu un bibliotēku. Vai tagad šīs visas katrā requestā ir jāreģistrē DICā?

Link to comment
Share on other sites

Kontrolieri iekš DIC nav jāreģistrē, tiem tiks automātiski iebarotas dependencies, caur maģisko create() f-ju. Reģistrēt vajag tikai core klases, data mapperus un servisus.

 

Ir jāreģistrē visas klases, kuras tiek lietotas aplikācijas ietvaros, un kurām vajag dependencies, taču izveidotas (lasi: new SomeClass) tiks tikai reāli izmantotās konkrētajā requestā. Domā par DIC konfigurāciju tāpat, kā par programmas konfigurāciju - tur tiek definēti visi iespējamie programmas konfigurācijas parametri, nevis atsevišķs fails katram requestam ar tikai tajā izmantotajām vērtībām.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...