Flags as string

haha sta si ti izmislio ? destructuring, rest/spred i defaultne parametre ? daj nemoj me nasmijavati, pogledaj malo kod koj sam ti dao i kod koji si ti napisao i sta rade tj. na koliko elegantan nacin rade to sto rade :smiley:

Ne, i moj kod nece nikad raditi nesto tako slicno.Cak sta vise taj kod bi dobio lagan reject kad dodje kod mene na code review.
Ja kad vidim poziv na funkciju sa getWidth("ipbm") ili sta vec, apsolutno nemam pojma sta to ipbm treba da znaci u tom momentu, nego moram pronaci definiciju funkcije i provaliti sta te skracenice znace ,
dok getWidth({inner: 5}) jasno govori sta sam ja proslijedio u tu funkciju.
Da ne spominjem cinjenicu sta ako imas key-eve koje pocinju sa istim slovom, pa moras onda paziti na redoslijed tih karaktera kad ih proslijedjujes u funkciju.

Nije to nikakvo pojednostavljenje, vec je to obicni code-smell i ko god smatra da je ovo pojednostavljenje treba da pod hitno kupi knjigu Clean Code

Ako mislis da ovdje niko nema pojma, otidji na Code Review - Stack Exchange pa im postavi ovaj tvoj kod i ideju na review - mislim da bi bili jako odusevljeni :smiley:

Ja ti skidam kapu zbog toga sto te neko placa da se bavis ovim i izmisljas ove stvari.Ne znam sta si im rekao, i kako si im prodao ovo, ali svaka cast moj naklon do poda :slight_smile:

3 Likeova

Nisam ni rekao da sam izmislio sintaksu var x = y

Pogledao sam code koji si dao. Omašio si cijeli footbal sa njime. Nije tema o tome kako zadati defaultne parametre…a dao si samo to.
Zanimljivo je kada sam o tome pisao još tamo negdje davne 2014-te, kako se mogu elegantno zadavati defaultni parametri + opcionalni parametri, onda je @tpojka vrištao kako sam lud…kako opcionalni parametri nemaju mjesta u kvalitetnom programiranju.
Džabe su bili moji napori da mu ukažem da Google upravo radi to sa svakim svojim API-em gdje prima takav set parametara…džabe mi bio trud svirači.

A onda 2015-te to ECMA6 uvodi. :smiley: :D.
Naravno, nisam ni to izmislio…opcionalni parametri su tu praktički otkada je i programiranja. Ja sam samo tada pokazivao kako se to elegantno može izvesti u bilo kojem jeziku, neovisno od sintakse jel to jezik nativno omogućava ili ne.

Onda očito ne možeš koristiti niti nativni javascript …jer ako pogledaš kako se npr. zadaju flagovi u regularnim izrazima, zadaju se upravo kako tvrdim da je praktično:

Npr.
var regPattern = new RegExp("selector", "gi");

Znači “gi” ti je upravo flag_as_string :stuck_out_tongue:

  • g - stands for global selection
  • i - stands for incase sensitive selection
    Možda je vrijeme da promjeniš jezik, vidim da ni JS kod tebe ne prolazi :stuck_out_tongue:

Tebi ako je ljepši code da uvijek pišeš sve…pa idi u assembler, pa ispucaj dušu koliko ćeš morati toga finoga napisati. :slight_smile:

Više manje, dokumentaciju moramo znati za bilo koju funkciju. A zapamtiti da je “i” flag od “inner”, je isti klinac kao da si zapamtio i “inner”. Naravno da pamtiš cijeli smisao riječi, a flagovi su uvijek neko slovo koje je karakteristično toj riječi.Najčešće prvo slovo riječi. A to nije nauka znati. Tako da ako možeš zapamtiti ključ, možeš znati i koje je prvo slovo ključa. :slight_smile:

Ne moraš paziti na redosljed nikada kod flagova!
Ako bi baš imao dva ključa koja počinju istim slovom…ili bi se izbjegavalo odabrati tavke ključeve da počinju istim slovom, ili bi flag bio neko drugo karakteristično slovo ključa, ne mora biti nužno prvo.
A može biti i prva dva slova, pa da se flag zadaje npr. na sljedeći način: "[au]a"

Gdje se

  • “au” odnosi na jedno binarno stanje,
  • “a” odnosi na drugo binarno stanje

(Al ja osobno nebi flagove komplicirao sa više od jednog znaka.)

Reci to onda i ovoj ekipi iza ECMA da ne pomišljaju više na takve stvari. :smiley:

Ne prodaješ riječi, prodaješ djela. :wink:

Tako da im nisam ništa rekao što točno radim, vjerujem da nebi ni shvatili.
Oni samo vide kakav napredak donosim firmi i na osnovu toga su mi razrješili ruke da radim samo ono što ja smatram da je bitno raditi. Štoviše, po dogovoru više nemaju niti pravo me uključivati u client-projekte, nego sam samo prisutan da generalno unaprijeđujem radnu okolinu i da ih postavljam na “eksponencijalni graf” ubrzanja produktivnosti.
Pri tome sam postavio još uvjet da rješenja na kojima ću raditi, se neće ticati specijalno njihove radne okoline, nego ta rješenja moraju moći biti generalno lako reciklirana. Što znači da i moja firma od istih rješenja mora moći imati direktnu dobit.

Pri tome, to nije mala firma. Broji par milijona kuna dobiti svake godine.

A tvoj hejt spada u istu kategoriju onoga što sam napisao zašto ljudi teško mogu smisliti Rimca: Zasto Hrvati ne vole Rimca

Potpisujem.

Početnik, il’ čak neko ko se prvi put susreće s tematikom, da uradi apsolutno sve suprotno od svega što propagiraš, definitivno ima puno veće šanse da napiše nešto ispravno i da valja.

Vidi, ti se needukoavan i time se dičiš, nebrojeno puta si dao do znanja da izbjegavaš i preskačeš dokumentaciju. Industrijski standard i dobra praksa za tebe je špansko selo.
Ti si otprilike D. Bergam na steroidima (razlika je što on piše kako piše i ne smara svijet okolo).

2 Likeova

I još da nadodam. U mojoj vlastitoj firmi mi je satnica jedno 2-3 puta veća nego u toj vanjskoj firmi. A u toj vanjskoj firmi imam satnicu među najvišima. Samo neke starješine imaju veću od mene…jer ja sam tamo tek 2g.

Što onda uopće radim tamo?
Pa kad pogledaš, oni više trebaju mene…nego ja njih. Ako ćemo kalkulirati matematički, ja ih nit ne trebam.
Ali ja nisam nikada u ovom bio radi novca, pa neću nikada ni biti. Od prvog dana programiram radi ljubavi prema tome, a novac se pojavio samo kao nus produkt. Koji će svakako pomoći za naredne planove koje imam.

No osim te financijske kalkulacije, vjerujem da će moja rješenja lakše ugledati globalno svjetlo dana kroz tako veliku firmu…nego kroz moju, koja je u svojim počecima.
Al svakako ću se pobrinuti da se sazna da su ta riješenja originalno došla od firme TechnoAngels…a još originalnije od samih Anđela koji me vode. :slight_smile:

Moj put bi bio totalno nezanimljiv da nemam vas sa vašim opaskama…i da se nemam priliku ka tome osvrtati u prošlost.

Iste stvari ponavljate otkada nisam znao što je “Host” …kao i sada kada sam tu gdje jesam.
Kako je meni to cool. :slight_smile:

Ne govori li ti to nešto?

Najveća umjetnost i vještina je znati šta ne znaš.
Ti ne da se ne postavljaš na taj vektor već bježiš od njega k’o djavo od krsta.
U to ime još jednom:

Pročitaš li i ostale odgovore s teme još koji put nećeš si naškoditi.

Kako sam omasio cijeli fudbal kad si ti napisao sljedece:

Oko tih skracenica se ne zelim uopste zamarati, jer mi je ideja totalni nonsense.

Regex u JS-u ima 6 flagova, od kojih se 3 koriste maksimalno.Objekat moze imati dosta vise key-eva i samim tim tvoje skracenice mogu postatiti ono o cemu cijelo vrijeme pricam - tj. ono sto vec jesu.

Meni je najljepsi kod koji se jednostavno cita i ima smisla.Na zalost ipbm mi nema apsolutno nikakvog smisla.

To se inace scale-a odlicno :smiley: Nakon nekog vremena neces znati sta jedan flag znaci, a kamo li pet ali hajde :smiley:

LOL

LOL opet, izgradi ti novu sintaksu i ovdje :smiley: Na kraju ce Regex biti laksi od ovih tvoji zafrkancija.

Gdje to se to u ECMAScript specifikaciji moze naci ovo sto ti radis ? Mozda je bolje da se ti pridruzis TC39 i das im proposal da uvrste ovo savrseno rijesenje u ECMAScript :smiley:

Ja prema tebi nemam apsolutno nikakav hejt, cak si mi simpatican sa ovim idejama.
To sto se nekom ne svidjaju tvoja rijesenja ne znaci da je to bilo kakav hejt.Cak sam ti i argumentovao, a to sto si ti umislio da si popio svu pamet svijeta i neces da cujes kritiku to nije moj problem :slight_smile:

Ok, ovo postoji i koristi se (“Y-m-d H:i:s” npr.)
Druga stvar je što ga uopšte ne argumentuje tako.

Al’ ovo je zato za +1
Blaženi su svi koji ne moraju da ga slušaju i gledaju šta je napis’o.

I kad nabode nešto k’o ćorava koka (što se da budem iskren izuzetno rijetko dešava: sa ovim ukupno drugi put da pamtim na forumu), on uopšte nije svjestan da je nab’o. Loose cannon.

Jesi l’ im rek’o da za iste pare mogu uzeti nekog k’o ima pojma?

2 Likeova

A kako će se dvije osobe (od kojih je samo jedna nezna da nezna) …dogovoriti koja je to koja nezna da nezna?

Kada logično obje smatraju da upravo ona zna? Ali jedna očito griješi, te svaka misli za onu drugu da ta druga griješi. :slight_smile:

Za razrješiti taj problem očito treba neko objektivno opažanje, koje je dokaz tomu da netko radi “dobro” ili “loše”.
Također pod pretpostavkom da radi “dobro” ona osoba koja ne živi u neznanju.

Nadam se da iznošenje mojih postignuća niste shvatili kao pumpanje ega …nego vam upravo stavljam pod nos objektivne činjenice koje nastaju kada netko radi “dobro”. Tako da ja vjerujem za sebe da nisam onaj koji nezna da nezna. A vi ste dobivene dokaze i priliku da osvjestite svoje neznanje…vrlo olako “gurnuli pod stol.”
Malo sprdnje bacili na to i tjerate dalje po svom.
Ignorirate uočiti da sam samo unutar dvije godine nakon zaposlenja napravio poprilično lud odmak od toga kako bi u prosjeku to izgledalo.
Tim je luđe što mi je to prvo zaposlenje u životu u IT sektoru. …a nakon samo 2mj. rada mi je plaća narasla za skoro 100%…itd itd.

Ali ja sam taj koji nezna da nezna… :slight_smile:

Ne argumentiram tako jer ne radi se točno o istoj stvari. Ali ima zajednički presjek i to si dao fini primjer kako slova mogu biti praktičan input u nekim slučajevima.

Pogledaj naslov teme. “Flags as string” - jasna indikacija da težim tome da se binarna stanja mogu simpatično predstaviti jednim kratkim i praktičnim stringom.

A to što si me citirao…pa to sam naveo kao posljedični benefit što se dobije prilikom inicijalizacije jednog “flag as string” parametra.
Što je onda sasvim logično da ako je to benefit, da to ionako postoji u sintaksi…jer je to dobrodošlo i do toga se došlo ovim ili onim putem.

Al to neznači da je o tome tema…tema je o “flags as string”.

Mogao si tako negdje primjetiti bilo što sporedno pa zabrijati da je to fokus teme? I reć da je ta sporedna stvar već izmišljena. Zar ne?

Dao sam ti već primjer flagova u konstrukciji regexp izraza. Dao ti je tpojka sličan primjer koristenja karaktera kod formatiranja datuma. Iako je to tamo više specifična sintaksa za definiranje formata, nego predstavljanje binarnih stanja.

Dom bi flags as string spadali uvijek pod istu sintaksu, a sposobni bi bili modelirati neki objekt koji se sastoji od binarnih stanja.

Može li…može li…može li…non stop se ograničavaš unutar nepostojećih granica. Come on…go out of box…vani je svijet!
Pa tko te tjera da bi koristio “flags as string” na objektu koji ima 74 ključa.
Koristit će se tamo gdje može biti praktičan. Kao što su taj pristup odabrali kod regexp-a i točka. Tamo se paše i to je to.
Tamo gdje se neuklapa, tamo se neće koristiti.

Život je jednostavan. :slight_smile:

Ja sam s razlogom citirao odredjeni dio teksta i uz to dao ti objasnjenje zasto ja te parametre koje ti navodis necu nikada u zivotu koristiti.

Za mene totalno drugi use-caseovi.Regex prica za sebe.

Pa to samo govori da se tvoje rijesenje ne scale-a, tj. da moze raditi na max. 5 flagova poslije toga ne zna se ni ko pije ni ko placa :smiley: Koja je svrha toga, kad sa objektom koji ima 10 propertya ces morati pisati stvar kao i svi sto to rade ? Sta onda ovo tvoje rijesava ? Skracuje sintaksu na malim inputima, jako korisno :smiley:

Hvatas se konstantno za taj Regex, a ovdje se radi o totalno drugoj stvari.

Možda za tebe. Ja koliko vidim i u jednom i drugom slučaju string predstavlja true/false stanja nekih flagova. I to je ono što im je zajedničko.

Mogli su i regexp smisliti da se piše:
new RegExp("selector", {global:true, incase_sensitive:true});

Pa očito to nije svakome praktičnija sintaksa.

Ono što si vjerovatno propustio primjetiti kod flags as string inicijalizatora…on može progutati i flag as string i puni objekt …pa uvođenjem njega ostaje sloboda developeru hoće li koristiti shorthands ili tipkat sve.

A samo čitanje codea će ionako danas/sutra biti expandirano sa raznim pluginovima editora…itd.

Tako da “flags as string” nudi i “ovce i novce”. Kod pisanja brzinu, a kod interpretacije/čitanja codea potpunost.

Već druga sopstvena rečenica te je pokopala jer ti je pobjegla poenta:
I_know_own_knowledge_limits != I_assume_own_knowledge_amount
Ne radi se o tome šta smatraš da znaš već upravo o tome šta znaš da ne znaš. Za lakše razumijevanje i nastavak diskusije izuči pojam determinanta.

Izvlačiš pogrešne zaključke jer lupaš neprovjerene pretpostavke kako ti se ćefne.

Ti ne bi prepozn’o dokaz da te lupi po sred čela.
Za ovo godina na forumu nije se vidio niti jedan dokaz a kamoli smislen kod koji bi praćenjem potkrijepio makar jedan pasus napisanog.

Ti si svjestan da si tek juče il’ prekjuče čuo za pojam yaml il’ recimo da si ove il’ prošle godine sazn’o za github (koji i dalje uredno ne koristiš)? To je prosto u nivou FB domaćice.

Ono što sam napis’o je bilo više @belmin -u upućeno.
Složićemo se da su ljudi ipak utiska da se nije problem povesti za nomenklaturom na kojoj je radio, uzevši u obzir kompletnu dotadašnju praksu i standard, konzorcijum a da je već sasvim diskutabilno (da ne kažem degutantno) uobziriti nešto što je trebalo da ostane neizrečeno lupetanje.

Nedostaje ti tol’ko znanja da ti se sav rad svodi na miješanje domain i implementation problema/rješenja. 3ajebano.

Za jedno dvije godine kad otkriješ upotrebnu vrijednost type hinting vs. type casting vs. type juggling vs. return type uz strict deklaraciju, tek tad smo najebali od friških ideja sa smjehotresnim inputima i outputima funkcija.

I ništa se time iz mog primjera nije promjenilo…samo se čini da poanta primjera ne dopire do tebe.
Neću se ni trudit…ako nije dosad ništa doprlo do tebe, teško da će ikad.

To je zato što ne znaš šta ne znaš. Kako ne kapiraš?
Ja ne znam ko je ovde propustio logiku u školi.

Svi neznamo da nešto neznamo. Neko više neko manje. Ja sam sa posljedicama svog (ne)znanja super zadovoljan. :wink: