Sintaksa za provjeru strukture objekta

Što se ne prijaviš negdje za komičara, vidim dobro bi ti išlo. :smiley: :smiley:

Jos jedan doprinos temi, ali vjerujem da je i ovo za autora teme previse verbose :sweat_smile:

E moj belmine, upisao se i ti među “probranu” ekipu. Hvala.

Pa da. Imas sve u kompletu.

Evo za laravel.

1 Like

Daj navedi clanove te ekipe, vjerujem da je @tpojka prvi na listi :smiley:

Salu na stranu, sta sam ja to rekao, a da ti to nisi ? JSON, XML i sve ostalo ti je ili previse ekspresivno, ili ima neke “probleme”, samo je tvoja sintaksa savrsena ?

Yup inace ima jako fin API i ja koristim primarno za validaciju forme a moze biti koristen za bilo kakvu validaciju objekta.I da sintaksa mi izgleda poznato, jer se radi o JS-u.

https://i.imgur.com/q1lnM3q.gif

Opasno si tanak sa strukturom.
Ako ne kapiraš kako garaža ili auto ne treba strukturalno uopšte da u sebi imaju [zaključanog] vozača i da ostatak klase/objekta zavisi od toga (nevezano za to kol’ko bi rewrite trenutnog koda košt’o) - ima knjiga na Amazonu. Bar knjige nisu skupe, jbga.
Evo za početak da se upoznaš sa par termina:

Nije uopce fora u tome…
Kad ja pricam o normJSu, tebe boli Pero iz priče i nj. komponenta.
Kad pričam o “warperima” …tebe boli što je wraper a ne warper.
Jednom su te pak mučile lambda strelice u temi o nečem stotom.

Sad ovdje te muči objekt vozač unutar auta gdje pričamo o sintaksi za validaciju, a nikakvim drugim bakaračima.

Da si ironičan, bilo bi zabavno…ovako je crayzimatično.
Za sve ćeš se pokušat uhvatit, samo da ne moraš upregnut dvije vijuge i pokušat shvatit o čemu je tema.

Ja sam se hvat’o jedino za ono što si ti predstavlj’o .
S tom sitnicom da šta god pitam tebi je odgovor nije fora u tome.
Koji moj postavljaš nešto u čemu nije fora? Nema tu mesa. Samo kosti. Zato velim - tanak.
I savršeno čitam bitno iz detalja. A ovde se vidi da ti je uobičajena ona ista struktura koja je postavkom pogrešna. Ne treba da se jedeš, jednom ćeš shvatiti da je ta struktura pogrešna.
Što prije kreneš da čitaš ono što smo ti neki drugi (cijenim - većina s onog™ tvog spiska) i ja ponudili i predlagali - prije ćeš poput mene uočavati arhitektonske, domenske, strukturalne i ine greške.

Btw…pročitao malo s linka. Nadam se da primjećuješ da pojam decoupling upravo opisuje ono što uvodi normJS. Znači rasterećuje aplikaciju da “previše poznaje” komponente frameworka, te komunikaciju između aplikacije i komponente svodi na propisani broj metoda koje su propisane standardom.

Tako da još jedan plus za normJS, ovog puta od tebe :slight_smile:

Nego, ne vidim kako gornji link pojašnjava da klasa auto nebi trebala imati referencu na klasu vozač? Jesi ti to malo napamet bubao gradivo pa sada bacaš linkove tek tako, samo da kvocaš kao uobičajeno?

Aman ti baš ništa ne kapiraš?
Posl’o sam ti link za code decoupling da pokušaš svariti zašto je nepravilna struktura ova dva objekta odnosno zašto nije pravilno da drže u sebi objekt vozač. Takvu strukturu je mog’o napraviti samo neko bez:

  1. znanja
  2. iskustva
    (ne nužno tim redom)

Kakav normJS, kakvi bakrači. U kulturnom svijetu ne razgovaramo o tome. :relaxed:

Zato jer pričaš o principima. Upravo onima koje uvodi normJS da raspetlja preveliku zavisnost aplikacije i frameworka koji se koristi.
Valja razumjeti princip koji guraš na stol. Ja ga očito odavno razumijem kada me isti čak potakao na razvoj normJSa. Nebitno što nisam znao pod kojim nazivom se taj princip pronalazi. Nazivi su nebitni…logika principa je bitna.

Tanjež.

Shvatit ću to kao “Shvatio sam, možemo se vratiti na ovu temu” xd xd

Sintaksa je proširena sa par zanimljivih noviteta:

ADDING LOCAL CUSTOM TYPES

    "
    @garaza: array<auto>  
    @auto: object[volan:string[left|right],vrata:int, vozac:vozac]
    @vozac: object[ime:string, age:int]
    "

    //U ovom primjeru, stringType sadrži tri clase: garaza, auto i vozac. Auto i vozac su lokalne klase koje su potrebne za potpunu definiciju klase garaza.
    //Klasa koja služi za testiranje strukture objekta, je uvijek prva navedena klasa.


CONTROL INNER REFERENCE AND Where statement

    objekt[data:array, data2:array] Where {this.data2.length == this.data.length}
    objekt[data:array, data2:array] Where {this.data2.length == this.data.length || this.data.length==0}
    objekt[data:array, data2:array] Where {this.data2.length == this.data.length || this.data.length==0} OR {this.data.length==0 && this.data.length==100}  //na ovaj način pisanja OR statementa razdvajamo logične cjeline Where statementa (svaki se nalazi u svojoj zagradi), što ostavlja prostora da kontroliramo koji WHERE statement je prošao, također je moguće kvalitetniju dokumentaciju kreirati, ukoliko postoje WHERE uvjeti kao zasebne cjeline.

//referenca to parent:

    array<array<int> where {this.length==this.parent.length}>


SHORTHANDS:

    {name:string, age:int}          -> is same as:  object[name:string, age:int]
    'left|right'                    -> is same as:  string[left|right]
    "left|right"                    -> is same as:  string[left|right]
    {side:'left|right|up|down'}    -> is same as:  object[side:string[left|right|up|down]]