230 likes | 387 Views
Ruby. Du šan Halas. Osnovne informacije. Razvio ga je Yukihiro Matsumoto 1995. godine Popularnost stekao tek 2005 . Interpretatorski - sličan je Perl-u , Smalltalk-u, Python-u, LISP-u OOP Open source. Osnovne informacije. Jednostavan za učenje Veliki spektar biblioteka ( Gems )
E N D
Ruby Dušan Halas
Osnovne informacije • Razvio ga je Yukihiro Matsumoto 1995. godine • Popularnost stekao tek 2005. • Interpretatorski - sličan je Perl-u, Smalltalk-u, Python-u, LISP-u • OOP • Open source
Osnovne informacije • Jednostavan za učenje • Veliki spektar biblioteka (Gems) • Odličan balans jednostavnosti i funkcionalnosti • Izbegavanjenepredvidivosti
Primeriza Ruby • Puts “Hello world” • Bez funkcija, promenljivih, zagrada • 3+2 • s = “string” • s.reverse • puts s
Ruby on Rails • Web frameworkapplication • Gem nastao 2004 • David Heinemeier Hansson, 37signals • Sa pojavom Rails-a je Ruby stekao popularnost • Svako je mogao da pravi svoj Gem, i samim tim pomaže razvoju cele web zajednice • Imao je mnoštvo biblioteka i struktuirane podatke
Osnove za rad • Radi lakšeg rada u RoR-u potrebna su neka osnovna predznanja, naravno nisu obavezna već služe za lakše razumevanje • Osnove weba (browser, server, pages) • HTLM, SQL, CSS, JavaScript • Ruby
Dostupnost • Trenutna verzija Ruby 1.9.3 • http://www.ruby-lang.org/ • http://rubyonrails.org/ • Standalone Gems
DRY • RoR se zasniva na 2 principa koja i doprinose njegovoj popularnosti ijednostavnosti • Don’t • Repeat • Yourself • DRY princip je fundamentalni princip u dizajniranju softvera koji kaže da svaka informacija treba biti predstavljena na samo jednom mestu
DRY • DRY kod je najlakšizaodržavanje i dorađivanje • Preporučenoza upotrebu i u drugim programskim jezicima • Da li je naš kod DRY?
Conventions & Sensible Defaults (Convention over configuration) • Većina stvari je postavljena na podrazumevane vrednosti • Ako radimo sa bazama, Rails zna kako one funkcionišu, zna šta većina korisnika koristi u radu, pa će sve te informacije prekonfigurisati • Postojaće poseban deo za JavaScripts, CSS, sve će biti funkcionalno raspoređeno
Conventions & Sensible Defaults • Ti dogovori imaju mnogo smisla i u mnogome olakšavaju rad, razvijane su tokom godina od strane cele zajednice • Posmatrati ih kao veoma moćno sredstvo u radu • Za i protiv? • Postoje i neke situacije kada želimo da sve to izgleda malo drugačije, zbog toga je i ostavljena mogućnost ručnog podešavanja • "This is the way Rails is going to do it."
MVC arhitektura • Model • View • Controller • Kao i kod svakog OO jezika, Model predstavlja naš objekat, View je prezentacioni sloj koji korisnik dobija (HTML, CSS..), dok Controller procesira i odgovara na događaje koje izaziva korisnik, vrši promene ukoliko postoje
Tipični web model Database Browser View
MVC arhitektura odluke Browser Controller Database View Model podaci prikaz
Sajtovi u RoR • http://www.odeoenterprise.com/ • http://www.basecamphq.com - 37signals • http://www.twitter.com/ • http://www.vukajlija.com/ - na početku • http://www.yellowpages.com/
PrimerizaRoR • Sa instalacijom RoR-a ide i već funkcionalan server. Pokreće se na sledeći način: • U terminalu odemo do foldera u kojem želimo da napravimo aplikaciju • Pomoću rails Gem-a kreiramo novu aplikaciju
PrimerizaRoR • Izvršimo navigaciju do napravljenog foldera • Zatim pokrećemo server na mašini
PrimerizaRoR • Pristupanje aplikaciji se vrši preko browsera na adresi http://localhost:3000
PrimerizaRoR • Sada ćemo promeniti naslovnu stranu naše aplikacije • Za početak kreiramo novi Controller i View • Rails je napravio potrebne fajlove, nama je potreban onaj na adresi app/views/home/index.html.erb.
PrimerizaRoR • Zatim brišemo default naslovnu stranu • Na adresi config/routes.rb se nalaze informacije o povezivanju na kontrolere i akcije, među njima je i ona koja pokazuje na naslovnu stranu. Editujemo taj deo da pokazuje na našu stranu
PrimerizaRoR • Ponovo startujemo server
Literatura • http://www.lynda.com • http://tryruby.org • http://guides.rubyonrails.org/ • http://www.devprotalk.com
Pitanja • DRY princip • Conventions & Sensible Defaults princip • Osnove MVC arhitekture