Framework

Framework je struktura na kojoj se može graditi softvere, sluzi kao temelj tako da ne moramo graditi program od nule.
Razni frameworkovi su obično povezani sa određenim programskim jezikom i predodređeni su za različite vrste zadataka.

Npr. ako gradimo kuću možemo sami izliti temelje i sazidati kuću ali bi trajalo duže i bilo bi kompliciranije a ako je to već napravljeno od majstora možemo raditi brže i točnije i bez grešaka.

Framework ima slicnu namjenu za gradnju programa. Dizajniran je i testiran od strane developera i inženjera tako da znamo da su temelji čvrsti.

Zašto koristimo framework
Framwork se koristi da se ubrza vrijeme razvoja, smanje greške pisan je i testiran je od majstora.


Prednosti korištenja frameworka:

  • Sigurniji kod
  • Jednostavnije testiranje i debaging
  • Izbjegavanje dupliciranja koda
  • Čist i lako prilagodljiv kod
  • Može se fokusirati na pisanje koda specifičnog za projekt
  • Može se produžiti

Razlika između library i frameworka

Library izvodi specifične predefinirane operacije.

Tipovi frameworka

Framework se može koristiti za razvoj web, mobilnih, desktop i drugih aplikacija. Mogu biti frontend i backend.

Popularni web frameworkovi su angular, react vue.js django i drugi.

Angular je razvijen od googlovog angular tima, uključuje značajke poput dvosmjernog povezivanja podataka što skraćuje vrijeme razvoja i smanjuje ovisnost što olakšava međusobnu interakciju različitih djelova koda.

React je razvijen od Meta kompanije (Facebook) koristi se kako u stvaranju korisničkog sučelja (user interfaces) i stvaranju web aplikacija, web stranica i single page aplikacija. React koristi redux za upravljanje stanjem i kuke (hooks) za rukovanje i ponašanje i logikom komponenti. Također koristi JSX za stvaranje HTML-a i CSS-a unutar JavaScripta.

Vue je napredan framework za kreiranje korisničkog sučelja (user interfaces) web aplikacija i jednostraničnih aplikacija.
Razvio ga je Evan You koi je prethodno radio u Googlu preuzeo je najbolje djelove iz angulara i napravio prilagođeni alat oko njega.

Razlike između frameworka

Angular je TypeScript framework a React je JavaScritpt library. React koristi jednosmjerno povezivanje podataka (one way data binding) i virtualni DOM a angular koristi dvosmjerno povezivanje podataka (two-way data binding) i pravi DOM. React je brzi od angulara jer ima manju veličinu paketa.

Angular daje vise mogućnosti out of the box
Angular koristi JavaScript + html dok react koristi JavaScript + JSX

One-way data binding: jednosmjerno povezivanje podataka znači da element korisničkog sučelja ne može utjecati na stanje komponente.

Two-way data binding: dvosmjerno povezivanje podataka znači da element korisničkog sučelja može utjecati na stanje komponente.

Vue.js je jednostavniji za korištenje od Angulara jer ima ugrađene predloške aplikacija i omogućava veću fleksibilnost.

Vue.js ima ugrađenu komponentu css tranzakcije i animacije te se lakse implementira sa DOM manipulacijom bilo da se oduzima neki element ili dodaje.

Angular koristi pravi DOM (real DOM) koji renderira cijelu stranicu aplikacije cak i kada se promjeni jedna komponenta. dok Vue koristi virtual DOM kao i React koi renderira samo promjenjenu komponentu DOM-a Ovakav pristup poboljšava brzinu izvođenja aplikacije.

Angular nudi jasniju definiranu arhitekturu aplikacije. Vue.js nije pretjerano strukturitan sto nudi veću fleksbilnost, ne postoji univerzalni pristup dizajnu aplikacija. za izradu predložaka koristi se JavaScript ili HTML datoteka.

Angular je bolja opcija šta se tiće testiranja i debaganja. Ima izvrsnu metodologiju testiranja i nudi mnoge alate, kao što su Jasmine i Karma, koji testiraju cijeli razvojni kod pojedinačno.

S druge strane, Vueu nedostaju odgovarajuća pravila testiranja, što programerima otežava programiranje aplikacije bez grešaka.