Programiranje

To je svojevrsno priznanje da interpreter JIT, nije bas najbolje resenje kada su u pitanju performanse :P
Naravno, dinamicki featuri i prednost JIT-a, pada u vodu, zarad performansi :P

Kad se malo razmisli, mikroservis arhitektura je uzrokovala povracaj native koda.
Sam koncept podele funkcionalnosti na male, (relativno) nezavisne servise, morao je da dovede do zahteva za performansama tih servisa, a to do vracanja na pocetak :)

Zanimljivo :)
 
Kad se malo razmisli, mikroservis arhitektura je uzrokovala povracaj native koda.
Sam koncept podele funkcionalnosti na male, (relativno) nezavisne servise, morao je da dovede do zahteva za performansama tih servisa, a to do vracanja na pocetak :)

Zanimljivo :)
moguce da je to jedan deo price. Verovatno da je drugi deo price razni mali uredjaji koji nemaju citav OS nad glavom sa raznim vm masinama, mozda i malo memorije itd. Embedded - razni kontroleri, IOT, takve stvari. Egzoticni procesori.
Recimo ovaj linux Alpine. Iako je smanjen do besvesti i sve je u njemu binarno ipak zauzima relativno dosta resursa. Po toj liniji native je takodje pozeljan jer je manji. Ima dosta toga sto i ne moze da trci neki timeshare/multitasking modernih OS. Upload 1 binarni program i to je to.
 
moguce da je to jedan deo price. Verovatno da je drugi deo price razni mali uredjaji koji nemaju citav OS nad glavom sa raznim vm masinama, mozda i malo memorije itd. Embedded - razni kontroleri, IOT, takve stvari. Egzoticni procesori.
Recimo ovaj linux Alpine. Iako je smanjen do besvesti i sve je u njemu binarno ipak zauzima relativno dosta resursa. Po toj liniji native je takodje pozeljan jer je manji. Ima dosta toga sto i ne moze da trci neki timeshare/multitasking modernih OS. Upload 1 binarni program i to je to.
Na embedded tesko da ce ici bilo sta sem C-a...
 
JavaScript:
const Computer = function (name, brand, model, ean) {
  this.name = name;
  this.brand = brand;
  this.model = model;
  this.ean = ean;
};

Computer.prototype.display = function () {
  const item = document.querySelector("main");
  const card = document.createElement("ul");
  const name = document.createElement("li");
  const brand = document.createElement("li");
  const model = document.createElement("li");
  const ean = document.createElement("li");

  name.innerHTML = this.name;
  brand.innerHTML = this.brand;
  model.innerHTML = this.model;
  ean.innerHTML = this.ean;

  card.appendChild(name);
  card.appendChild(model);
  card.appendChild(brand);
  card.appendChild(ean);
  item.appendChild(card);
  card.classList.add("list2");
};

Computer.prototype.addClass = function () {
  const item = document.querySelector(".list2");
  for(let i = 0; i < 4; i++){
      item.children[i].classList.add("list-item")
  }
  
};

const Laptop = function (name, brand, model, ean, processor, ram, hdd, gpu) {
  Computer.call(this, name, brand, model, ean);
  this.processor = processor;
  this.ram = ram;
  this.hdd = hdd;
  this.gpu = gpu;
};

const Desktop = function (name, brand, model, ean, processor, ram, hdd, gpu) {
  Computer.call(this, name, brand, model, ean);
  this.processor = processor;
  this.ram = ram;
  this.hdd = hdd;
  this.gpu = gpu;
};


Desktop.prototype = Object.create(Computer.prototype);
Laptop.prototype = Object.create(Computer.prototype);

const altos = new Desktop("Altos", "Gigatron", "Fighter", 46587921);
const pavilion = new Laptop("Pavilion ", "Hewlet Packard", "E345-32", 59874252);

altos.display();
pavilion.display();
altos.addClass()
pavilion.addClass()

Malko eksperimentisem sa OOP programiranjem u JS, sad imam problem jer mi se na pavilon objektu uopste ne pojavljuje klasa .list i na li elementima "list-item". U cemu je stos. kontamd a je negde problem u ovim prototipovima, nisam bas shvatio gde se to deklarise u kodu.
 
Prvo zavrsi neki fakultet, ne mozes ni na jednom kursu da postanes dobar programer. Niko nebi studirao da moze za 3-5 meseci da postane programer. Ja imam 65 god programirao sam pocev od asemblera, fortrana, cobola do clipera. Daleke 1992 radio sam sa IBM bazom pa sa ICL bazom. Kasnije sam presao na MySQL i c#. Pa i sada vidim da nisam odlican programer. Treba puno, puno rada.
 
Ne razumem, sta hoces da postignes? Sta je zadatak? Sta zelis da izprogramiras?
Zadatak za koji sam se pripremao je da se kreira putem OOP klasa, konstruktor i niz gde ce da se skladiste objekti koji posle trebaju da se prikazu na nekoj veb stranici.
Sad sam ja to malo eksperimentisao sa ovim jer OOP moze na tri nacina da se radi u JS-u, onaj sa ES6 nacinom sam uspeo da resim i da napravim taj app, ali ovo mi je sinulo kao ideja da provezbam prototypal inheritance i subklase kad sam pretrazivao Gigatronov sajt. Sve tutorijale koje ti daju daju ti neki apstraktan primer tipa klasa auto ili ucenik, trebala mi je neka real world stvar i palo mi je to na pamet kao klasa Komjuter iz koje imas subclass Desktop ili Laptop npr.
Mene nervira zasto mi ne rade metodi iz klase Computer na objektu koji je kreiran iz klase Laptop, a isti metodi iz klase Dekstop rade.
 
Prvo zavrsi neki fakultet, ne mozes ni na jednom kursu da postanes dobar programer. Niko nebi studirao da moze za 3-5 meseci da postane programer. Ja imam 65 god programirao sam pocev od asemblera, fortrana, cobola do clipera. Daleke 1992 radio sam sa IBM bazom pa sa ICL bazom. Kasnije sam presao na MySQL i c#. Pa i sada vidim da nisam odlican programer. Treba puno, puno rada.
Ma najbolje 16 fakulteta da zavrsim. Vec imam jedan drzavni fakultet i 31 godinu, msm da je meni skole sasvim dosta.
Zelim da pravim stvari, ne da teoretisem, omatorio sam ja za to.
 
Zadatak za koji sam se pripremao je da se kreira putem OOP klasa, konstruktor i niz gde ce da se skladiste objekti koji posle trebaju da se prikazu na nekoj veb stranici.
Sad sam ja to malo eksperimentisao sa ovim jer OOP moze na tri nacina da se radi u JS-u, onaj sa ES6 nacinom sam uspeo da resim i da napravim taj app, ali ovo mi je sinulo kao ideja da provezbam prototypal inheritance i subklase kad sam pretrazivao Gigatronov sajt. Sve tutorijale koje ti daju daju ti neki apstraktan primer tipa klasa auto ili ucenik, trebala mi je neka real world stvar i palo mi je to na pamet kao klasa Komjuter iz koje imas subclass Desktop ili Laptop npr.
Mene nervira zasto mi ne rade metodi iz klase Computer na objektu koji je kreiran iz klase Laptop, a isti metodi iz klase Dekstop rade.
Rekao bih zato shto prvo definishesh desktop, pa onda laptop... koristish neshto globalno?
 
Rekao bih zato shto prvo definishesh desktop, pa onda laptop... koristish neshto globalno?
Moracu da sacekam do sutra to sam kuckao na poslu. :D Ovo mi radi. :)

JavaScript:
let arr = new Array();
class Book {
  constructor(id, title, writter) {
    this.id = id;
    this.title = title;
    this.writter = writter;
    arr.push(this);
  }

  show() {
    const container = document.querySelector(".container");
    const ul = document.createElement("ul");
    let idF = document.createElement("li");
    let titleF = document.createElement("li");
    let writterF = document.createElement("li");
    idF.innerHTML = this.id;
    titleF.innerHTML = this.title;
    writterF.innerHTML = this.writter;
    ul.appendChild(idF);
    ul.appendChild(titleF);
    ul.appendChild(writterF);
    container.appendChild(ul);
  }
}

let form = document.querySelector("form");
form.addEventListener("submit", () => {
  let id = document.getElementById("id").value;
  let title = document.getElementById("title").value;
  let writter = document.getElementById("writter").value;

  new Book(id, title, writter);
  form.reset();
  console.log(arr);
  let ul = document.querySelectorAll("ul");
  ul.forEach((ul) => {
    ul.remove();
  });
  for (let i of arr) {
    i.show();
  }
});
 
Moracu da sacekam do sutra to sam kuckao na poslu. :D Ovo mi radi. :)

JavaScript:
let arr = new Array();
class Book {
  constructor(id, title, writter) {
    this.id = id;
    this.title = title;
    this.writter = writter;
    arr.push(this);
  }

  show() {
    const container = document.querySelector(".container");
    const ul = document.createElement("ul");
    let idF = document.createElement("li");
    let titleF = document.createElement("li");
    let writterF = document.createElement("li");
    idF.innerHTML = this.id;
    titleF.innerHTML = this.title;
    writterF.innerHTML = this.writter;
    ul.appendChild(idF);
    ul.appendChild(titleF);
    ul.appendChild(writterF);
    container.appendChild(ul);
  }
}

let form = document.querySelector("form");
form.addEventListener("submit", () => {
  let id = document.getElementById("id").value;
  let title = document.getElementById("title").value;
  let writter = document.getElementById("writter").value;

  new Book(id, title, writter);
  form.reset();
  console.log(arr);
  let ul = document.querySelectorAll("ul");
  ul.forEach((ul) => {
    ul.remove();
  });
  for (let i of arr) {
    i.show();
  }
});

zar nije
nesto = new Book(id, title, writter);
?
 
To je kad zelis da kreiras novi objekat i da ga skladistis u varijablu da bi posle primenjivao metode nad tom varijablom koja je objekat. Kako da docaram... da bi radio nesto sa tom varijablom, ali ovde u kodu ima event listener koji kupi polja iz forme i kreira novi objekat koji se gore na vrhu u konstruktor funkciji skladisti u niz ... nema potrebe da se skladisti u varijablu. Niz tada izgleda ovako:

[{ id:123456,
title:Hobbit,
writter:Tolkien},

{ id:698456,
title:LOTR,
writter:Tolkien},
...
{... } ]

Na kraju lupujem kroz niz arr i ovim "bezimenim" objektima dodeljujem show() metod.

Objekti ne moraju da se kreiraju samo na ovaj nacin:

const lotr = new Book(123456, "Lord of the rings", "Tolkien");
lotr.show();
const hobbit = new Book(789546, "The Hobbit", "Tolkien");
hobbit.show();

vec moze i samo ovako

new Book(789546, "The Hobbit", "Tolkien");
new Book(123456, "Lord of the rings", "Tolkien");

samo negde moras da ga skladistis u neki niz ili objekat. U slicnom formatu ti je JSON, sa tim ces raditi puno, to je isto kao objekat tako da moras navezbati dobro nizove u nizovima, nizove u objektiva i objekte u nizovima ili niz u objektu u nizu. Sto kompleksnije to bolje. :D Evo kako JSON izgleda.

create-schema-array.png
 
JSON ti je slicno sto i objekat, samo su i kljucevi i vrednosti pod " ", a u objektu su samo stringovi pod " ". Ovo naravno nije tacno sto sam rekao 100%, ali je oversimplified verzija da kao pocetnik lakse upamtis razliku. U JSON isto ne mogu da se koriste funkcije i JSON ima samo dve metode Stringify i Parse, ali je jako bitno ako hoces da vuces podatke sa drugih sajtova i api-ja koji dolaze u tom formatu.
Nadam se da nisam previse udavio. :D
 
To je kad zelis da kreiras novi objekat i da ga skladistis u varijablu da bi posle primenjivao metode nad tom varijablom koja je objekat. Kako da docaram... da bi radio nesto sa tom varijablom, ali ovde u kodu ima event listener koji kupi polja iz forme i kreira novi objekat koji se gore na vrhu u konstruktor funkciji skladisti u niz ... nema potrebe da se skladisti u varijablu. Niz tada izgleda ovako:

[{ id:123456,
title:Hobbit,
writter:Tolkien},

{ id:698456,
title:LOTR,
writter:Tolkien},
...
{... } ]

Na kraju lupujem kroz niz arr i ovim "bezimenim" objektima dodeljujem show() metod.

Objekti ne moraju da se kreiraju samo na ovaj nacin:

const lotr = new Book(123456, "Lord of the rings", "Tolkien");
lotr.show();
const hobbit = new Book(789546, "The Hobbit", "Tolkien");
hobbit.show();

vec moze i samo ovako

new Book(789546, "The Hobbit", "Tolkien");
new Book(123456, "Lord of the rings", "Tolkien");

samo negde moras da ga skladistis u neki niz ili objekat. U slicnom formatu ti je JSON, sa tim ces raditi puno, to je isto kao objekat tako da moras navezbati dobro nizove u nizovima, nizove u objektiva i objekte u nizovima ili niz u objektu u nizu. Sto kompleksnije to bolje. :D Evo kako JSON izgleda.

Pogledajte prilog 1292948
nisam primetio ovo 'ovde':

let arr = new Array(); class Book { constructor(id, title, writter) { this.id = id; this.title = title; this.writter = writter; arr.push(this); /// <---- **** ovde } ...
Esencijalno ako dobro shvatam u toku izvrsavanja konstruktora za spolljno nereferencirani objekat isti se automatski dodaje na kraj niza.

Interesatno mi je da u trenutku izvrsenja konstruktora za objekt (instanciranja), taj objekat vec postoji. Ali, to je verovatno zbog interpretativne prirode javascripta.

Obicno je pattern

1. instantiate object
2. when outer reference available bind it

Ja bih izbegavao ovakav kod, jer ga smatram tesko citljivim t.j. neociglednim za odrzavanje ali razumem, da ima i takvih stilova. Pitanje je kako bi moglo drugacije - da bude jasno na prvo citanje?

ovo vise dodje kao IMHO
 
Objekti ne moraju da se kreiraju samo na ovaj nacin:

const lotr = new Book(123456, "Lord of the rings", "Tolkien");
lotr.show();
const hobbit = new Book(789546, "The Hobbit", "Tolkien");
hobbit.show();

vec moze i samo ovako

new Book(789546, "The Hobbit", "Tolkien");
new Book(123456, "Lord of the rings", "Tolkien");

Shvatam da je uobicajeni JS pattern:
const lotr = new Book(....
Pretpostavka za ovaj patern je da se instanca stavlja kao const da bi se zastitio objekt od moguce promene
medjutajm, osim ta dva nacina koji si naveo isto je moguce deklarisati instancu


let book = new Book(789546, "The Hobbit", "Tolkien"); arr.push(book);

kako procitas kod, jasno ti je:

book variabila je short lived (unistava se automatski)
pushujes kreirani objekt na kraj niza

plus mozes jos nesto da uradis sa objektom ako treba (na primer neko izracunavanje)
 
1. instantiate object
2. when outer reference available bind it

Ja bih izbegavao ovakav kod, jer ga smatram tesko citljivim t.j. neociglednim za odrzavanje ali razumem, da ima i takvih stilova. Pitanje je kako bi moglo drugacije - da bude jasno na prvo citanje?

ovo vise dodje kao IMHO
Slab sam sa funkcionalnim programiranjem, call, bind i apply mi nisu jaca strana. :D
Resavam i koding zadatke na codewars, vidim da ima raznih stilova i logika u pisanju koda, kontam da u pocetku moze i da se ovako radi dok jos ne znas bolje nacine rada, a da bolji kod dolazi sa vremenom i iskustvom. Svako ima neku svoju logiku resavanja problema.
Ja kompleksni zadatak podelim na sitne delove, resavam jedan po jedan zahtev i onda ih integrisem.
 
Interesatno mi je da u trenutku izvrsenja konstruktora za objekt (instanciranja), taj objekat vec postoji. Ali, to je verovatno zbog interpretativne prirode javascripta.
Isto je to svuda, pod uslovom da se objekt ne koristi dok traje konstrukcija... this je pointer na objekt, bilo da je konstriuisan ili nije...
Bar je tako u C++...
E sad dodavanje na globalni niz u konstruktoru, podrazumeva da ima destruktor koji ga brise iz istog niza... no kako JS nema destruktor,
bilo bi bolje da se to ne radi u konstruktoru... dakle obichno dok je objekt zhiv postoji u nizu, kad se unishti izbaci se iz niza...
No ovako se u GC jezicima prave memory likovi, jer obichno takvi objekti budu zaboravljeni da se izbace iz niza pa referenca
na objekt vechito stoji i zbog toga GC, ne mozhe da oslobodi memoriju...
 
Pozdrav ljudi, pre 2 meseca sam zavrsio web dev kurs, ucio svasta(javu, mysql, spring, html, css, js, react itd), sad trazim juniorsko mesto ili praksu. Pre neki dan sam dobio ponudu za posao iz jedne male firme, oni rade u php-u, wordpressu... Ne znam sta da radim, da li treba da prihvatim tu ponudu? Malo mi je sad glupo sto ne zaradjujem nista i jedva cekam da krenem da radim, ali koliko je pametno da sve to sto sam ucio zamenim necim novim(ne znam koliko je php perspektivan sto se tice karijere). Hvala
 
Pozdrav ljudi, pre 2 meseca sam zavrsio web dev kurs, ucio svasta(javu, mysql, spring, html, css, js, react itd), sad trazim juniorsko mesto ili praksu. Pre neki dan sam dobio ponudu za posao iz jedne male firme, oni rade u php-u, wordpressu... Ne znam sta da radim, da li treba da prihvatim tu ponudu? Malo mi je sad glupo sto ne zaradjujem nista i jedva cekam da krenem da radim, ali koliko je pametno da sve to sto sam ucio zamenim necim novim(ne znam koliko je php perspektivan sto se tice karijere). Hvala
Zhiv bio, prihvati ponudu, pa radi, klinci menjaju poslove ko charape. Ako ti se ne svi lakshe tjesh sa pozicije zaposlenog nego nezaposlenog
natji drugi posao… ista fora ko kad si ozhenjen navaljuju, a ako nisi ne...
 

Back
Top