Çfarë është "Ruby"? Gjuha e programimit Ruby. Ruby për fillestarët: pse kjo gjuhë është interesante dhe si ta mësoni atë në mënyrë efektive

Për momentin, ekziston një numër i madh i gjuhëve programuese, secila prej të cilave ka karakteristikat dhe modelet e veta. Ky artikull do të diskutojë një prej tyre.

Historia e gjuhës rubin

Ruby si gjuhë programimi ka ekzistuar për një kohë shumë të gjatë. Puna në botimin e parë të kësaj gjuhe tepër popullore filloi në vitin 1993, dhe versioni i parë zyrtar daton në 1995. Krijuesi i gjuhës, Yukihiro Matsumoto, ka qenë një entuziast programimi që në ditët e tij studentore, por ideja për të krijuar veglën e tij i erdhi shumë më vonë. Pra, çfarë është kaq e jashtëzakonshme në lidhje me këtë gjuhë programimi që sot ajo zë një nga pozicionet kryesore në arenën globale të zhvillimit të softuerit?

Gjuha e programimit Ruby është një zbatim i nivelit të lartë, i pavarur nga koha e ekzekutimit, i multithreading. Ajo ka grumbulluesin e vet të mbeturinave, dhe për nga sintaksa është më afër gjuhëve të tilla si Perl. Ndërsa ekosistemi evoluoi, kjo platformë gjithashtu huazoi shumë nga Smalltalk, Python, Lisp dhe gjuhë të tjera programimi. Është gjithashtu shumë e rëndësishme për ekzistencën dhe zhvillimin e vazhdueshëm që gjuha Ruby dhe zbatimi i saj të jenë plotësisht falas. Kjo do të thotë se çdokush mund të propozojë ndryshime, dhe nëse ato pranohen nga komuniteti, ato do të përfshihen në versionin tjetër të gjuhës.

Filozofia e Rubinit

Kur krijoi idenë e tij, Matsumoto, si një tifoz i përkushtuar dhe entuziast i programimit të orientuar nga objekti, krijoi një filozofi të caktuar për programuesit që duan të zotërojnë gjuhën e tij. Kështu, gjuha e programimit Ruby është krijuar për të krijuar aplikacione të thjeshta, por të kuptueshme. Theksi kryesor i Ruby nuk është në shpejtësinë e programit, por në thjeshtësinë dhe lexueshmërinë e kodit.

Prandaj, kjo platformë zgjidhet shumë shpesh si një input për mësimin e programimit. Parimi kryesor mbi të cilin bazohet kjo gjuhë është i ashtuquajturi parimi i "surprizës më të vogël" - kjo do të thotë që programi duhet të sillet ashtu siç pret autori (programuesi) prej tij. Një pjesë tjetër e rëndësishme e ideologjisë gjuhësore që prezantoi krijuesi është ndryshueshmëria e saj e madhe. I njëjti rezultat mund të arrihet në mënyra dhe funksione të ndryshme. Falë kësaj, çdo programues mund të zgjidhë një problem në mënyrën që ai e konsideron më të saktë dhe të përshtatshëm. Kjo ka ndikuar shumë në popullaritetin e gjuhës në mesin e profesionistëve të teknologjisë së informacionit.

Karakteristikat kryesore të gjuhës

Çfarë është Ruby si gjuhë programimi? Ajo është kryesisht një gjuhë e orientuar nga objekti. Nuk ka lloje primitive në të - të gjitha strukturat dhe njësitë e të dhënave janë objekte (ndryshe nga gjuha Java, ajo ka struktura primitive të të dhënave). Çdo funksion në Ruby është një metodë. Shumë veti dhe aftësi u prezantuan nga krijuesit nga gjuhë të tjera programimi, kështu që mund të themi me siguri se Ruby (gjuha) ka thithur më të mirën nga shumë gjuhë dhe teknologji të tjera.

Kështu, për shembull, ekosistemi Ruby ka kolektorin e tij të plehrave, ideja e të cilit u miratua nga Smalltalk dhe Java, dhe i cili mund të funksionojë me të gjitha objektet në sistem. Ky mekanizëm ju lejon që pa u vënë re përdoruesi dhe zhvilluesi i aplikacionit të pastrojnë kujtesën nga objektet që nuk do të nevojiten më. Mbledhësi i mbeturinave i lejon zhvilluesit, në shumicën e rasteve, të mos shpërqendrohet duke menaxhuar kujtesën e aplikacionit, por të fokusohet në funksionalitetin dhe përdorshmërinë.

Paradigmat e gjuhës

Kur i përgjigjeni pyetjes se çfarë është Ruby si një gjuhë me shumë paradigma, mund të gjendeni papritur në vapën e një argumenti. Në fund të fundit, kjo gjuhë ju lejon të përdorni një nga paradigmat e programimit në mënyrë të barabartë me sukses: stili i programimit procedural, i orientuar nga objekti ose Zhvilluesi është i lirë të zgjedhë vetë paradigmën që është më afër tij, dhe grupi i tij i mjeteve nuk do të bëhet më. të kufizuara ose më të dobëta nga kjo. Gjuha e programimit Ruby vetëm inkurajon këtë zgjedhje.

Arsyet e popullaritetit

Në shumë mënyra, kjo gjuhë është bërë e njohur për shkak të lehtësisë së zhvillimit të shtesave të ndryshme në të. Prandaj, numri i kornizave dhe bibliotekave po rritet vazhdimisht, dhe detyrat që ata zgjidhin në mënyrë të pavarur u lejojnë zhvilluesve të sjellin produktin në një gjendje gatishmërie në kohën më të shkurtër të mundshme. Shumë shpesh, programimi Ruby shoqërohet me zhvillimin e aplikacioneve në internet dhe mbështetje për funksionimin e faqeve të ndryshme dhe platformave të internetit. Gjuha e zuri këtë vend për shkak të thjeshtësisë dhe shpejtësisë së saj të zhvillimit. Në fund të fundit, platformat alternative (për shembull, Java) kërkojnë shumë më tepër njohuri dhe përvojë për të zgjidhur të njëjtat probleme.

Kornizat popullore

Nëse flasim për korniza të njohura që ekzistojnë sot në treg, Rails vlen të theksohet midis tyre. Shumë njerëz, kur pyeten se çfarë është Ruby, mendojnë në mënyrë intuitive për RubyOnRails. Ky grup i komponentëve të softuerit është bërë standardi i industrisë midis zhvilluesve. Ai mbështetet, zhvillohet dhe plotësohet vazhdimisht nga komuniteti i programimit, duke mbetur i lirë. Ky kuadër përshkruan komponentët e një aplikacioni ueb brenda modelit MVC (Model-View-Controller), dhe gjithashtu ofron integrim të gatshëm me dhe ndërfaqe për të hyrë në bazën e të dhënave. Këta 3 komponentë, në fakt, ju lejojnë të shkruani dhe hapni një blog të thjeshtë ose një faqe interneti private në internet brenda disa orësh.

Madje mund të krijoni aplikacione celulare amtare në gjuhën e programimit Ruby, falë bibliotekës RubyMotion. Kjo ju lejon të ekzekutoni kodin Ruby në platformat iOS, OS X dhe Android. Është krijuar nga një grup privat zhvilluesish, kështu që duhet të paguash për ta përdorur, por tregon edhe një herë aftësitë e pasura të gjuhës.

Rëndësia e testeve me shkrim

Një komponent tjetër i rëndësishëm i ekosistemit të gjuhës Ruby, dhe pjesa e tij e orientuar në ueb, janë kornizat dhe bibliotekat për të shkruar teste. RubyOnRails promovon filozofinë e BDD (zhvillimi i drejtuar nga sjellja), që do të thotë se programuesi fillimisht krijon një sekuencë testesh që përshkruajnë sjelljen e pritur të programit dhe më pas krijon kodin që duhet t'i kalojë me sukses këto teste. Standardi i pashprehur në këtë fushë është RSpec - kjo kornizë ju lejon të shkruani rastet e testimit në një mënyrë që është e kuptueshme edhe për përdoruesit e papërvojë në zhvillim.

Gurë Kristali Rubin

Falë standardit të detajuar me të cilin duhet të përputhen të gjitha paketat dhe bibliotekat Ruby, zhvillimi i shtesave është i lehtë. Prandaj, midis të ashtuquajturave gurë të çmuar (nga anglishtja - gur i çmuar) mund të gjeni module për zgjidhjen e pothuajse çdo problemi - nga integrimi me rrjetet sociale dhe shërbimet e palëve të treta deri te platformat e gatshme për tregti elektronike. Gjithçka që ju nevojitet për të përdorur një bibliotekë të palëve të treta është të përshkruani varësinë e projektit tuaj nga një bibliotekë e vendosur në një depo të largët ose lokale, dhe herën tjetër që të ndërtoni, kjo bibliotekë do të ngarkohet automatikisht në aplikacion. Kjo gjithashtu e bën më të lehtë migrimin e një projekti midis zhvilluesve pasi nuk ka nevojë të ndani manualisht varësitë për të ndërtuar projektin.

Prandaj, nëse pyeteni përsëri se çfarë është Ruby, atëherë mund të thoni me siguri se është një gjuhë programimi e fuqishme dhe e gjithanshme që sigurisht do të jetë e përshtatshme si për zhvilluesit me përvojë ashtu edhe për fillestarët që duan të zotërojnë zanatin e vështirë të programimit. Ai përmban mjete për krijimin e çdo aplikacioni - nga programet e desktopit deri te shërbimet celulare dhe platformat e internetit.

Prezantimi

Sot, motori i kërkimit është një nga metodat më të përdorura të navigimit në hapësirën kibernetike, i cili po rritet dhe rritet çdo ditë të ekzistencës së tij. Është e qartë se algoritmet e kërkimit të informacionit duhet të rrisin vazhdimisht kompleksitetin dhe efikasitetin e tyre. Qëllimi i kësaj pune nuk është të përshkruajë algoritmet e marrjes së informacionit, por thjesht të japë një përshkrim hyrës të tyre. Gjithashtu, qëllimi i kësaj pune është të shkruhet një aplikacion ueb kërkimi në gjuhën e programimit Ruby.

Duke marrë parasysh sa më sipër, mund të formohen qëllimet e mëposhtme:

Hyrje në algoritmet e kërkimit të informacionit

Shkrimi i një aplikacioni në ueb kërkimi

Qëllimet e vendosura arrihen përmes detyrave:

Eksplorimi i teorisë së kërkimit

Mësimi i gjuhës së programimit Ruby

Hyrje në gjuhën e shënjimit Haml

Prezantimi i metagjuhës Sass

Duke përdorur Ruby, Haml dhe Sass, kodoni një aplikacion në internet

Debugoni aplikacionin që rezulton

Pjesa teorike

Teoria e marrjes së informacionit

Së pari, ju duhet të përcaktoni një motor kërkimi.

Sistemi i kërkimit - një kompleks softuerësh dhe harduerësh me një ndërfaqe ueb që ofron mundësinë e kërkimit të informacionit në internet.

Në bazë të funksioneve që kryejnë dhe detyrave që zgjidhin, motorët e kërkimit klasifikohen në:

informacioni i referencës është lloji më i zakonshëm i funksionit të sistemeve të informacionit dhe konsiston në sigurimin e abonentëve të sistemit me aftësinë për të marrë të dhëna instalimi për klasa të caktuara të objekteve;

Motorët e kërkimit janë klasa më e zakonshme e sistemeve të informacionit. Në përgjithësi, ai mund të konsiderohet si një hapësirë ​​e caktuar informacioni, e përcaktuar në termat e një përshkrimi informativo-logjik të fushës lëndore);

llogaritur Funksioni i sistemit është të përpunojë informacionin e vendosur në sistem sipas algoritmeve të caktuara llogaritëse për qëllime të ndryshme.

Nga natyra e sigurimit të një organizimi logjik të informacionit të ruajtur, sistemet e kërkimit ndahen në faktike, dokumentare dhe gjeoinformacione.

Kështu, motorët e kërkimit faktik grumbullojnë dhe ruajnë të dhëna në formën e shembujve të shumtë të një ose më shumë llojeve të elementeve strukturorë. Secila prej këtyre rasteve të elementeve strukturorë ose ndonjë kombinim i tyre pasqyron informacion mbi ndonjë fakt ose ngjarje. Struktura e secilit lloj objekti informacioni përbëhet nga një grup i kufizuar detajesh që pasqyrojnë aspektet dhe karakteristikat kryesore të informacionit për objektet në një fushë të caktuar lëndore.

Në sistemet e kërkimit të dokumenteve, një element i vetëm informacioni është një dokument që nuk ndahet në elementë më të vegjël, dhe informacioni kur futet, si rregull, nuk është i strukturuar ose është i strukturuar në një formë të kufizuar. Për dokumentin e futur, mund të vendosen disa pozicione të zyrtarizuara - data e prodhimit, artisti, subjekti. Disa lloje të sistemeve të informacionit dokumentar sigurojnë vendosjen e një marrëdhënie logjike midis dokumenteve të futura - nënshtrim në përmbajtjen semantike.

Në të dhënat gjeoinformative, të dhënat organizohen në formën e objekteve të veçanta informacioni të lidhura me një bazë të përbashkët topografike elektronike. Sistemet e informacionit gjeografik përdoren për mbështetjen e informacionit në ato fusha lëndore, strukturën e objekteve të informacionit dhe proceset në të cilat ekziston një komponent gjeografik.

Ekziston edhe klasifikimi i mëposhtëm i motorëve të kërkimit (Fig. 1.)

Fig.1. Klasifikimi i motorëve të kërkimit

Duke folur për motorët e kërkimit, vlen të përmendet teoria e pyetjeve të kërkimit dhe klasifikimi i tyre. Kështu, në vitin 1949, një profesor i filologjisë nga Harvardi përshkroi disa nga veçoritë e marrjes së informacionit.

Profesor Zipf vuri re se fjalët e gjata gjenden më rrallë në tekstet e çdo gjuhe sesa ato të shkurtra. Bazuar në këtë vëzhgim, Zipf nxori dy ligje:

Ligji i parë lidh shpeshtësinë e shfaqjes (ndodhjes) së një fjale me rangun e kësaj frekuence. Fjalëve që shfaqen më shpesh u caktohet një gradë e barabartë me një. Ato fjalë që janë më pak të zakonshme - renditen e barabartë me dy, etj. Zipf zbuloi se prodhimi i frekuencës së një fjale dhe renditjes së saj është një konstante.

Kjo varësi zakonisht përfaqësohet nga një hiperbolë. Vlera e konstantës së Zipf është e ndryshme për gjuhë të ndryshme, por brenda një grupi gjuhësor ajo mbetet e pandryshuar. Për gjuhën ruse, konstanta është afërsisht 0.06-0.07.

Zipf përcaktoi se shpeshtësia e shfaqjes së fjalëve dhe numri i fjalëve të përfshira në tekst me një frekuencë të caktuar janë gjithashtu të ndërlidhura.

Nga njëra anë, kurba që rezulton do të ruajë parametrat e saj për të gjitha tekstet brenda së njëjtës gjuhë. Nga ana tjetër, pavarësisht se në cilën gjuhë është shkruar teksti, forma e kurbës Zipf do të mbetet e pandryshuar. Vetëm koeficientët do të ndryshojnë.

Ligjet e Zipf janë universale. Ato zbatohen jo vetëm për tekstet. Për shembull, marrëdhënia midis numrit të qyteteve dhe numrit të banorëve që jetojnë në to merr një formë të ngjashme. Karakteristikat e popullaritetit të burimeve të Internetit korrespondojnë me ligjet e Zipf. Ligjet e Zipf pasqyrojnë origjinën "njerëzore" të objekteve.

Në çdo rast, çdo pyetje kërkimi mund të klasifikohet sipas tre karakteristikave: gjatësia e pyetjes, qartësia e pyetjes, faza e kërkimit.

Pra, sipas gjatësisë, të gjitha kërkesat ndahen në

Një fjalë ("promovim")

Dy fjalë ("promovimi i motorit të kërkimit"

Me tre fjalë ("promovim profesional i motorit të kërkimit")

Verbose ("promovimi profesional i motorit të kërkimit me çmim të lirë")

Për sa i përket qartësisë, të gjitha kërkesat ndahen në:

Një kërkesë e qartë ("çmimi për iPad 2")

Pyetje e paqartë ("Ozoni", që mund të jetë gaz dhe emri i dyqanit dhe emri i drejtorit)

Sipas fazës së kërkimit, të gjitha kërkesat ndahen në:

Ndërgjegjësimi për problemin ("faqja nuk funksionon")

Gjetja e një zgjidhjeje (“strehimi i faqes në internet”)

Zgjedhja e një zgjidhjeje ("cilin host për të zgjedhur")

Gjetja e vendndodhjes së transaksionit (“tarifat e hostit kryesor”)

Gjuha e programimit RUBY

Ruby është një gjuhë programimi dinamike, reflektuese, e interpretuar dhe e nivelit të lartë për programim të shpejtë dhe të lehtë të orientuar nga objekti. Gjuha ka një zbatim të pavarur nga sistemi operativ i multithreading, shtypje të fortë dinamike, një grumbullues mbeturinash dhe shumë veçori të tjera. Ruby është afër në veçoritë e saj sintaksore me gjuhët Perl dhe Eiffel, dhe në qasjen e orientuar nga objekti - me Smalltalk. Gjithashtu disa veçori të gjuhës janë marrë nga Python, Lisp, Dylan dhe Clu. Sot, interpretuesi Ruby zbatohet për pothuajse të gjitha platformat (Unix, Win32, OS X). Krijuesi i gjuhës është Yukihiro Matsumoto.

Ruby është një gjuhë programimi plotësisht e orientuar drejt objektit. Çdo gjë është objekt, dhe funksionet janë metoda të këtyre objekteve.

Karakteristikat themelore të Ruby:

Gjuha e interpretuar:

Mundësia e thirrjeve direkte të sistemit.

Mbështetje e fuqishme për operacionet me vargje dhe rregulla (shprehje të rregullta).

Manifestimi i menjëhershëm i ndryshimeve gjatë zhvillimit.

Asnjë fazë përpilimi.

Programim i thjeshtë dhe i shpejtë:

Nuk ka nevojë të deklarohen variabla.

Variablat shtypen në mënyrë dinamike.

Sintaksë e thjeshtë dhe e qëndrueshme.

Menaxhimi automatik i RAM-it.

Programimi i orientuar nga objekti:

Gjithçka është një objekt. Edhe emri i klasës është një shembull i klasës Class.

Klasat, metodat, trashëgimia, polimorfizmi, kapsulimi e kështu me radhë.

Metoda të vetme.

Përzierjet duke përdorur module (aftësia për të zgjeruar një klasë pa trashëgimi);

Iteratorët dhe mbylljet.

Aftësi të gjera metaprogramimi.

Objektet:

Gama e pakufizuar e vlerave të numrave të plotë.

Modeli i trajtimit me përjashtim.

Të gjithë operatorët kthejnë vlera, madje edhe strukturat e kontrollit.

Mekanizëm kapës me përjashtim.

Mbështetja e transmetimit; si sistemet amtare ashtu edhe ato të familjes UNIX.

Të metat:

Pakontrollueshmëria e disa proceseve (siç është shpërndarja e memories), pamundësia për të përcaktuar strukturat ose nënproceset e nivelit të ulët të të dhënave;

Pamundësia e përpilimit dhe optimizimit shoqërues të programit;

Kodi i hapur me burim edhe në një program të gatshëm

Pasoja e dy mangësive të para është shpejtësia shumë e ulët e nisjes dhe ekzekutimit të programeve.

Vlen gjithashtu të përmendet se për Ruby ka shumë module (shtesa) për pothuajse çdo lloj detyre (programimi i ndërfaqes, llogaritjet komplekse matematikore, puna me audio, video, 3D, etj.). Prandaj, kjo gjuhë programimi u zgjodh si kryesore për shkrimin e pjesës praktike.

1.3. Gjuha e thjeshtuar e shënimit HAML

Haml është një gjuhë shënjimi për gjenerimin e thjeshtuar të XHTML. HAML përpilohet në HTML. Haml është shumë më i thjeshtë se Html, pasi ju lejon të thjeshtoni dhe shpejtoni shkrimin e aplikacioneve në ueb.

Për shembull, kjo pjesë e kodit është në Haml

%html( html_attrs("ru") )

%title Blogu im

%meta(http-equiv="Lloji i përmbajtjes" content="text/html; charset=utf-8")

Stylesheet_link_etiketa "kryesore"

%h1 Blogu im

%h2 hyrje

- @entries.secili bëj |hyrje|

%h3.title= hyrje.titull

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

%p.body= hyrje.trup

Të gjitha të drejtat e rezervuara © Ivan

Kodi HTML është transformuar

Blogu im

Top