Ako kažeš stvarno, ne znači da si time išta argumentirao.
A sada argumentirano da vidiš o kakvim deluzijama pričaš…recimo za:
Napravio sam upravo bench test i usporedio moj pristup (za koji sam svjestan da je sporiji) od nativnog is_string. Rezultat testa kaže da je za moju metodu da se trigira 100 000 puta potrebno 0.01696sec, dok je za nativnu potrebno: 0.003298sec.
Nativna je očito brža, točnije na 100 000 trigiranja metode se uštedi ravno: 0.013662sec,
točnije po jednom pozivu metode se uštedi vremena: 0.0000013662sec
Ako tu uštedu stavimo u nekakve realne brojke, recimo da se u prosjeku po otvaranju stranice moja metota trigira 10 puta, to znači da sam po jednom otvaranju stranice mogao uštediti: 0.000013662sec.
Drugim riječima, moja stranica se mora otvoriti 731957 puta, da bi uštedio samo jednu sekundu procesorskog vremena.
Ako je to ono što smatraš bitnim, samo izvoli tjerati mak na konac.
A sada ću ti slikovito objasniti gdje zapravo griješiš.
Zamislimo da smo godina 1980. i da svjedočimo utrci auta na 402 metra. Ti pripremaš svoj auto, dok netko drugi priprema svoj auto.
Ti glancaš svoj auto do iznemoglosti jer smatraš da što se više sjaji da će biti manji otpor zraka i da ćeš tako uštediti 0.0000013662sec na prolaznom vremeneu.
Dok netko drugi dolazi sa totalno prljavim i masnim autom na istu utrku i boli ka kiki što će zbog te masnoće biti sporiji 0.0000013662sec, ali on zna da je masan zato jer non stop kopa po vitalnim djelovima svog auta ispod haube i da će jednog dana tamo 2000-te takvim pristupom oboriti i preko 10 sekundi svog prolaznog vremena.
Tako nekako, pa ti slobodno glancaj.
Bio sam takav u gotovo svim aspektima svog života, ali onda sam shvatio čaroliju “quick and dirty” pristupa i doslovice sam svjesno radio na sebi da uravnotežim glancanje i “quick and dirty” pristup …jer ovo quick nekada donosi jako puno, pod prihvatljivm dirty faktorom.
Drugim riječima, idealna krivulja našeg napretka se uopće ne nalazi tamo gdje nam se to može pričinjavati (na nekakvom savršenom uređenju)…nego na jednoj liniji koja nastaje pod okolnostima koje se neprismotrenom promatraču čine totalno kaotične i neuredne.
Opet slikovita usporedba.
Zamislimo da ulazimo u neko skladište od kojega očekujemo savršeno uređenje. Vrlo vjerovatno bi zamišljali kako je unutra sve tip top sve špagi posloženo… besprijekorno čisto…sa puno prozarčnog prosotra između polica.
No savršeno skladište je dijametralno suporotno. Em je dosta prljavo, em je nabijeno sve i pomalo kaotičnog izgleda. Zašto savršeno skladište izgleda tako?
Pa savršeno skladište izgleda tako jer na taj način najbolje ispoljava svoju ulogu. Skladište koje bi previše trošilo svojih resursa da se non stop čisti i bude berspijekorno čisto …rasipa nepotrebno tu energiju.
Skladište koje je previše prozračno… znači da se moglo izgraditi puno manje skladište, uštediti na betonu…organizirati bolje police i postići isti kapacitet uz manje uloženih resursa.
Ovo dvoje gore kada se dotjera do svojih max granica, dobiješ naočigled skladište koje je kaotično…i užasno.
Sada ako odeš u real life, vidjet ćeš da većina skladišta izgleda prije poput ovog drugog, ne prvog skladišta.
I to je zato jer iskustveno ljudi dođu da im je lakše imati skladište drugog tipa nego prvog tipa…jer tako ulažu manje energije u to skladište i više dobiju od njega za manje uloženog.
Ne kažem da ljudi u praksi svi imaju savršena skladišta…samo ukazujem na to da je tu negdje između ta linija savršenstva od onoga što vidiš u praksi i onoga što očekuješ pod pojmom “savršenstva”. Što je iluzija.
Isto primjeni na code…savršeni code može nepristranom promatraču izgledati kaotično i neuredno. No on ako ne krši bazične uvjete, taj naočigledni kaos nikako ne mora biti negativan.
Jer kao što ono kaotično skladište ima svoje procedure da se skladištari dobro mogu snalaziti u tom “kaosu”, tako i naizgled kaotičan code može imati svoje procedure.
No tako duboko u code nismo zagrebali jer si se uhvatio najpovršnijih stvari … a svakako potencijalna ušteda od 0.000013662sec ne čini code lošim.
Vratimo se na poliranje auta …da se nisi zagledao u poliranje auta (kao mikro primjedbe), možda bi primjeti one makro stvari na kojma se radi. A te makro stvari su rad na vitalnim djelovima auta, koji će jednog dana oboriti vrijeme kako spada … a ne nekakvih 0.000013662sec.
Za početak si se uhvatio nekakve helper metode, nisi gledao sliku u globalu. Nisi gledao što ta sintaksa unaprijeđuje itd. A i to je mikro slika…jer i to je dio još nećega većega o čemu sam ponešto napisao.
Generalno ako me pitaš gdje svoj code vidim za nekih 20-30 godina, reći ću ti iskreno da ga vidim takvoga da će računalo razgovarati sa čovjekom i to vrlo intuitivno sa tom osobom. Programirat će se kao što se danas odgaja dijete. Trenutna ušteda od 0.000013662sec je tu najmanje bitna stvar koja će odlučiti hoću li tamo stići ili ne. I ne moram ja tamo prvi stići, ako ne ja…netko drugi će.
No to je smjer u kojem se trebaju mijanjati vitalni dijelovi ispod haube auta, a ne glancanje prašine radi tih 0.000013662sec i bacanje energije na to.
A da bi se tamo stiglo, treba raditi na jednoj široj slici, na kojoj ja radim, to su:
- izučavanje neuronoskih mreža
- rad na financijama i generalno proučavanje marketinga
- rad na mogućnostima umrežavanja viši ljudi
Kakvo glancanje?
Još jedna slikovito dočaranje tvoje opaske.
Zamislimo sada Ivicu Kostelića koji radi na svojim rezultatima skijanja. On da bi pospiješio rezultate skijanja, on osim na skijanje ide i u:
-gym
-gimnastika
-itd.
I sada zamisli da mu u gym-u priđe neki okorjeli body builder i kaže mu…slab si ti. Da bi bio ovakav kao ja fali ti to i to i to…
Ali Ivica Kostelić niti ne želi niti treba biti ko on …njemu je dovoljno 60% gymya, 60% gimnastike …da bi najbrže napredovao ka cilju koji si je on postavio.
Tako i meni treba (bubam) 60% programiranja, da riješim sve probleme i izazove koji se ispred mene nameću. Sa obzirom na sve, previše sam energije i uložio u programiranje i moram to pravilnije raspodijeliti na ostale stvari …a ne da glancam haubu radi 0.000013662sec.
Nadam se da sam išta bio jasniji.
Iskreno, jedino što sputava i usporava krivulju u napretku ka mom cilju…što se dam zavući da odgovaram na ovavke nekonstruktivne postove.
Ali za konstruktivnu raspravu jesam …i ponavljam. Ako postoji primjedba koju možeš pretočiti i prikazati kroz realan problem u praktičnom smislu. Spreman sam ju poslušati i raspraviti u dobrom duhu da se malo istraži imali ili nema smisla.
A i ovo što tpojka kaže tipa…“ne valja što koristitiš regex, on je prespor” , a bez da se imalo rezonira u kojim okolnostima se koristi… i kada taj affekt na brzinu ima važnosti u praski, a kada nema … je puko naklapanje bez da se razmišlja o praktičnosti neke upotrebe. I kada se smije, a kada ne.
A ovih tvojih 0.000013662sec su tek desert nepromišljanja na tu temu.
Opet mi nije žao za ovaj post, jer ako ćeš i ti gledati bez zamagljivanja pogleda, vidjet ćeš da sam ti ukazao na neke vrijedne principe o promatranju i razumjevanju onoga što je kaos, a što je savršenstvo. I gdje se stvarno može pronaći svoja najbrža krivulja napretka.
Ima ljudi koji preko noći zakucaju u nebesa…tako da smo svi sigurno jako daleko od idealne krivulje napretka koju bi mogli u svom životu pronaći i ostvariti. Nekako mi se čini da je nećeš pronaći u ovome: 0.000013662sec