Ruby on Rails
From Wikipedia, the free encyclopedia
Remove ads
ili jednostavno je razvojni okvir za veb, koji ima za cilj maksimizaciju programerske produktivnosti. Razvijen je pre više od deset godina. Napisan na programskom jeziku i danas čini okosnicu mnogih najpopularnijih aplikacija na internetu[2]. U skladu sa time ima neverovatno aktivnu i entuzijastičnu zajednicu.
je razvio 2003. godine dok je radio na osnovama koda za [3](alat za upravljanje projektima). David prestavlja i zvanično objavljuje njegov izvorni kod u julu 2004. godine[4]. Tokom godina kod se razvijao zadržavajući tri glavna principa:
- Programski jezik kao osnovu
- MVC arhiktetura
- Programerska sreća
Remove ads
Istorija
Prva verzija je nastala 2004. godine, a prva stabilna (1.0) je objavljena 13. decembra 2005. godine. Od tog trenutka dobija značajnu ulogu u svetu veb razvoja. Naredna verzija 2.0 je objavljena 6. decembra 2007. godine.
2.3 verzija je objavljena 15. marta 2009. godine sa velikim novim dostignućima u šablonima, ugnježdenim formama i -u (interfejs za razvoj veb aplikacija u Rubiju).
23. decembra 2008. godine frejmvork veb aplikacije, , je lansiran i je objavio da će sarađivati sa projektom u cilju unapređivanja -a u verziji 3, da bi se okončalo nepotrebno dupliranje. se spojio sa -om u verziji 3.0.
Verzija 3.1 je objavljena 31. avgusta 2011. u kojoj se pojavljuje kao podrazumevana biblioteka za i nedavno uveden .
Verzija 3.2 objavljena je 20. januara 2012. godine, sa brzim režimom razvoja i usmeravanjem mašine. 3.2.x je poslednja verzija koja podržava 1.8.7 . 2.2.12 podržava 2.0.
Verzija 4.0 je objavljena 25. juna 2013. godine predstavljajući turbolinkove, prenose uživo kao i pravljenje aktivnih resursa i drugih opcionih komponenti za njihovo razdvajanje na sisteme za upravljanje paketima.
Verzija 4.1 je objavljena 8. aprila 2014. godine predstavljajući , , enumeracijski tip i .
Verzija 4.2 je objavljena 19. decembra 2014. godine predstavljajući , asinhrone mejlove, veb konzole i strane ključeve.
Verzija 5.0 je objavljena 30. juna 2016. godine.
Remove ads
Razvoj
se često instalira koristeći , sistem za upravljanje paketima koji je uključen u trenutnu verziju jezika . Mnogi sistemi takođe podržavaju instalaciju -a i zavisni su od njegovih izvornih sistema za upravljanje paketima. je uglavnom razvijen za servere baza podataka kao što su i i veb server koji pokreće modul.[15]
Filozofija i dizajn
podstiče naredne principe:
- Konvencija iznad konfiguracije
- Ne ponavljaj princip[16]
- Debeli modeli, mršavi kontroleri
Konvencija iznad konfiguracije - znači da postoji konvencija koju programer treba da poštuje i da treba samo da odredi nekonvencijalne aspekte aplikacije. Na primer, ako imamo klasu u modelu, odgovarajuća tabela u bazi podataka će se podrazumevano zvati . Generalno, dovodi do skraćivanja i ponovnog korišćenja istog koda.
Ne ponavljaj se - sugeriše programeru da nije dobro ponavljati iste delove koda. Na primer, koristeći modul programer ne mora da definiše imena kolona u bazi podataka prilikom definicija klasa. Umesto toga, može da izvede ovu informaciju preko imena klase iz baze podataka.
Debeli modeli, mršavi kontroleri - većinu aplikacija logički treba smestiti unutar modela ostavljajući kontrolere sto je moguće slobodnijim.
Tehnički pregled
Kao i mnogi veb okviri koristi MVC arhitekturu, obrazac za organizovanje programiranja aplikacija. U podrazumevanoj konfiguraciji, model u programskom okviru (frejmvork) se povezuje sa tabelom u bazi podataka i sa fajlovima. Na primer, model klase će obično biti definisan u fajlu u direktorijumu aplikacija/modeli i povezan sa tabelom u bazi podataka. Programeri mogu da ignorišu ovu konvenciju i biraju različita imena za svoje modele, fajlove i baze podataka, ali to nije uobičajena praksa i nije u skladu sa principom "konvencija iznad konfiguracije". Kontroler je komponenta sa serverske strane -a koja odgovara spoljašnjim zahtevima veb servera aplikaciji. On određuje koji fajl se trenutno obrađuje. Kontroler može postaviti upit jednom ili više modela direktno za informacije i proslediti ih na pregled, kao i obezbediti jednu ili više akcija. Akcija je najčešće osnovna jedinica koja opisuje kako odgovoriti na specifičan spoljni zahtev veb pregledača. Takođe treba napomenuti da će akcija kontolera biti dostupna spoljnom veb zahtevu samo ako odgovarajuća putanja pokazuje na nju. ohrabruje programere da koriste (-Transfer reprezentacije stanja), veb servis koji omogućava kompatibilnost između različitih računarskih sistema na internetu. Isto tako podržava rad sa putanjama koje uključuju akcije kao što su kreiraj, novi, izmeni, dopuni, uništi, prikaži i slično. Ove putanje dolaznih zahteva kontroleru mogu biti jednostavno postavljene u konfiguracijski fajl .
uglavnom nije povezan na internet direktno već preko nekih veb servera. Od 2008. godine pa nadalje najkorišćeniji veb server za je . takođe podržava . je isto tako vredan pažnje zbog široke upotrebe u Javaskriptu , Javaskript okvirima, , za pisanje skripti korišćenjem -a. je predstavljen u verziji 3.1 kao podrazumevani jezik za Javaskript. Počev od verzije 2.0 nudi i i kao standardni format za izlaz. U verziji 3.1 je postavljen za standardni obrazac. Server podrazumevano koristi ugrađen u pregledu fajlova koji imaju ekstenziju. podržava zamenu alternativnih jezika za šablone kao sto su i . 3.0 je dizajniran da radi sa 1.5.2, dok kod ranijih verzija nije bilo podržano.
Remove ads
Performanse
Struktura frejmvorka
je podeljen na razne pakete: (sistem za pristup bazama podataka), (omogućava veb servis), , i . Pre verzije 2.0 je takođe sadržao paket koji je zamenjen paketom . Nezavisno od standardnih paketa, programeri mogu da instaliraju dodatke i da prošire postojeće pakete. Ranije verzije su podržavale dodatke unutar svojih uobičajnih okvira.
Rails obezbeđuje kompletne komponente za kreiranje veb aplikacija, od kojih su najvažnije:
- Pokretanje kontrolera
- Akcija pregleda
- Aktivan zapis
- Slanje poruka
- Aktivan izvor
- Aktivna podrška
Pokretanje kontrolera
Pokretanje kontrolera je komponenta koja uređuje kontrolere u aplikacijama. Pokretanjem rada kontrolera, frejmvork obrađuje dolazeće zahteve aplikacija, izvlači parametre i otprema ih namenjenoj akciji. Servisi obezbeđeni ovom akcijom uključuju upravljanje sesijom, predstavljanje šablona i preusmeravanje upravljenja.
Akcija pregleda
upravlja izgledom aplikacija. Može da kreira i i izlaz kao podrazumevani. Akcija upravljaju šablonima, uključujući ugnježdene i parcijalne šablone, i uključuju ugrađenu podršku.
Aktivan zapis
Aktivan zapis je baza za modelovanje u aplikacijama. Obezbeđuje nezavisnost baze podataka, osnovnu funkcionalnost, naprednu pretragu i omogućava povezivanje jednog modela sa drugima među ostalim servisima.
Slanje poruka
Slanje poruka je frejmvork za izgradnju e-mail servisa. Možemo ga koristiti za slanje poruka zasnovanih na fleksibilnosti šablona ili da primimo i obradimo dolazeće poruke.
Aktivan izvor
Aktivan izvor obezbeđuje frejmvork za upravljanje konekcijama između biznis objekata veb servisa. Implementira način za povezivanje veb baziranih resursa sa lokalnim resursima ) semantikom.
je jezgro koda nad kojim su izgrađene nove aplikacije i objedinjuje različite veb okvire u bilo kojoj aplikaciji.
Aktivna podrška
Aktivna podrška je skupa kolekcija korisnih klasa i standardnih bibliotečkih ekstenzija koje se koriste u , kako u kodu jezgra, tako i u aplikacijama.[17]
Skalabilnost
koji se pokreće na interpretatoru je kritikovan zbog problema sa skalabilnošću. Ta kritika se često pominje zbog raznih grešaka u okviru tokom 2007. godine i 2008. godine[18], što je podstaklo programere da delimično prebace na programski jezik (koji se pokreće na Java virtuelnoj mašini (JVM))[19]. je pokretao korisnički interfejs sve do 2011. godine, kada je zamenjen zbog performansi.
Uprkos kritikama i poređenjima sa , je zaključio 2011. godine da mnoge kompanije koje se bave veb programiranjem, koriste kako bi pravile agilne skalabilne aplikacije[20]. Neki od najvećih sajtova koji koriste su , , , , i [21].
Procenjuje se da od januara 2016. godine preko 1.2 miliona veb sajtova koriste [22].
Remove ads
Bezbednost
24. septembra 2013. godine, prijavljen je bezbednosni propust u -u. U podrazumevanoj konfiguraciji cela sesija je smeštena unutar sesije kolačića() (poznata kao ) dozvoljavajući bilo koju autentifikovanu sesiju da se uloguje kao ciljani korisnik u bilo kom trenutku u budućnosti. Kao radno okruženje administratori su savetovani da kolačiće smeste na server koristeći mehanizme kao što je . Istraživači i su razvili debager "". On može da analizira pristup podacima preko pokretanja programa i proveri da li se program pokreće po pravilima u okviru ograničenja pristupa. 15. aprila 2016. godine je izjavio da su analizom 50 popularnih veb aplikacija, koje koriste , otkrivena 23 prethodno nepoznata bezbednosna propusta.[23]
Remove ads
Reference
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads