Kostur projekta Pretpostavićemo da će projekat imati više manjih projekata tj. kontejnera, npr. deo za mikroservise, deo za rad sa bazom… Te je dobro da se u root-u projekta naprave podfolderi za svaki manji projekat npr.:
node_project/
├── api/ # Ovaj za mikroservise
├── data/ # Ovaj folder za bazu podataka
123
node_project/├── api/ # Ovaj za mikroservise├── data/ # Ovaj folder za bazu podataka
Kreiranje package.json Prvo ćemo kreirati package.json fajl u root folderu projekta. Ovaj fajl će sadržati sve potrebne informacije …
Šta su promenjive okruženja Promenljive okruženja (eng. “Environment Variables“) koriste se na različitim mestima u razvoju softvera i IT infrastrukturi, kao npr. kod: operativnih sistema (“PATH” promenjiva koja definiše direktorijume u kojima operativni sitem traži izvršne fajlove), razvoja softvera (promenljive za čuvanje konfiguracionih parametara kao što su API ključevi, baze podataka, URL-ovi..), bezbednost (za čuvanje …
Uvod u Docker svet Šta je Docker? Docker je platforma koja omogućava programerima da jednostavno kreiraju, implementiraju i pokreću aplikacije unutar kontejnera. Šta su to kontejneri? Kontejneri se mogu shvatiti kao lagane virtuelne mašine, ali su dosta brži i manje zahtevni od njih, oni sadrže sve što je potrebno za pokretanje aplikacije: kod, biblioteke i …
Šta su Streams u Node.js? Streams omogućava efikasniju obradu velikih količina podataka, i može se posmatrati kao neka “reka” podataka. Streams “čuva” memoriju jer obradom podataka u komadićima rad s velikim količinama podataka ne zauzimanja velike količine memorije odjednom. Streams brzo obradjuje podatake, jer se podaci mogu obraditi čim prvi komad stigne, bez čekanja na …
Uvod Razumevanje file sistema u Node.js ključno je za razvoj aplikacija koje zahtevaju čitanje, pisanje i manipulaciju fajlovima. Node.js nudi
fs modul, koji omogućava sinhrono i asinhrono upravljanje fajlovima. Ovaj članak detaljno objašnjava kako koristiti
fs modul u Node.js.
fs modul je deo Node.js API-ja koji omogućava rad sa fajl sistemom. Modul se može učitati …
Uvod Binarni sistem je osnova za rad računara i digitalne elektronike i predstavlja sistem koji koristi samo dve cifre: 0 i 1. Svaka cifra u binarnom broju se naziva “bit” , a osam bitova predstavlja “bajt” Svaki bit u binarnom broju predstavlja neki stepen broja dva. Ako imamo binarni broj od četri cifre, onda skroz …
Šta su Baferi (eng. Buffers)? Kada radimo s podacima koji se prenose preko mreže ili kada čitamo i pišemo datoteke na disku, često se susrećemo sa podacima koji nisu odmah dostupni u celosti. Bufferi su privremena skladišta za podatke dok se oni premeštaju iz jednog mesta u drugo. Bufferi omogućavaju da se ovi podaci akumuliraju …
Razumevanje EventEmitter-a u Node.js Node.js je popularna platforma koja omogućava izgradnju skalabilnih aplikacija kroz asinhroni, događajno vođeni pristup. Jedan od ključnih mehanizama koji omogućava ovaj pristup jeste EventEmitter. Da bismo razumeli njegovu važnost i funkcionalnost, zamislimo EventEmitter kao središte za komunikaciju unutar Node.js aplikacije, gde se događaji šalju, primaju i obrađuju. Šta je EventEmitter? EventEmitter …
Globalni Objekat U Node.js-u, globalni objekat služi kao kontejner za sve globalne varijable koje su dostupne u svim modulima vaše aplikacije. Slično objektu window u pregledačima, globalni objekat u Node.js-u omogućava pristup različitim globalnim funkcijama i varijablama, poput console, setTimeout, i clearTimeout. Da bi se pristupilo globalnom objektu, možete koristiti ključnu reč
global. Moduli Moduli …
Šta je objektno orjentisano programiranje? Objektno orjentisano programiranje ili skraćeno “OOP” je način organizovanja koda oko manjih celina pod nazivom “objekat”. Objektno orjentisano programiranje pomaže u strukturiranju koda u razumljive i samostalne jedinice koje se mogu lako ponovno koristiti u različitim delovima programa. Primenom objektno orjentisanog programiranja se dobija pregledniji i razumljiviji programski kod koji …
Šta su zavisnosti (eng. dependency)? U programiranju, “zavisnost” predstavlja odnos između različitih komponenti u softverskom sistemu. Smatra se da kada jedna komponenta koristi ili zavisi od druge komponente, da tada postoji zavisnost između njih. Zavisnost može biti u mnogo oblika, a osnovni tipovi zavisnosti uključuju: Zavisnost od Klase (Class Dependency) se odnosi na situaciju kada …
Šta je “SCRUM”? Scrum je agilna metodologija upravljanja projektima koja se često koristi u softverskom razvoju, ali se može primeniti i u drugim oblastima. Osnovna ideja Scrum-a je da omogući timovima da fleksibilno i efikasno rade na projektima koji se brzo menjaju. Scrum je kao skup pravila i način rada koji pomaže pri radu na …
Socket “Socket” predstavlja krajnju tačku za slanje ili primanje podataka u mreži. Drugim rečima, to je interfejs između aplikacije i mrežne komunikacije na operativnom sistemu. Kroz sokete, aplikacije mogu komunicirati međusobno preko mreže. Soketi su osnova za mnoge mrežne aplikacije i usluge, uključujući veb pretraživače, e-mail klijente, chat aplikacije i mnoge druge. Oni omogućavaju komunikaciju …
Šta je Vue.js? Vue.js se izgovara /vjuː/, slično kao engleska reč view, a u oficijelnoj dokumentaciji kažu za njega da je progresivni JavaScript framework za izradu korisničkog interfejsa. “Progressive framework for building user interfaces”. Dokumentacija Vue.js Vue.js se smatra da je jedan od najjednostavnijih JavaScript framework-a, koji je veoma brz, ima malu veličinu i veoma …
Koji su tagovi za grupisanje sadržaja? Često je potrebno grupisati delove sadržaja strane da bi mogao da se razlikuje od drugih delova (npr. meni, sadržaj, artikal…) i da bi mogli da mu definišemo specifičnu veličinu kao i poziciju na stranici kroz CSS. Grupisanje se jednostavno vrši tako što se u sadržaj smešta u okviru odgovarajućeg …
Tag za naslove <h1> do <h6> Unutar ovih tagova se stavljaju nazivi naslova. Najveći (najglavniji) naslov se obeležava sa <h1> dok se najmanji naslov obeležava sa <h6> tagom. See the Pen Naslovi u html-u by Web programiranje (@chos) on CodePen. Paragraf tag<p> Ovaj tag se koristi da smestimo unutar njega obični tekst koji je standardne veličine i …
Šta je HTML? HTML (Hypertext Markup Language) je deskriptivni jezik za označavanje specifičnih delova sadržaja web stranice (tzv. markup jezik). Ko koristi ove oznake sadržaja? Ove oznake sadržaja koriste browseri, jer tek kad “vide” odgovarajuću html oznaku oni znaju koji je tip sadržaja u pitanju (da li je slika ili tekst…) i šta treba da urade …
Šta su git submoduli? Submoduli su projekti (najčešće neke biblioteke) koji su ubačeni u neki drugi projekat, nakon čega su u tom tzv. “glavnom” projektu dostupni svi fajlovi submodula. Git subdmoduli nam omogućavaju da koristimo dva ili više repozitorijuma kao da su jedno. Svaki repozitorijum održava svoju zasebnu istoriju promena pa se čak subdmoduli ažuriraju …
Kreiranje server objekta Za kreiranje servera je potreban http/https objekat koji je ugradjen u core node.js-a te ga možemo importovati kao modul. Postoje dve opcije modula: http – Http je jedan od ugrađenih modula koji dolazi sa Node.js i omogućava kreiranje servera za prihvatanje zahteva od klijenta i vraćanje odgovora https – Https modul uključuje …
Šta je node.js? JavaScript je programski jezik koji ne može da se samostalno koristi već je za njegovo izvršavanje potrebno specijalno okruženje tzv. “JavaScript runtime environment”. Najpoznatiji “JavaScript runtime environment” je browser, ali ukoliko želimo da izvršavamo JavaScript i van browser-a tu na scenu nastupa node.js kao drugi “JavaScript runtime environment”. Node.js je open-source, cross-platform …
Uvod Room je bibloteka preporučena od strane Google-a kao jedna od komponenti tzv. “Android Architecture Components” pristupa. Room je wrapper oko SQLite baze i predstavlja sloj apstrakcije koji olakšava rad sa bazom podataka. Room bibilioteka preuzima na sebe većinu obaveza tako da sada lakše kreiramo tabele i upravljamo podacima. Room ima tzv. compile-time checks tj. …
Contract klasa Contract klasa ima samo ulogu da bude kontejner za konstante koje definišu imena za URI-je, tabele i kolone. Ova klasa nam omogućava upotrebu istih konstanti u svim ostalim klasama, što nam dosta olakšava posao u radu sa bazom podataka jer omogućava da na jednom mestu menjamo ime kolone ili slično. 1) Kreirnje klase …
Uvod SQL (Structured Query Language) je jezik koji se koristi pri upravljanju relacionim bazama. Ovaj jezik je dizajniran da korisniku omogući čuvanje, pronalaženje, upravljanje ili manipulisanje podacima unutar sistema za upravljanje bazama podataka (DBMS). U ovome članku će biti reči o naredbama koje su sastavni deo SQL jezika a koji se koristi za rad sa …
Uvod Pre svega treba napraviti razliku izmedju pojmova: “baza podataka”, “sistem za upravljanje bazama podataka” (tzv.DBMS “Database Management System”) i samog “SQL jezika”. “Relacijska baza podataka” je digitalna baza podataka na osnovu relacijskog modela podataka i predstavlja skup povezanih podataka koji zamenjuju neki aspekt stvarnog sveta. “Relaciski sistem za upravljanje bazama podataka” (RDBMS) je softver …
LiveData je apstraktna klasa tzv. observable data holder zadužen da čuva informacije o podacima i da obavesti sve zainteresovane posmatrače ako dodje do promena. LiveData is actually just an Abstract Class. So it can’t be used as itself. Najvažnija karakteristika LiveData je ta što je svestan životnog ciklusa drugih komponenti aplikacije …
MVVM pattern MVVM (Model-View-ViewModel) je patern koji razdvaja aplikaciju na više komponenti tako da svaka komponenta ima svoje specifične odgovornosti. Pri korišćenju MVVM paterna “kod” aplikacije je razdvojen na tri dela: View, ViewModel i Model, ova arhitektura je preporučena od strane Google-a kao jedan od najboljih načina strukture koda Android aplikacija. Osnovne karakteristike ovog pristupa …
Šta je ViewPager? ViewPager je Layout Manager koji omogućava korisniku da se kreće kroz stranice podataka pokretima na levo ili desno, dok se pri promeni stranica izvršava i ugradjena animacija. Najčešće su te strane sa podacima su fragmenti, mada mogu da budu i nešto drugo kao npr. slike koje se slajduju… ViewPager se popunjava podacima …
Uvod Adapter je most između izvora podataka (Array objekat, List objekat…) i korisničkog interfejsa. Uloga adapter objekta (implementira Adapter interfejs) je da čita podatke iz različitih izvora podataka, i na osnovu njih popunjava View objekte članove nekog ViewGroup-a. Do sada smo koristili ListView ali preporuka je da se umesto listView-a koristi RecyclerView, a naručito kada …
Uvod U osnovnoj verziji adaptera se koristi samo jedan String podatak koji se smešta u neki od predefinisanih android layouta sa jednim TextView-om. Custom adapter se razlikuje od “običnog” po tome što je kod njega jedan element liste predstavljen sa više podataka te je potrebno definisati “složeniji layout” koji bi prihvatio i prikazao te podatke. …
Uvod Adapter je most između izvora podataka (Array objekat, List objekat…) i korisničkog interfejsa. Uloga adapter objekta (implementira Adapter interfejs) je da čita podatke iz različitih izvora podataka, i na osnovu njih popunjava View objekte članove nekog ViewGroup-a. ViewGroup: ListView, RecyclerView, GridView, Spinner, Gallery čiji sadržaj se popunjava korišćenjem adaptera se nazivaju zajedničkim imenom “AdapterView”. …