Kas ir "rubīns"? Ruby programmēšanas valoda. Rubīns iesācējiem: kāpēc šī valoda ir interesanta un kā to efektīvi apgūt

Pašlaik ir milzīgs skaits programmēšanas valodu, no kurām katrai ir savas īpašības un modeļi. Šajā rakstā tiks apspriests viens no tiem.

Rubīna valodas vēsture

Rubīns kā programmēšanas valoda pastāv jau ļoti ilgu laiku. Darbs pie šīs neticami populārās valodas pirmā izdevuma sākās jau 1993. gadā, un pirmā oficiālā versija ir datēta ar 1995. gadu. Valodas radītājs Jukihiro Matsumoto ir bijis programmēšanas entuziasts kopš studentu laikiem, taču ideja izveidot savu rīku viņam radās daudz vēlāk. Tātad, kas šajā programmēšanas valodā ir tik ievērojams, ka šodien tā ieņem vienu no vadošajām pozīcijām globālajā programmatūras izstrādes arēnā?

Ruby programmēšanas valoda ir augsta līmeņa, no izpildlaika neatkarīga daudzpavedienu ieviešana. Tam ir savs atkritumu savācējs, un sintakses ziņā tas ir vistuvākais tādām valodām kā Perl. Attīstoties ekosistēmai, šī platforma arī lielā mērā aizņēmās no Smalltalk, Python, Lisp un citām programmēšanas valodām. Ir arī ļoti svarīgi pastāvēšanai un nepārtrauktai attīstībai, ka Ruby valoda un tās ieviešana ir pilnīgi bez maksas. Tas nozīmē, ka ikviens var ierosināt izmaiņas, un, ja kopiena tās pieņems, tās tiks iekļautas nākamajā valodas versijā.

Rubīna filozofija

Radot savu ideju, Matsumoto, būdams uzticīgs objektorientētas programmēšanas fans un entuziasts, radīja noteiktu filozofiju programmētājiem, kuri vēlas apgūt viņa valodu. Tādējādi Ruby programmēšanas valoda ir izstrādāta, lai izveidotu vienkāršas, tomēr saprotamas lietojumprogrammas. Ruby galvenais uzsvars ir nevis uz programmas ātrumu, bet gan uz koda vienkāršību un lasāmību.

Tāpēc šī platforma ļoti bieži tiek izvēlēta kā ievade programmēšanas apguvei. Galvenais princips, uz kura balstās šī valoda, ir tā sauktais “mazākā pārsteiguma” princips - tas nozīmē, ka programmai jārīkojas tā, kā autors (programmētājs) no tās sagaida. Vēl viena svarīga valodas ideoloģijas sastāvdaļa, ko veidotājs ieviesa, ir tās lielā mainīgums. To pašu rezultātu var sasniegt dažādos veidos un funkcijās. Pateicoties tam, katrs programmētājs var atrisināt problēmu tā, kā viņš uzskata par vispareizāko un ērtāko. Tas ir ļoti ietekmējis valodas popularitāti informācijas tehnoloģiju profesionāļu vidū.

Galvenās valodas īpašības

Kas ir Ruby kā programmēšanas valoda? Tā galvenokārt ir uz objektu orientēta valoda. Tajā nav primitīvu tipu - visas struktūras un datu vienības ir objekti (atšķirībā no Java valodas tai ir primitīvas datu struktūras). Katra Ruby funkcija ir metode. Daudzas īpašības un iespējas ir ieviesuši veidotāji no citām programmēšanas valodām, tāpēc mēs varam droši teikt, ka Ruby (valoda) ir absorbējusi labāko no daudzām citām valodām un tehnoloģijām.

Tā, piemēram, Rubīna ekosistēmai ir savs atkritumu savācējs, kura ideja tika pārņemta no Smalltalk un Java un kas var darboties ar visiem sistēmas objektiem. Šis mehānisms ļauj nepamanīti lietojumprogrammas lietotājam un izstrādātājam iztīrīt atmiņu no objektiem, kas vairs nebūs vajadzīgi. Atkritumu savācējs vairumā gadījumu ļauj izstrādātājam nenovirzīt uzmanību, pārvaldot lietojumprogrammas atmiņu, bet gan koncentrēties uz funkcionalitāti un lietojamību.

Valodas paradigmas

Atbildot uz jautājumu, kas ir Rubīns kā daudzparadigmu valoda, jūs negaidīti varat nonākt strīda karstumā. Galu galā šī valoda ļauj vienlīdz veiksmīgi izmantot jebkuru no programmēšanas paradigmām: procesuālo programmēšanas stilu, objektorientētu vai Izstrādātājs var brīvi izvēlēties sev tuvāko paradigmu, un viņa rīku komplekts nekļūs vairāk. ierobežota vai vājāka no šī. Ruby programmēšanas valoda tikai veicina šo izvēli.

Popularitātes iemesli

Daudzējādā ziņā šī valoda ir kļuvusi populāra, jo ir viegli izstrādāt dažādus tās papildinājumus. Tāpēc ietvaru un bibliotēku skaits nepārtraukti pieaug, un uzdevumi, ko tie risina neatkarīgi, ļauj izstrādātājiem pēc iespējas īsākā laikā nogādāt produktu gatavā stāvoklī. Ļoti bieži Ruby programmēšana ir saistīta ar tīmekļa lietojumprogrammu izstrādi un atbalstu dažādu vietņu un interneta platformu darbībai. Valoda ieņēma šo nišu savas vienkāršības un attīstības ātruma dēļ. Galu galā alternatīvām platformām (piemēram, Java) ir nepieciešams daudz vairāk zināšanu un pieredzes, lai atrisinātu tās pašas problēmas.

Populāri ietvari

Ja mēs runājam par populāriem ietvariem, kas šodien pastāv tirgū, starp tiem ir vērts izcelt Rails. Daudzi cilvēki, jautājot, kas ir Ruby, intuitīvi domā par RubyOnRails. Šis programmatūras komponentu komplekts ir kļuvis par nozares standartu izstrādātāju vidū. Programmēšanas kopiena to pastāvīgi atbalsta, attīsta un papildina, vienlaikus paliekot bez maksas. Šis ietvars apraksta tīmekļa lietojumprogrammas komponentus MVC (Model-View-Controller) shēmā, kā arī nodrošina gatavu integrāciju ar un saskarni piekļuvei datu bāzei. Šie 3 komponenti faktiski ļauj jums dažu stundu laikā uzrakstīt un palaist vienkāršu emuāru vai privātu tīmekļa lapu internetā.

Pateicoties RubyMotion bibliotēkai, jūs pat varat izveidot vietējās mobilās lietojumprogrammas Ruby programmēšanas valodā. Tas ļauj palaist Ruby kodu iOS, OS X un Android platformās. To izveidoja privāta izstrādātāju grupa, tāpēc par tā lietošanu ir jāmaksā, taču tas kārtējo reizi demonstrē valodas bagātīgās iespējas.

Pārbaudījumu rakstīšanas nozīme

Vēl viena svarīga Ruby valodas ekosistēmas sastāvdaļa un tās uz tīmekli orientētā daļa ir ietvari un bibliotēkas testu rakstīšanai. RubyOnRails popularizē BDD (uzvedību orientētu attīstību) filozofiju, kas nozīmē, ka programmētājs vispirms izveido testu secību, kas apraksta paredzamo programmas uzvedību, un pēc tam izveido kodu, kuram šie testi ir sekmīgi jāiztur. Šajā jomā neizteiktais standarts ir RSpec – šis ietvars ļauj uzrakstīt testa gadījumus tā, lai tas būtu saprotams pat izstrādē nepieredzējušiem lietotājiem.

Rubīna dārgakmeņi

Pateicoties detalizētajam standartam, kuram ir jāatbilst visām Ruby pakotnēm un bibliotēkām, pievienojumprogrammu izstrāde ir vienkārša. Tāpēc starp tā sauktajiem dārgakmeņiem (no angļu valodas - dārgakmens) var atrast moduļus gandrīz jebkuras problēmas risināšanai - no integrācijas ar sociālajiem tīkliem un trešo pušu pakalpojumiem līdz gatavām platformām e-komercijai. Viss, kas jums nepieciešams, lai izmantotu trešās puses bibliotēku, ir aprakstīt sava projekta atkarību no kādas bibliotēkas, kas atrodas attālā vai vietējā repozitorijā, un nākamreiz veidojot, šī bibliotēka tiks automātiski ielādēta lietojumprogrammā. Tas arī atvieglo projekta migrēšanu starp izstrādātājiem, jo ​​nav nepieciešams manuāli koplietot atkarības, lai izveidotu projektu.

Tāpēc, ja jums vēlreiz jautā par to, kas ir Ruby, varat droši teikt, ka tā ir jaudīga un daudzpusīga programmēšanas valoda, kas noteikti būs piemērota gan pieredzējušiem izstrādātājiem, gan iesācējiem, kuri vēlas apgūt sarežģīto programmēšanas amatu. Tajā ir rīki jebkuras lietojumprogrammas izveidei — no darbvirsmas programmām līdz mobilajiem pakalpojumiem un tīmekļa platformām.

Ievads

Mūsdienās meklētājprogramma ir viena no visplašāk izmantotajām navigācijas metodēm kibertelpā, kas ar katru savas pastāvēšanas dienu pieaug un palielinās. Ir skaidrs, ka informācijas meklēšanas algoritmiem ir nepārtraukti jāpalielina sava sarežģītība un efektivitāte. Šī darba mērķis nav aprakstīt informācijas izguves algoritmus, bet vienkārši sniegt to ievadaprakstu. Kā arī šī darba mērķis ir uzrakstīt meklēšanas tīmekļa aplikāciju Ruby programmēšanas valodā.

Ņemot vērā iepriekš minēto, var izvirzīt šādus mērķus:

Ievads informācijas meklēšanas algoritmos

Meklēšanas tīmekļa lietojumprogrammas rakstīšana

Nospraustie mērķi tiek sasniegti, veicot uzdevumus:

Meklēšanas teorijas izpēte

Ruby programmēšanas valodas apguve

Ievads Haml iezīmēšanas valodā

Iepazīstinām ar Sass metavalodu

Izmantojot Ruby, Haml un Sass, kodējiet tīmekļa lietojumprogrammu

Atkļūdojiet iegūto lietojumprogrammu

Teorētiskā daļa

Informācijas izguves teorija

Pirmkārt, jums ir jādefinē meklētājprogramma.

Meklēšanas sistēma - programmatūras un aparatūras komplekss ar tīmekļa saskarni, kas nodrošina iespēju meklēt informāciju internetā.

Pamatojoties uz funkcijām, ko tās veic, un uzdevumiem, ko tās risina, meklētājprogrammas tiek klasificētas:

atsauces informācija ir visizplatītākais informācijas sistēmu funkcijas veids, un tā sastāv no sistēmas abonentu nodrošināšanas ar iespēju iegūt instalācijas datus noteiktām objektu klasēm;

Meklētājprogrammas ir visizplatītākā informācijas sistēmu klase. Kopumā to var uzskatīt par noteiktu informācijas telpu, kas definēta kā priekšmeta jomas informatīvi loģisks apraksts);

aprēķināts Sistēmas funkcija ir apstrādāt sistēmā esošo informāciju pēc noteiktiem aprēķinu algoritmiem dažādiem mērķiem.

Pēc saglabātās informācijas loģiskās organizācijas nodrošināšanas būtības meklēšanas sistēmas tiek iedalītas faktiskajā, dokumentālajā un ģeoinformācijā.

Tādējādi faktiskās meklētājprogrammas uzkrāj un glabā datus vairāku viena vai vairāku veidu strukturālo elementu gadījumu veidā. Katrs no šiem strukturālo elementu gadījumiem vai kāda to kombinācija atspoguļo informāciju par kādu faktu vai notikumu. Katra veida informācijas objekta struktūra sastāv no ierobežota detaļu kopuma, kas atspoguļo galvenos informācijas aspektus un raksturlielumus objektiem noteiktā tematiskajā jomā.

Dokumentu meklēšanas sistēmās viens informācijas elements ir dokuments, kas nav sadalīts mazākos elementos, un informācija, kad tā tiek ievadīta, parasti nav strukturēta vai ir strukturēta ierobežotā formā. Ievadītajam dokumentam var iestatīt dažas formalizētas pozīcijas - izgatavošanas datums, mākslinieks, priekšmets. Atsevišķu veidu dokumentālās informācijas sistēmas nodrošina loģisku attiecību nodibināšanu starp ievadītajiem dokumentiem - subordināciju semantiskā saturā.

Ģeoinformācijas datos dati tiek organizēti atsevišķu informācijas objektu veidā, kas saistīti ar vienotu elektronisko topogrāfisko bāzi. Ģeogrāfiskās informācijas sistēmas tiek izmantotas informācijas atbalstam tajās priekšmetu jomās, informācijas objektu struktūrā un procesos, kuros ir ģeogrāfiska sastāvdaļa.

Ir arī šāda meklētājprogrammu klasifikācija (1. att.)

1. att. Meklētājprogrammu klasifikācija

Runājot par meklētājprogrammām, ir vērts pieminēt meklēšanas vaicājumu teoriju un to klasifikāciju. Tātad 1949. gadā filoloģijas profesors no Hārvardas aprakstīja dažas informācijas iegūšanas iezīmes.

Profesors Zipfs pamanīja, ka gari vārdi jebkuras valodas tekstos sastopami retāk nekā īsi. Pamatojoties uz šo novērojumu, Zipf atvasināja divus likumus:

Pirmais likums savieno vārda sastopamības (rašanās) biežumu ar šīs frekvences rangu. Visbiežāk sastopamajiem vārdiem tiek piešķirts rangs, kas vienāds ar vienu. Tie vārdi, kas ir retāk sastopami - rangs vienāds ar diviem utt. Zipfs atklāja, ka vārda biežuma un tā ranga reizinājums ir konstante.

Šo atkarību parasti attēlo hiperbola. Zipf konstantes vērtība dažādām valodām ir atšķirīga, bet vienas valodu grupas ietvaros tā paliek nemainīga. Krievu valodai konstante ir aptuveni 0,06-0,07.

Zipfs konstatēja, ka vārdu sastopamības biežums un tekstā iekļauto vārdu skaits ar noteiktu biežumu ir arī savstarpēji saistīti.

No vienas puses, iegūtā līkne saglabās savus parametrus visiem tekstiem vienā valodā. No otras puses, neatkarīgi no tā, kādā valodā teksts ir rakstīts, Zipf līknes forma paliks nemainīga. Atšķirsies tikai koeficienti.

Zipf likumi ir universāli. Tie attiecas ne tikai uz tekstiem. Piemēram, attiecības starp pilsētu skaitu un tajās dzīvojošo iedzīvotāju skaitu izpaužas līdzīgi. Interneta resursu popularitātes raksturojums atbilst Zipf likumiem. Zipf likumi atspoguļo objektu “cilvēcisko” izcelsmi.

Jebkurā gadījumā katru meklēšanas vaicājumu var klasificēt pēc trim pazīmēm: vaicājuma garums, vaicājuma skaidrība, meklēšanas stadija.

Tātad, atkarībā no garuma, visi pieprasījumi tiek sadalīti

Viens vārds (“reklāma”)

Divu vārdu (“meklētājprogrammas veicināšana”

Trīs vārdi (“profesionālās meklētājprogrammas veicināšana”)

Daudzrunīgs (“profesionāla meklētājprogrammu reklamēšana lēti”)

Skaidrības labad visi pieprasījumi ir sadalīti:

Skaidrs pieprasījums (“cena iPad 2”

Izplūdušais vaicājums (“Ozons”, kas varētu būt gāze un veikala nosaukums un direktora vārds)

Saskaņā ar meklēšanas posmu visi pieprasījumi ir sadalīti:

Problēmas apzināšanās (“vietne nedarbojas”)

Risinājuma atrašana (“vietnes mitināšana”)

Risinājuma izvēle (“kuru hostingu izvēlēties”)

Darījuma vietas atrašana (“masterhost hostinga tarifi”)

RUBY programmēšanas valoda

Ruby ir dinamiska, atspoguļojoša, interpretēta, augsta līmeņa programmēšanas valoda ātrai un vienkāršai objektorientētai programmēšanai. Valodai ir no operētājsistēmas neatkarīga daudzpavedienu ieviešana, spēcīga dinamiskā rakstīšana, atkritumu savācējs un daudzas citas funkcijas. Ruby sintakse ir tuvu Perl un Eiffel valodām, un objektorientētā pieeja ir Smalltalk. Arī dažas valodas funkcijas ir ņemtas no Python, Lisp, Dylan un Clu. Mūsdienās Ruby tulks ir ieviests gandrīz visās platformās (Unix, Win32, OS X). Valodas radītājs ir Yukihiro Matsumoto.

Ruby ir pilnībā uz objektu orientēta programmēšanas valoda. Viss ir objekti, un funkcijas ir šo objektu metodes.

Rubīna galvenās īpašības:

Interpretētā valoda:

Tiešo sistēmas zvanu iespēja.

Spēcīgs atbalsts operācijām ar virknēm un noteikumiem (regulārās izteiksmes).

Tūlītēja izmaiņu izpausme attīstības laikā.

Nav kompilācijas stadijas.

Vienkārša un ātra programmēšana:

Nav nepieciešams deklarēt mainīgos.

Mainīgie tiek dinamiski ievadīti.

Vienkārša un konsekventa sintakse.

Automātiska RAM pārvaldība.

Objektorientētā programmēšana:

Viss ir objekts. Pat klases nosaukums ir klases klases gadījums.

Klases, metodes, mantošana, polimorfisms, iekapsulēšana un tā tālāk.

Atsevišķas metodes.

Mixins, izmantojot moduļus (iespēja paplašināt klasi bez mantojuma);

Iteratori un slēgšanas.

Plašas metaprogrammēšanas iespējas.

Ērtības:

Neierobežots veselu skaitļu vērtību diapazons.

Izņēmuma apstrādes modelis.

Visi operatori atgriež vērtības, pat vadības struktūras.

Izņēmuma ķeršanas mehānisms.

Straumes atbalsts; gan vietējās, gan UNIX saimes sistēmas.

Trūkumi:

Dažu procesu nekontrolējamība (piemēram, atmiņas piešķiršana), nespēja definēt zema līmeņa datu struktūras vai apakšprogrammas;

Programmas kompilācijas un ar to saistītās optimizācijas neiespējamība;

Atvērts pirmkods pat gatavā programmā

Pirmo divu trūkumu sekas ir ļoti zemais programmu palaišanas un izpildes ātrums.

Ir arī vērts atzīmēt, ka Ruby ir daudz moduļu (papildinājumu) gandrīz jebkura veida uzdevumiem (interfeisa programmēšana, sarežģīti matemātiski aprēķini, darbs ar audio, video, 3D utt.). Tāpēc šī programmēšanas valoda tika izvēlēta kā galvenā praktiskās daļas rakstīšanai.

1.3. Vienkāršota iezīmēšanas valoda HAML

Haml ir iezīmēšanas valoda vienkāršotai XHTML ģenerēšanai. HAML kompilē uz HTML. Haml ir daudz vienkāršāks par HTML, jo tas ļauj vienkāršot un paātrināt tīmekļa lietojumprogrammu rakstīšanu.

Piemēram, šī koda daļa ir Haml

%html( html_attrs("ru") )

%title Mans emuārs

%meta(http-equiv="Content-Type" content="text/html; charset=utf-8")

Stylesheet_link_tag "galvenā"

%h1 Mans emuārs

%h2 Ieraksti

- @entries.each veic |ierakstu|

%h3.title= ieraksts.nosaukums

%p.date= entry.posted.strftime("%A, %B %d, %Y")

%p.body= entry.body

Visas tiesības aizsargātas © Ivan

HTML kods tiek pārveidots

Mans emuārs

Tops