REGPATH - sintaksa za selektiranje foldera i fileova

Što da ti kažem. Postoji velika razlika između tjeranja maka na konac i ostvarivanja zacrtanih ciljeva.
Ovo kakvo je, poslužit će više nego dovoljno da dođem na cilj gdje želim stići.

Znam da se može i tako pisati …ali nekako mi je ovako preglednije. Volim ponekada ovako. Svakako smatram da je to tjeranje maka na konac. :smiley:

Ako će ti koja milisekunda promjeniti nešto u životu, go for it.
Ja znam zašto sam išao ovako…zato jer na ovaj način svi moduli u različitim programskim jezicima zovu metode koje se isto zovu. Tako se meni ta metoda u svim jezicima tako zove i onda je sve kompatibilno na jednoj višoj razini.

Objasnio sam to u jednom postu iznad tpojki na odgovor.

Uglavnom da ne duljim…to tjeranje maka na konac me ne zanima.
Ako imaš kritiku koja će obrazložiti zašto nešto u konretnoj situaciji neće riješiti problem … onda ću je rado poslušati. Sve ovo ostalo ja gledam ko tvoj problem, a ne svoj. Učestalo sam primjetio da programere baš to koči što ne znaju fokus staviti na ono najbitnije…nego ga razvodnjavaju na nebitne stvari…i onda zaglave tamo negdje zato jer se bave nebitnim stvarima umjesto da se usmjeravaju ka bitnima. :wink:

Code koji se:

  • lako održava
  • koji je skalabilan
  • fleksibilan za modifikacije
    … je dobar code. Sve drugo je nebitno ili manje bitno.

Dobro, ima naravno još bitnih stvari …ali gornje kritike se ne suprostavljaju sa niti jednom od bitnih stvari. Tj. ako se kose sa nekom od bitnih stvari, volio bih čuti sa kojom to bitnom stvari? :slight_smile:

Koja milisekunda u procesiranju codea mi stvarno nije bitna. :slight_smile:

Radim sa autoloadom. To ne znači da nemaš igre sa pahtovima u određenim (mnogim) situacijama.

Također prekompajliranje coda se ne radi sa autoloaderom, nego negdje u koraku koji se najčešće zove onBuild()

To se moze i ako je cisti php bez frameworka.
Ako je code napisan na pametan nacin.

Sto ti znaci prekompaliranje?

Nit sam rekao da se ne može. :slight_smile:

Samo velim, poentiram na to…ako se već kritizira code, zanima me samo ona kritika koja ukazuje da je narušeno nešto bitno.

Ovo tjeranje maka na konac samo da se ukaže da se nešto moglo nijansu bolje…zaboli me ona stvar.

I vjerujem da nemamo svi isti osjećaj za nijanse, ali treba i to trenirati naučiti razdvojiti bitno od nebitnoga. Lakše je imati OKP, nego razumno raspodjeljivati pažnju na uistinu bitno. :slight_smile:

pre - kompaliranje

Pa što radi webpack sa svim svojim file-ovima prije nego kreira radne file-ove?
Što radi kompajler SASSa ili LESS-a?

Pa ne izvršava se sav code direktno…nego imaš određene sintakse koje se moraju pre-kompajlirati, da bi bile kasnije razumljive onome tko će ih čitat/procesuirat.

PHML je jezik koji prekompajliram.
I javascript isto prekompajliram i na taj način širim sintaksu po svojoj potrebi.

Moje mišljenje na tu temu: Zašto pre-kompajlirati code

@ajme Welcome.

Btw. (ne samo sa ove teme) bilo je vrlo interesantno čitati tvoje postove na ostalim temama o programiranju. Vidi se da raspolažeš iskustvom koje je zasnovano na ispravnim principima, industrijskim standardima i dobroj praksi.

@bozoou sve ovo navedeno tvoj kod nije. Možda tebi to tako izgleda, ali stvarno nije.
Jedan od principa s kojim se vodim na poslu prilikom osvrta na moj kod je da ne shvaćam kritiku osobno. Probaj, možda nešto i naučiš :wink:

Preporučam odličan članak na tu temu The 10 commandments of navigating code reviews | TechBeacon

2 Likeova

Jos jedan nepotreban layer.

:+1:

2 Likeova

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

Nekome je nepotreban, a ja smatram da je meni potreban za ono što želim postići. Nebi inače ulagao ogromnu energiju na razvijanje toga. Možda griješim, vrijeme će pokazati.
Svakako sam svjestan da je ambiciozan zalogaj i vrlo moguće preambiciozan. No to mi pričinjava tek dodatan izazov.
Kada će cijeli svijet raditi preko toga web, onda ćeš reći sotonino djelo. :stuck_out_tongue: A ja ti odmah kažem da su to Anđeoske ideje i samo od tuda mi hrabrost da pratim te naume. :wink:

Pročitao sam možda 20% tvog posta, a odustao sam jer je naporno. NHF.

Uglavnom, hvataš se za krive stvari. Uhvatio si se jednog najmanje bitnog, ali bitnog segmenta u cijeloj toj priči, brzine, i počeo “argumentirati” nekakvim čudnim nespojivim analogijama. To šta je sve ostalo krivo u tvom pristupu nema veze? Sad se pitaš kako znam da je krivo? Ako nisi znao, u svakoj industriji postoje industrijski standardi, pa tako i u IT-u. Vidim da ti ne mariš za njih i nije te briga. OK, al to su odlike “loših” developera s kojima niti jedan ozbiljan developer ne želi raditi.

Volio bi te vidjeti u okruženju sa jedno 10-tak developera koji su top klasa u svojem području. Ja npr. imam sreću raditi s njih 3. Misliš da svatko od njih ima vlastite standarde?

Spominješ nekakav normativ, kako očekuješ da ostali developeri prihvate to i pridruže ti se u razvoju kad ne znaš ni osnove i smatraš i nebitnima? To šta tebi tvoji špageti izgledaju super, ostalima i ne baš.

Uglavnom, nije me briga šta radiš, kako radiš i zašto radiš. Meni je to sve super jer ne radim s tobom, a i sviđa mi se entuzijazam. Tako da, sretno ti sa svime time.

1 Like

Uhvatio sam se samo jednog, jer nema potrebe da ti razjašnjavam sve.
Jer lijepo sam ti ponudio ako misliš da iti jedna od onih stavki narušava nešto krucijalno da onda to i argumentiraš.
Ja sam ti samo pokazao na jednoj stavci kako se argumentira i dovodi na vidjelo što će se iz nečega desiti, a što neće. Na tebi je da svoju kritiku baciš u praktične oblike, tj. da dokažeš na što će utjecati u praksi ili neće.

Šta bi ti trebao objašnjavati da je ovo:
return (gettype($x)==='string') ? true:false;

isti vrag ko i ovo:

return gettype($x)==='string';

Naravno da sam toga svjestan, no to je još manje bitno od onih: 0.000013662sec

Jedino što ima imalo smisla od tvoje kritike je php8 i prelazak na strongly typed način codiranja. No i to bi ti mogao objasniti ako bi prvo uvidio da su ove ostale stvari totalno nebitne. Onda bi mogli otvoriti i nešto kompleksniju temu, ovako nema smisla preskakti korake. :wink:

Inače bio sam voditelj web odjela gdje se tipkao C# koji je strongly typed jezik.
Tako da sam ja bio taj čiji su se principi slijediti l koji je uvijek imao riješenje u rukavu za svaki problem.
Uglavnom, principe i dobre prakse stvaraju vođe …a ne oni koji slijede voditelje.
Kada i ako ću stvoriti ono što stvaram, onda ću svakako nametnuti svojim ljudima ono što ja smatram da je bitno da se poštuje. Ostalo je sloboda izražavanja svakog pojedinca.

Slažem se i za industrijski standard…no nemoj se razbacivati tom riječju i primjenjivat je na ovakve sitnice: return gettype($x)==='string' ? true:false;

Tvoj problem ako ih nisi razumio. Potrudio sam se.

I još nešto… nisam ja ovo tražio.
Ti si tražio code…za što? Da bi ga komentirao? I sada ti je naporno?

Jel ti hodaš po ulici i naglas komentiraš drugim ljudima kako su obučeni i kritiziraš njihov style. I onda je tebi naporno ako ti objasne zašto se tako oblače?

Shvati, ti si naporan što si si dao dopuštenje da krtiziraš nešto nepozvan.

Tema kao tema je otvorena da se kritizira i komentira postavljena REGPATH sintaksa, dočim code/engine koj će parsirati tu sintaksu, svako može sebi napraviti poštivajući ili nepoštivajući industrijske standarde.
Tako sintakse funkcioniraju. One kreiraju pravila …no one nisu CODE koji ih parsira i izvršava ta pravila.

Tvoje traženje da vidiš moj code je moja dobra volja što sam ti ga proslijedio. Konstruktivna rasprava na tu temu mi je ok…ali nešto nepozvan kritizirati i još ne argumentirati tu kritiku…e to je naporno. To je onda više ko pljuvanje.

Velim, slobodno idi po ulici i kritiziraj druge ljude ako ti ne paše njihov stil oblačenja. Ima li to smisla? :wink:

Jesi li uopće upratio da sam taj čitav komad coda napisao bez da sam kliknuo iti jedan jedini refresh / izvršavanje coda?

I kad sam bio gotov, kliknuo sam “play” i radio je.
Praktički isprve sam stvorio meni potrebnu funkcionalnost, code ide u ladicu i radit će dobro svoj posao.
Nije utjeran savršeno, ali radit će. To je ono što mi treba. I u startu sam ga pokrio cijelog debelo sa testovima, tako da me neće iznenaditi neki potencijalni bug. A to mi je najbitnije.
Quicky je rješeno i idemo dalje sa zadacima koji čekaju. A ne da gubim vrijeme razbijajući glavu o 0.000013662sec. :wink:

U to mi je jako teško povjerovati, a ako i jesi, kladim se da to nisi bio više od 3 do 6 mjeseci?
Obično u tom rasponu je review zaposlenika.

Samim time šta si ga “objavio”, indirektno si pozvao sve nas da ga komentiramo. Stavljao sam i ja svoje primjere koda tu, slobodno komentiraj. Na forumu smo :slight_smile:

Zapravo, prvo zaposlenje u životu kao programer…PRVO!
Nakon samo tri mjeseca sam postavljen za voditelja odjela i plaća mi narasla za duplo.

I tu ulogu sam zatim ispunjavao 2 godine do Covida. Paralelno uz tu ulogu sam još otvorio svoju firmu, jer na posao sam smio dolaziti kad god i odlaziti kada god.

Šef mi nekoliko puta htio platiti ručak iz oklade jer nije vjerovao da se nešto može tako brzo napraviti kako sam brzo napravio…ja prihvaćao oklade i napravio ispod roka. Znači hvatao se za glavu od nevjerice.

Kako je došao Covid, stali su moji projekti zbog klijenata…i meni su dali privremeni otkaz radi uštede troškova…jer sam bio tamo jedan od najplaćenijih ljudi. A hladni pogon je mogao raditi i bez mene…pošto sam se ja uglavnom bavio istraživačkim radom i inoviranjem.

Uglavnom, dva mjeseca nakon što su mi dali privremeni otkaz, pozvan sam natrag…ali sam odbio, jer sam u tom periodu umalo i sam postao milijjunaš. (ne baš…ali na dobrom putu xd)

Stoga, stvarno mislim da ti 0.000013662sec neće ništa promjeniti u životu, nego da su neke druge stvari bitnije. A ti vjeruj što želiš.

P.S. kada je bio neki bug u mom sustavu, svraćao sam u firmu na cca 30min da istjeram bug …dok sam redovito primjetio da ekipa izvan mog odjela (android) traži svoje bugove i po tjedan dana.
Mislim da u tih 2 godine nisam imao bug koji sam tražio duže od pola sata.

Koliko je ljudi bilo u tom odjelu?

Ti si se uhvatio za taj broj. Ja sam rekao da je to bitna, ali najmanje bitna stavka. Ti si taj koji to forsira. Ja sam ti naglasio da je tvoj kod generalno loš, a ne spor :wink:

Nije nas bilo puno, dvojica. Ali svejedno, dobio sam povjerenje i ulogu da razvijam taj odjel…i to rapidno brzo sam stekao to povjerenje.
S druge strane, to je ipak bila ozbiljna firma sa visokom klijentelom, banke, hoteli…

Ma hebe mi se za taj broj…on je samo primjer koliko malo nešto može vrijediti. Velim ti, one neke druge stavke koje si naveo kada bi egzaktno prikazali na papiru…broj uštede bi bio još i manji.
A sve je o tome…koliko se štedi i kako se grade temelji.
Jer uštede su u banani i ako su puno veće, a ako se narušava stabilnost temelja.