
"Ruby" kalba
|
"Ruby" objektinio programavimo kalba, kurią sukūrė Yukihiro Matsumoto
("Matz"). Kūrimas prasidėjo 1993 m. vasario mėn. ir pirmoji alfa versija pateikta 1994
m. gruodžio mėn. Pripažinimo susilaukė 2006 m. Dabar "Ruby" pateikiama kartu su Mac
OS X. Daugelis "Linux" distribucijų arba pateikiamos kartu su "Ruby", arba lengvai
instaliuojama. Yra variantas "Windows" terpei.
| |
"Ruby" kurta kaip alternatyva "Perl" ir "Python" kalboms. Ji daug ką perėmė iš "Perl" ir
klasių biblioteka, iš esmės, yra objektiškai pertvarkytas "Perl" funkcionalus. Taip pat, "Rumy"
perėmė kai kuriuos elementus iš "Lisp" ir "Smalltalk". Yra elementų ir iš "Eiffel", "Ada" bei
"Python".
| |
Skirtingai nuo C ar C++, "Ruby" yra gryna objektinė kalba. Viskas joje yra objektas, tame
tarpe skaičiai ir kiti elementarieji tipai. Pvz., kai su skaičiumi naudojamas metodas:
5.times { print "Myliu Ruby" }
| |
Objekto savybės vadinamos kopijos (instance) kintamaisiais, o funkcijos metodais.
"Ruby" leidžia tik paprastą paveldimumą. Kalba labai lanksti. Egzistuojančias klases galima
papildyti naujais metodais nenaudojant subklasių, operatoriai gali būti daugybiniai (overload)
ir net standartinių bibliotekų veikimas gali būti pakeistas kodo vykdymo metu. Pvz., kaip klasė
Numeric papildoma metodu plus:
class Numeric
def plus(x) self.+(x) end
end
Dabar šį metodą galime panaudoti sudėties pakeitimui:
y = 5.plus 6 # y bus lygu 11
| |
"Ruby" kalboje nereikalaujama aprašyti kintamuosius Kintamojo vardas automatiškai
nusako jo veikimo sritį:
x lokalus kintamasis;
$x globalus kintamasis;
@x kopijos (instance) kintamasis;
@@x klasės kintamasis.
| |
Viena galingiausių savybių "Ruby" kalboje yra blokai (vadinami gaubtais,
closures). Jie panašūs į "Java" anonimines klases, tačiau jais patogiau naudotis.
Gaubtas leidžia kodo bloką perduoti metodui. Dažniausiai pateikiamas pavyzdys ura
rūšiavimo metodo iškvietimas ir jam perduodamas gaubtas, kuris palygina dvi reikšmes jis
nusako, kaip bus rūšiuojami elementai. Gaubtas gali lyginti reikšmes kaip tekstą arba kaip
skaitines reikšmes, tačiau gali atlikti ir daug sudėtingesnius veiksmus pvz., jei rūšiuojamos
reikšmės yra produktų kodai, gaubtas gali iš DB paimti produktų pavadinimus ir juos lyginti (o
ne kodus).
| |
Sudėtingesnės savybės:
- Išimtys klaidų valdymui;
- sužymintis šiukšlių surinkimas vietoje nuorodų skaičiavimo;
- nuo operacinės terpės nepriklausomos gijos, - tad daugiagijai sprendimai galimi net
tokiose sistemose kaip DOS.
| |
Pagrindinė svetainė: ruby-lang.org
| |
Paprasčiausias pavyzdys: Labas, pasauli
Sukurkite hw.rb bylą, kurioje yra toks kodas:
# Pirma programa:
puts 'Labas, pasauli!'
Ją galima įvykdyti komandų eilutėje surinkus:
ruby hw.rb
Galima šį kodą įvykdyti ir nekuriant bylos, o tiesiog vykdant:
ruby e "puts 'Labas, pasauli!'"
| |
"Unix" klasės operacinėse terpėse (pvz., "Linux", "Solaris" ir kt.), naudinga "Ruby" bylas
sužymėti kaip vykdomas. Tada jų vykdymui nereiks kaskart rašyti komandos "ruby". Tai
galima padaryti tokia komanda:
chmod +x hw.rb
| |
Taip pat bylą pradėkite pseudo-komentaru, nurodančiu, kuri programa ją turi vykdyti, pvz.,
#!/usr/bin/ruby
puts 'Labas, pasauli!'
|
Ruby on Rails
Kol kas pateikiamas tik bendrasis pristatymas
|
Ruby on Rails (dažnai trumpinant Rails arba RoR) atviro kodo
web sprendimų kūrimo aplinka "Ruby" programavimo kalbai. Ji pritaikyta Agile
metodologijos naudojimui, labai tinkančios trumpiems, dažnai užsakovo reguliuojamiems
projektams.
| |
RoR buvo išgryninta iš David H. Hansonn darbo su "Basecamp", projektų valdymo
įrankiu. RoR pirmąkart kaip atviras kodas pristatyta 2004 m. liepos mėn. 2006 m. rugpjūtį
"Apple" paskelbė, kad platins "Ruby on Rails" su Mac OS X v10.5 Leopard operacine
terpe.
| |
Kaip ir kitos panašios aplinkos, RoR naudoja MVC architektūrą sprendimo organizavimui.
Jis apima ir paprastą ruby web serverį (WEBrick) ir "Rake" sumontavimo (build)
sistemą. RoR išsiskiria intensyviu "JavaScript" bivliotekų "Prototype" ir "Script.aculo.us"
(Ajax'ui) naudojimu. Pradžioje web servisams buvo naudojamas lengvasis SOAP
protokolas, kuris vėliau buvo pakeistas RESTful.
| |
RoR yra suskaidytas į kelis paketus: ActiveRecord, ActiveResource, ActionPack,
ActiveSupport, ActionMailer. Tačiau programuotojai gali sukurti papildymus (plugins),
išplečiančius paketų galimybes.
| |
RoR pabrėžia Agile programavimo principą "Nesikartok!" (DRY) bei CoC
(Convention over Configuration). CoC nurodo, kad programuotojas turi specifikuoti tik
nestandartinius sprendimo aspektus. Pvz., jei kuriama klasė "Sale" (Pardavimas), tai
atitinkama DB lentelė automatiškai pavadinama "sales" (Pardavimai). Tik tada, kai
nukrypstama nuo tokio susitarimo, pvz., pavadinant lentelė "soldProducts" (Parduoti
produktai), tada reikia keisti kodą, susijusį su tais pavadinimais.
|
Ankstesnės "Advanced HTML" skyrelio temos:
ASP patarimų liūnas
AWK kalba - sena ir nuolat aktuali
JavaScript atspindžiai"
Pelė uodega švystelėjo...
CGI.pm biblioteka: sausainiai
Ką delne mums neša HTML 4.0?
Kaip valdyti piešinių pakrovimo tvarką
Kaip lankytoją nukreipti į kitą WWW puslapį
Įlįskite į lankytojų kailį
Vaizdi rašysena - VB Script
Dygios JavaScript eilutės
Tiesa apie REST
|
|