Jump to content
php.lv forumi

_microTimerClass


0x13hst
 Share

Recommended Posts

Es esmu sacis lenitem macities oop stilu.. Uzkodeju scriptu kas mera scripta izpildes laiku.

 

_http://0x13hst.insecure.lv/source/_microtimer/_microtimer.class.phps

 

iesakiet varbut ko uzlabot, kas ir nepareizi. Vai ari kadu padomu dodied..

Link to comment
Share on other sites

Ir jau smuki, bet tādām lietām lietot klasi? hmm.. nu es katrā ziņā daru šitā:

$start = microtime(true);
.... // kods ko mērīt
echo microtime(true) - $start; // vai nu izvadu, vai piešķiru kādam citam mainīgajam vēlaikai lietošanai

Link to comment
Share on other sites

Es esmu sacis lenitem macities oop stilu.. Uzkodeju scriptu kas mera scripta izpildes laiku.

 

_http://0x13hst.insecure.lv/source/_microtimer/_microtimer.class.phps

 

iesakiet varbut ko uzlabot, kas ir nepareizi. Vai ari kadu padomu dodied..

17523[/snapback]

 

nav jēgas tur lietot OOP, ja nav kaut kādas unikālas fiškas.

teiksim debugam noder start($counterName) un stop($counterName)

lai varētu vienlaicīgi `taimerot` vairākas daļas/blokus.

 

bet var ari iztikt ar procedūrām ar globaliem mainīgiem :) (tur ir tikai 2 cipari jāglabā :))

 

PS: viena lieta mācities OOP, citas lieta pielietot to tur kur to vajag/nezitikt.

Link to comment
Share on other sites

Ne nu dalja taisnibas ira. Ka nevajadzetu tur lietot oop, bet es uzskatu ka oop vajag macities no vienkarsham lietam parejot uz sarezgitakam.

17547[/snapback]

 

tikai viena lieta - vajag mācēt pielietot OOP kur tas TIEŠĀM ir nepieciešams.

drīz jau aizies class my_return { function my_return($str) { return($str); } }

:D

 

programmētājam viens no galvenajiem nosacījumiem kodā ir 'keep it simple'.

 

priekškam piemēram raksturot divas funkcijas caur objektu, ja tās ideāli strādā bez objektiem.

jāsaprot ir tas, ka objekts NAV funkciju vienkāršs apkopojums.

Link to comment
Share on other sites

neliela aizstāvība.

 

Rakstīt vienkāršas funkcijas programmējot procedurāli varētu būt izvirtība, it sevišķi zinot to, ka procedurāli nekāda override'ošana nevar notikt.

Savukārt, ja mums ir objekta funkcija, mēs varam klasi atvasināt un pārrakstīt attiecīgo funkciju ieliekt tajā "visu mūsu sirdi".

Vienkāršs piemērs uzskatāmībai:

class A {
var ... //mainīgie
function ... //dažas klases funkcijas
function echoFun() {echo 'skaisti';}
}

Pēc būtības funkcijai echoFun() nav īpašas jēgas, bet ja tiek klase mantota?

class B extends A {
var ... //mainīgie
function ... //dažas klases funkcijas
function echoFun() {
//te nāk mega izvads ar vēl n funkciju izsaukumu
}
}

Līdz ar to tiek iegūta viena liela priekšrocība - mums pietiek zināt, ka echoFun() klasēm satur informāciju par to, kā attiecīgais objekts jāattēlo.

 

Konkrētajā gadījumā mēs varētu vēlēties objektu, kas saglabātu datus datu bāzē. Tad mums atliek mantot objektu, pārrakstīt start() un stop() funkciju, lai tajās notiktu datu saglabāšana un/vai nolasīšana no db.

Attiecīgi funkciju _formatMicroTime($_int = 6) mēs varētu neaiztikt. Rezultātā saucam objektiem metodes start() un stop() un tikai berzējam rociņas, jo redz mums ir jau divi veidi - viens objekts, kas darbojas bez datu bāzes, bet otrs ar vieglas rokas kustību mums saglabā datus datu bāzē.

 

Tāda nu ir tā objekta jēga, protams, šāds objekts liekas primitīvs ("nafig vajadzīgs"), bet, ja tas tiks izmantots daudzos projektos, tas var apaugt ar samērā biezu slāni un var dot ievērojamu labumu programmu izstrādes posmā.

ātrums - gatavs objekts, kas jāmanto un jāpārraksta pēc vajadzības dažas funkcijas;

vienkāršība - darbojoties ar objektu, zinu, kuras metodes tik jāpamaina - noteikti nosaukumi utt.

strukturētība - katra funkcija atbild par sev paredzēto uzdevumu

 

Protams, protams, visa pamatā ir labi izplānots objekts, apzinoties tā mērķus un pielietojumu, bez tā, protams, nekā...

Link to comment
Share on other sites

jā un vēl viena lieta iz dzīves.

Objekti pēc būtības ļauj nodalīt objekta struktūru no prezentācijas. Pieturoties pie šīs idejas es cenšos veidot bāzes objektus un uz tiem uzkabināt jau gala objektu, kurš tad jau satur informāciju par attēlojumu.

Līdz ar to debug procesā mazās funkcijas ir vienkārši neatņemama sastāvdaļa, proti, klase A ar funkciju displayObj()

class A {
displayObj() {print_r($this);}
}

Kad es objektu esmu atvasinājis (varbūt pat n reizes) es šai funkcijai displayObj() iedodu prezentācijas jēgu, proti, iestrādāju konkrētā objekta attēlošanu.

Šādā veidā es varu programmēšanas procesā skatīties jau uz vizuālo objektu, bet problēmu gadījumā es piekļūstu pie bāzes klases (vai vienu līmeni augstāk) un izsaucot šo pašu funckiju (nemeklējot, kā nu viņu biju nosaucis, vai kā to objektu varētu izdrukāt) varu meklēt kļūdu.

Link to comment
Share on other sites

Jauna versija.

_http://0x13hst.insecure.lv/source/_microTimer.class.html

 

2 padomam ir viens trukums, ja man vajag startet vairakas reizes mircotimer ar construktora palidzibu es to nevaru.

Link to comment
Share on other sites

 Share

×
×
  • Create New...