Component develop tricky problem (JS)

Ovo je OK primjedba. Padne mi često na pamet…ipak osjećam da je nešto drugačije, inače nebi bio motiviran.

Mislim da je razlika u tome što ovaj pristup povezuje sve paralelne grane…a ne radi novu. Isprika, ako je neka od tih tehnologija isto to…da radi na povezivanju, a da ja s time nisam upoznat.

Ja primjećujem da su sve te tehnologije nastale unutar neke korporacije…tipa react je FB proizvod, angular googloevo…itd.

Stoga, očito je da niti njima nije bilo dobro trenutno stanje i da su tražili načine rješavanja problema. …vjerovatno im nije bio prioritet ta rješenja nametati drugima, nego su tek našli način da se sinkroniziraju u radu unutar svoje korporacije…

Isto tako i ja…meni je već ok što ću sebi olakšati rad…i zato ću ići tim putem.
No činjenica je da bi mi se dodatno olakšao rad kada bi i drugi upali u moj ekosistem, jer bi dobivao gro toga za badava.

No pozitivan fact za mene je da mogu doslovice na svojim leđima iznesti breme normJS-a …a to je da krenem od tuda da kreiram apstrakcije koje spominjem. Zatim ću uzimati tuđe komponente i warpati ih samo u klase koje će poštivati moje apstraktne klase…a koje će ispod haube pozivati nativne metode klasa koje ću uzimati.
Tako ću dobiti modularnost unutar svog sistema sa komponentama koje inicijalno nisu pravljene po normJS standardu.

Ako to dovedem na neku razinu, netko drugi će moći lako modularno koristiti te komponente koje sam ja warpao u normJS. I tu lagano onda možda krene priča u nekom smjeru šire prihvaćenosti. No to su snovi…ne očekujem da će se na toj razini realizirati od moje početne točke…no definitivno znam kako ću krenuti zbog vlastite potrebe.

…isto tako, definitivno sam uvjeren da je ovo ispravan put i da će se samnom ili bez mene prije ili kasnije iskristalizirati.
Štoviše, ovakav pristup se već iskristalizirao u mnogim segmentima… i ne tražim ja neku potvrdu, jer je već imam. Samo mi je čudno kako drugi ne vide što je potrebno zajednici… ali velim, vidjet će prije ili kasnije … neizbježno je.

Obični DIV i SPAN su primjeri da je potrebna neka standarizacija attributa nekog elementa koji spada u neki type. U ovom slučaju HTML_element je taj type.

Typescript vam je primjer koliko su tipovi varijabli bitni…i to je microsoft jako dobro prepoznao, zato i gura tu politiku sa nužnim definiranjem tipova varijabli. (Nisam siguran da to dobro govorim za typescript, ali generalno to vrijedi za typed jezike, što je recimo C# koji mi je to otkrio)

Sve u prirodi spada pod neki type…čak i ova dva sljedeća stringa
string 1: "[email protected]"
string 2: “098/555-215”
…oboje spadaju pod string, ali se razlikuju po tome što jedan spada pod string-email, dok drugi spada pod string-phone number. I to ih već čini poprilično različitim stringovima nad kojima bi se mogle izvući različite metode.
…dok sve metode koje su zajedničke nad tipom string, će vrijediti za ta oba stringa.

Isto se dešava sa komponentama…mora se shvatiti koji tipovi komponenata postoje i koje metode im pripadaju. To je definitivno konačan skup u svakom momentu t. bez obzira što se već u momentu t2 skup komponetni/metoda proširio…tj. evoluirao.

Isto tako, na broj komponenti/metoda ne utječu razlike u nazivima istih…niti u načinima implementacije istih. To je stoga ono što je potrebno uskladiti radi bolje sienergije.

Sorry da prostiš, ali ovo ti niš nema smisla. Ovo su ti na dječjoj razini zaključci.
Tržišnu stvar je odavno rješio zakon ponude-potražnje…koji je u svojoj naravi poptpun prirodan i ne nametnut od nikoga, sem samog svemira.

Ako imaš potražnju imaš i neku vrijednost. Ako imaš jaku konkurenciju…pada ti potražnja, time i vrijednost.
Svatko tu unutar svoje kože pronalazi vlastite razloge hoće li nešto dati za džabe…ili će pokušati naplatiti ili koji su već njegovi motivi…i taktike.

Ovo je također druga tema, ekonomske naravi… a kako si ju startao…zaista je nebi nastavio.

@bozoou

Sve ok.

Samo si naivan, ako mislis da bi sve moglo biti idealno u svijetu.

Imas dobro razmisljanje i zelje su jedno,a stvarnost drugo.

Da je to nekome u interesu, onda bi se to i napravilo,kao sto konzorcij za w3 broji stotine clanova, a clanovi su redom sve velike firme koje imaju interesa u tome. Sve se vrti oko love i dok god je tako, ako u necemu nema koristi nema promjena. Vrlo jednostavno.

FYI komponente su nativno podrzane u nekim Browserima, tj. radi se na tome

Baci pogled i na Stencil.

1 Like

Problem je što su promjene konstantno tu. Nije da ih nema :slight_smile:
Sama pojavka typescript jezika kao layer nad javascriptom pokazuje tedenciju promjena.
To je drugo što netko vidi promjene prije nego se u potpunosti manifestiraju…a netko ih tek uoči nakon nekog vremena nakon što se manifestiraju.

Tako recimo imaš osobu koja je u potpunosti opisala bitcoin još tamo 1999:


…a netko dan i danas ne zna što je BTC.

Nećemo skretati na btc nadam se…poanta je samo malo u vizionarstvu…i ti nemaš baš nikakve osnove da kažeš da se promjene ne dešavaju.
Samo moje tipkanje na ovoj temi je dio tih promjena koje se dešavaju. Misliš da sam jedini na svijetu koji razmišlja o ovim stvarima? Da sam baš ja samo taj koji je imao tu čast prepoznati ove ideje koje svemir emitira?

Velim ja…ovo što govorim manifestirat će se 100% … tj već se manifestiralo, ako pogledaš sukladnost DIV-a i SPAN-a. Samo je pitanje na koji način će dalje prodjeti da se porikta sve što je nastalo iz toga DIV-a i SPAN-a.

I što se tiče naivnosti…svjestan sam ja još jedne stvari. Sav napretak koji se dešava na svijetu…nose zaslugu i oni koji su pokušali u tom segmentu i nisu uspjeli isto kao oni koji su pokušali i uspjeli. Jednostavno, napredak se ne može ostvarivati tako da imaš masu ljudi koji 100% uspijevaju u nečemu. Upravo je potrebna neka masa koja će pokušati…da bi ona tvorila taj dio mase koja će uspjeti. Znači napretak je pogonjen cijelom masom…pa čak i onima koji ne vjeruju da se promjene dešavaju. (Oni su dio inertnosti sustava, koji je također potreban dio)
Stoga…nemam ja nikakvog problema sa naivnošću…dapače, podosta sam svjestan sebe i svojih ograničenja…i koja svrha u konačnici iza toga leži. Peace :wink:

Bacit ću pogled što je to, fala :wink:

@bozoou

Ja ne primjećujem suštinsku razliku izmedju toga što ti nudiš(?) i npm packages načina.
Treba mi paket - uzmem ga. Ne svidja mi se - deinstališem i uzmem drugi.
Koji tačno vidiš problem u ovakvom pristupu?

Kako ne vidiš?

…pa kako je tim pristupom riješen problem Pere iz uvodnog posta?

…kako bi tim pristupom riješio problem da napraviš CRUD komponentu koja se lako umetne u bilo koju okolinu?
…kako bi tim pristupom napravio recimo komponentu “Forum” koja će se savršeno uklopiti u neki widget unutar neke postojeće stranice …a da je plug and play i da ga upogone postojeće komonente na toj stranici?
Tako da taj forum dodatno ne otežava load stranice sa nikakvim svojim HTML pratećim elementima…osim što donosi code koji je potreban da se opiše funkcionalnost foruma,
no ne i UI komponenti od koje je složen forum. Pod pretpotavkom da sve te komponente već postoje na stranici gdje ugrađuješ forum…a gotovo da postoje na svakoj stranci.
Evo, pogledaj ovaj forum i upri u komponentu koja ne postoji na nekoj prosječnoj stranici? Nema takve…tj. jedino ovaj “pametni slider” desno od postova s kojim se može brzo doći do postova koji će se asinkrono učitati.

I u tome je čarolija, u različitim “tijelima” bi ovaj forum zaživio bez problema…kvalitetnije tijelo bi ga kvalitetnije manifestiralo…no suštinska funkcionalnost bi uvijek ovisila o samoj komponenti “FORUM”, a kvaliteta UI-a bi ovisila od kvalitete komponenti koje već čine UI na stranici i koje bi manifestirale forum.
No čarolija je upravo u tome…što bi taj forum onda konstantno prolazio svoju evoluciju, kako bi evoluirale komponente koje ga manifestiraju.

Znači…gotovo je teško staviti u istu rečenicu ovo sa dosadašnjim NPM načiniom rada. NPM je jedino ušao u sferu da ti poinstalira cijeli dependency za neku komponentu…i to je super. Ovo dalje je samo layer koji bi se gradio nad time, ne kontra toga.

Nije modularno po principu plug and play.
…i onda zbog težine usklađivanja postoji limit kompleksnosti komponenti koji se (u razumnom roku) može doseći.

[korisnik dmitrecic i dalje razmišlja o problemu za koji bi ovo rješenje bilo primjenjivo i smisleno]
:smiley:

[korisnik Tpojka se i dalje drži principa]

4 Likeova

Upravo to. Ako radi - ne diraj. I - ne smišljaj rješenje za problem kojeg nema (ovo obično žene/supruge rade) :smiley:

Ja sam naprosto oduševljen kako ne vidite problem :smiley: tj. koji potencijal se skriva iza onoga što se može unaprijediti.

U principu ideja bozooua nije losa. Samo je on u k.urcu s objasnjavanjem i zagonetkama :stuck_out_tongue:.
Ovak sam ja to skuzio… Npr. pimjer iz realnog svijeta:

Ides dati reklamu na jutarnji.hr. Jutarnji ima svoju implementaciju modala ( pop up-a). Umjesto da dajes njima samo dio koji ide u popup, te ga onda oni moraju sami implementirati unutar svog modala, ti im posaljem js kod koji poziva npr.
modal.open(tvojHTML);
Automatski se otvori modal od jutarnjeg. Istu stvar onda mozes poslat i vecernjem i nitko nista ne treba implementirati.

Ovo sto je belmin rekao je na pragu toga. Kolko kuzim ti tamo definiras template-e te ih onda mozes programatski pozivati. Ali treba jos to malo proucit.

S obzirom na trenutno stanje web-a, nacine na koji se danas rade stranice i tona raznih “best practice”-a, mislim da je ovako nesto implementirati jako tesko. Problemu treba pristupiti vrlo oprezno da se ne bi desilo da sam sebe zatvoris u nekakvo predifinirano stanje.

1 Like

Vjerujem da sam u k.urcu, najteže je kod sebe kontrolirati što se izgubi u prijevodu rečenog…kada se u mojoj glavi ništa ne izgubi dok pričam, hehe.

Tako je…to je konačna dobit, implementacija se svodi doslovice na “pomisliti”. Što će tek jednog dana doći doizražaja kada propričamo sa računalima.
Sigurno neću reći računalu: “Daj mi ubaci XY komponentu” …a da me on onda tlači sa glupim pitanjima: “A kak buš to povezao s dropdownovima…a kako ovo? …a kako ono?”
Rekao bi mu: “Hebote, jel ti treba nacrtati ili koji problem imaš?”
A to je otprilike današnji pristup, gotovo do u pixel moramo “nacrtati” ono što kreiramo.

Tako da nema smisla da se vozamo oko razno razne implementacije koja treba doći sama po sebi. Jer se zna što se treba desiti….neka se onda i samo od sebe desi.
Jedino što treba implementirati / konfigurirati …jeste ono što komponenta namjerno daje developeru na volju da se kustomizira po želji.

Direktna dobit iza toga je ta, da ako se jednostavne stvari ugrađuju na “pomisliti” …kakve će se onda tek stvari moći implementirati uz malo truda? Nebo je granica… …današnje komponente nisu “k” od toga!

Tako da, za one koji ne vide problem…možemo se složiti i da nema trenutno problema. Ali onda treba biti svjestan da uvođenjem ovako nečega moguće oslobađamo neviđen potencijal.
Opet ću se osvrnuti na WP …koliko god to bili loši ili dobri temelji…ti temelji su otključali enorman potencijal i nastalo je to da danas imamo preko xx% stranica napravljenih u WP-u. Koliko god on bio loš…dominira.
Slično tako, nesvjesni smo što bi mogla napraviti sienergija zajednice developera…kada bi se njihov rad počeo usložavati po dobro definiranom konceptu.

I opet mi nije baš jasno, pa zar to ne možeš raditi s embedded kodom, ili u krajnjem slučaju s iframeom?
Embedded code možeš o stilizirati u skladu s svojim siteom
Zato mi i nije jasan cijeli koncept kojeg bozoou želi dočarati.
Pokušavam shvatiti primjerice te komponente koje bi trebalo biti jednostavno koristiti, ali ispada daleko kompliciranije nego s postojećim. Neki frameworci imaju to riješeno da je jednostavnije za korištenje (kako je izjavio gore za CRUD), ali ni to nije valjda dovoljno jer bi trebalo postaviti i input boxove (ovisno o permissionima usera) ali tako da se ne generiraju html input tagovi (ovo mi nikak nije jasno :slight_smile: ). Međutim, uzmimo u obzir da je sve tak i da smo se razumjeli, međutim kako ćeš tada označiti u komponenti da primjerice select mora biti multiselect? Dakle, u komponenti bih morao definirati “hrpu” propertya, pa je pitanje što mi je bolje i brže, i nad čime imam veću kontrolu?
Ja ne kažem da bozoou možda i misli na super stvar, ali ja fakat se trudim cijeli dan (u prikrajku mozga) shvatiti o čemu se zapravo radi jer je predstavljeno kao fantastičan pristup (ponavljam možda i jest, ali ja za sad ne vidim ništa što već nije prisutno).
Ok, dajem za pravo da baš i nisam najbistriji :smiley:
(al trudim se, slobode mi!)

ma kuzis, ti zapravo pozivas nekakav interface. Tj. imas predefinirane stvari poput modala, selecta, inputa, buttona, itd. Svi imaju isti interface.
Onda programer mora samo sljediti metode iz interface-a da pozove odredjenu komponentu.
Ovim izbjegavas da embeded kod izgleda drugacije od tvoga i nemoras prilikom implementacije library-a passat svoj still u njega…

Mislim, to je sustina OOP-a. Imas interface za objekt. Svaki programer zna kako pozvati construktor tog objekta. Ako napravis nekakav library, definiras interface za njega i onda mozes swap-at classe koje su implementirali taj interface bez da ti se raspadne program i bez da radis neke druge promjene.

1 Like

Nebi te htio uvrijediti, jer dapače cijenim sve što sam pročitao od tebe na ovom forumu.

…ali mi se nekako učinilo da nisi najupoznatiji sa frontendom. Imao si negdje izjavu da smatraš pravim poslom backend, a da je frontend tu tek tako…čisto za klince da imaju što raditi i praviti se da programiraju. Imao si nekakvu takvu sličnu izjavu…teško mi se točno sjetiti.

Tada mi se učinilo da si malkoc puno podcijenio frontend. Iz toga mi se sada čini da nerazumjevanje problematike dolazi iz istog prikrajka podcjenjivanja.

No, kako ovdje ima više programera…i većinom sam ostao neshvaćen, morat ću uvažiti kolegu @krcmar da sam u k.urcu sa objašnjavanjem :smiley:

Morat će te mi stoga vjerovati, da je u mojoj glavi sve tako kristalno jasno. A taj osjećaj kada sam u nešto siguran, gotovo me nikada ne izdaje u životu. :stuck_out_tongue:

Nije da i dalje nemam volju pojašnjavati…samo se već vrtimo u krug, hehe.

:smiley:
Ne, ne, pogrešno si protumačio taj post.
Rekao sam da si zamišljam kako su backendaši kao mehaničari sa masnim rukama do lakta, a frontendaši gospoda u odijelima, ne da je frontend za djecu :slight_smile:
Nije tu bilo ikakvog podcjenjivanja, već usporedba sa proizvodnjom automobila - backend radi ono što je ispod auta, frontend ono što vozač vidi i opipa. Na to sam mislio :slight_smile:

@dmitrecic

Također bi rekao da iza ovoga stoji tendencija da se poštuje jedan jako bitan princip. Već sam ga spominjao više puta, a to je DRY (Dont repeat yourself)

O čemu se radi, kada koristimo neku komponentu, onda smo prisiljeni tipkati:

  • HTML content koji predstavlja vizualno tijelo te komponente
  • nazive njenih metoda

E sad, rekli smo da nas DRY princip uvjetuje da se nikada ne ponavljamo.
No zaključili smo da se neke stvari moraju ponavljati. Recimo sintaksa programskog koda: “if, else, for ...” …se jednostavno mora ponavljati.

No da bi rješili taj problem što se sintaksa ponavlja, onda je standariziramo…nećemo je mijenjati od danas do sutra…od browsera do browsera…itd.

Imao si onu situaciju sa mysql_escpae ili koje već…pa si se tek osigurao za duge straze kada si tu metodu warpao unutar svoje metode. Time si upravo napravio to da si standarizirao ime s kojim ćeš pozivati tu metodu. I sasvim ti je svejedno koji ćeš code danas-sutra morati staviti unutar te svoje metode, dok god će taj code obavljati posao…tvoj program se neće srušiti. Jer će uvijek znati pozvati tu metodu po imenu koji si ti standarizirao (za sebe)

E sad, koju sintaksu moramo ponavljati kod komponenti koje se pojavljuju na web stranicama, gore sam već napisao, to su:

  • HTML content koji definira komponentu
  • nazive metoda komponente

E sada, pošto ne možemo izbjeći DRY, da ne ponavljamo tu sintaksu…onda u najmanju ruku možemo napraviti da tu sintaksu standariziramo!
Jer time postižemo upravo ono što si postigao sa warpanjem mysql_escpae metode…a to je:

  • da sutra izbaciš jednu komponentu i staviš drugu (istog tipa, ali napredniju) na njeno mjesto…ništa neće puknuti
  • omogućava ti da napraviš neku svoju komponentu koja surađuje sa drugim komponentama (iako te druge komponente nikada nisi vidio …ali prema standardu znaš kako ćeš surađivati sa njima …znaš koje metode možeš pozivati…itd.)
  • stvar time postaje modularna, jer tvoj kod neće puknuti unutar drugog code-a koji je poštivao isti standard. Znači moduli se mogu povezivati bez ikakvog napora kod implementacije. Plug and play.

Jesam li mrvicu možda bio jasniji iz ovog smjera? heh…