Ruby on Rails
See artikkel ootab keeletoimetamist. (September 2020) |
Ruby on Rails (edaspidi Rails) on avatud lähtekoodiga veebiraamistik, mis on kirjutatud Ruby programmeerimiskeeles. Railsi looja on David Heinemeier Hansson, kes aastal 2003 ekstraheeris komponendi oma suuremast projektist Basecamp ja hakkas seda edasi arendama. 2004. aastal avalikustati Rails avatud lähtekoodiga veebiraamistikuna[1] ning Railsi esimene stabiilne versioon 1.0 13. detsembril 2005[2]. Railsi viimaseid versioone ja redaktsioone saab näha siit.
Tehniline ülevaade
[muuda | muuda lähteteksti]Model-View-Controller (MVC) on veebiarenduses levinud tarkvara arhitektuurimuster. Nagu ka paljudes teistes veebiraamistikes, on see kasutusel ka Railsis. See jagab programmi kolmeks põhiliseks osaks: mudeliks, vaateks ja kontrolleriks.
Mudel
[muuda | muuda lähteteksti]Mudel on infot käsitlev programmi osa, mis saab käsud kontrollerist ning edastab info vaatele. Seal asub rakenduse loogika ning seal toimub enamik selle tööst.
Vaade
[muuda | muuda lähteteksti]Vaade on infot kasutajale esitav programmi osa. See võtab mudelist tuleva info ning kuvab selle veebilehele. Rails kasutab selleks erilist erb tüüpi faili, mis on mõeldud ainult Ruby programmeerimiskeelele. See teeb suhtlemise kontrolleriga lihtsaks. Lõpuks teisendatakse erb-fail HTML-failiks, et seda veebibrauseris kuvada.
Kontroller
[muuda | muuda lähteteksti]Kontroller programmi ühendav lüli. See võtab vastu (kasutaja sisestatud) informatsiooni ning edastab selle koos käsuga mudelisse.
Tööprintsiibid
[muuda | muuda lähteteksti]Rails on loodud suuresti toetudes kolmele printsiibile, mis kõik hõlbustavad programmeerija tööd:
Convention over configuration
[muuda | muuda lähteteksti]Convention over configuration (CoC) on tarkvara disaini paradigma, mis lihtsustab programmeerija tööd seadistades automaatselt võimalikult palju vaikesätteid. See vähendab seadistamisele kuluvat aega ning teeb projektide üles seadmise mugavamaks.
Don't repeat yourself
[muuda | muuda lähteteksti]Don't repeat yourself (DRY) on printsiip, mis pöörab programmeerija tähelepanu koodis esinevatele kordustele. Täpsemalt tähendab see, et kirjutatud programmis ei tohiks esineda mitut sama funktsionaalsusega koodijuppi.
Fat models, skinny controllers
[muuda | muuda lähteteksti]Fat models, skinny controllers tähendab, et enamus programmi loogikast paikneb mudelis jättes kontrolleritesse ainult selleks hädavajalikud osad.
Objektide relatsiooniline vastendamine
[muuda | muuda lähteteksti]Objektide relatsiooniline vastendamise (ORM) teegid vastendavad andmebaasis olevad tabelid koodis defineeritud klassidele, tabeli read objektidele ja tabeli veerud atribuutidele. Näiteks kui andmebaasis on tabel nimega kasutajad, siis on koodis olemas klass nimega Kasutajad ja sellel on vaikeseadistusega juba olemas meetodid, et andmeid andmebaasi salvestada, muuta ning sealt küsida teatud tunnuste põhjal.[3]
Active Record
[muuda | muuda lähteteksti]Active Record on programmi ORM kiht, mis on Railsiga kooskõlastatud. See on tööpõhimõttelt nagu iga teise programmeerimiskeele ORM mudelid, kuid see järgib convention over configuration paradigmat ning toob endaga kaasa palju vaikesätteid, mis teeb selle kasutamise väga lihtsaks. Active Record, võrreldes teiste keelte ORM kihtidega, vajab konfigureerimist ainult juhul, kui on vaja teha andmebaasist keerulisemaid päringuid. See teeb lisaks lihtsale andmebaasiga suhtlusele veel enamat. Active Record on võimeline ka kasutaja sisestatud andmeid valideerima ilma, et see oleks koodis täpsemalt kirjeldatud. Näiteks kui on veebileht, kus kasutaja peab täitma ankeeti ja ta täidab välja, mis nõuab numbrilist sisendit, tekstiga, suudab Active Record selle tuvastada ning välja tuua.[3]
Viited
[muuda | muuda lähteteksti]- ↑ RailsCamma (21.09.2015). "The History of Ruby on Rails". medium.com. Vaadatud 03.12.2019.
- ↑ Hansson, David H. (13.12.2005). "Rails 1.0: Party like it's one oh oh!". weblog.rubyonrails.org. Vaadatud 03.12.2019.[alaline kõdulink]
- ↑ 3,0 3,1 Ruby, S., Thomas, D., Heinemeier Hansson, D. Agile Web Development with Rails 5. Raleigh, The Pragmatic Bookshelf, 2016. 42-44.