Ruby за начинаещи: какво е интересното в този език и как да го научите ефективно. Какво е Ruby? Езикът за програмиране Ruby Ruby е това, за което се използва

В момента има огромен брой езици за програмиране, всеки от които има свои собствени характеристики и модели. Тази статия ще се съсредоточи върху един от тях.

История на езика Ruby

Ruby съществува от дълго време като език за програмиране. Работата по първото издание на този невероятно популярен език днес започва през 1993 г., а първата официална версия датира от 1995 г. Създателят на езика, Юкихиро Мацумото, е ентусиаст по програмиране от студентските си дни, но идеята за създаване на собствен инструмент се появява много по-късно. И така, какво е толкова забележително в този език за програмиране, че днес той заема една от водещите позиции на световната арена за разработка на софтуер?

Езикът за програмиране Ruby е високо ниво, независима по време на изпълнение реализация на многонишковост. Той има собствен колектор за боклук и по отношение на синтаксиса е най-близък до езици като Perl. С развитието на екосистемата тази платформа също заимства много от Smalltalk, Python, Lisp и други езици за програмиране. Също така е много важно за съществуването и непрекъснатото развитие, че езикът Ruby и неговата реализация са напълно безплатни. Това означава, че всеки може да предложи своите промени и ако те бъдат приети от общността, те ще бъдат включени в следващата версия на езика.

Рубин философия

Когато създава своето дете, Мацумото, като всеотдаен фен и ентусиаст на обектно-ориентираното програмиране, създава определена философия за програмисти, които искат да овладеят неговия език. По този начин езикът за програмиране Ruby е предназначен да създава прости, но разбираеми приложения. Ruby се фокусира не върху скоростта на програмата, а върху простотата и четливостта на кода.

Ето защо тази платформа много често се избира като вход за обучение по програмиране. Основният принцип, на който се основава този език, е т. нар. принцип на "най-малкото изненада" - това означава, че програмата трябва да се държи така, както авторът (програмистът) очаква от нея. Друга важна част от идеологията на езика, която създателят въвежда, е неговата голяма вариабилност. Един и същ резултат може да се постигне по различни начини и функции. Благодарение на това всеки програмист може да реши проблема по начина, който смята за най-правилен и удобен. Това до голяма степен повлия на популярността на езика сред ИТ специалистите.

Основни характеристики на езика

Какво е Ruby като език за програмиране? Това е преди всичко обектно-ориентиран език. В него няма примитивни типове - всички структури и единици данни са обекти (за разлика от същия език Java, той има примитивни структури от данни). Всяка функция в Ruby е метод. Много свойства и възможности бяха въведени от създатели от други езици за програмиране, така че можем спокойно да кажем, че Ruby (езиците) е погълнал най-доброто от много други езици и технологии.

Така например екосистемата Ruby има свой собствен колектор за боклук, идеята за който е взета от Smalltalk и Java и който може да работи с всички обекти в системата. Този механизъм позволява незабелязано от потребителя и разработчика на приложението да изчисти паметта от обекти, които вече няма да са необходими. Колекторът за боклук позволява на разработчика в повечето случаи да не се разсейва от управлението на паметта на приложението, а да се съсредоточи върху функционалността и използваемостта.

Парадигми на езика

Отговаряйки на въпроса какво е „Ruby“ като мултипарадигмен език, човек неочаквано може да се окаже в разгара на спор. В крайна сметка този език ви позволява да използвате една от парадигмите за програмиране еднакво успешно: процедурен стил на програмиране, обектно-ориентиран или. Разработчикът е свободен да избере за себе си парадигмата, която е по-близка до него, и неговият набор от инструменти няма да стане по-ограничени или по-слаби от това. Езикът за програмиране Ruby насърчава този избор.

Причини за популярност

В много отношения този език стана популярен поради лекотата на разработване на различни допълнения към него. Следователно броят на рамки и библиотеки непрекъснато нараства, а задачите, които те решават сами, позволяват на разработчиците да приведат продукта в състояние на готовност възможно най-скоро. Много често "Ruby" програмирането се свързва с разработването на уеб приложения и поддръжката на функционирането на различни сайтове и интернет платформи. Езикът зае тази ниша поради своята простота и скорост на развитие. В крайна сметка алтернативните платформи (например Java) изискват много повече знания и опит за решаване на същите проблеми.

Популярни рамки

Ако говорим за популярни рамки, които съществуват на пазара днес, тогава Rails си струва да се подчертае. Много хора, когато отговарят на въпроса какво е "Ruby", интуитивно имат предвид RubyOnRails. Този набор от софтуерни компоненти се превърна в индустриален стандарт сред разработчиците. Той непрекъснато се поддържа, развива и допълва от общността на програмистите, като остава безплатен. Тази рамка описва компонентите на уеб приложение в рамките на модела MVC (Model-View-Controller), а също така предоставя готова интеграция и интерфейс за достъп до базата данни. Тези 3 компонента всъщност ви позволяват да напишете и стартирате обикновен блог или частна уеб страница в Интернет за броени часове.

Можете дори да създавате родни мобилни приложения на езика за програмиране Ruby благодарение на библиотеката RubyMotion. Позволява ви да изпълнявате Ruby код на платформи iOS, OS X и Android. Той е създаден от частна група разработчици, така че трябва да платите, за да го използвате, но това още веднъж потвърждава богатите възможности на езика.

Значението на писането на тестове

Друга важна част от екосистемата Ruby и нейната уеб-ориентирана част са рамки и библиотеки за писане на тестове. RubyOnRails следва философията на BDD (управлявано от поведението развитие), което означава, че програмистът първо създава серия от тестове, описващи очакваното поведение на програмата, и след това създава кода, който трябва да премине тези тестове. Негласният стандарт в тази област е RSpec - тази рамка ви позволява да пишете тестови случаи по разбираем начин, дори и за неопитни потребители на разработка.

Рубинени скъпоценни камъни

Благодарение на подробен стандарт, към който трябва да се придържат всички пакети и библиотеки на Ruby, разработването на добавки е лесно. Следователно сред така наречените скъпоценни камъни (от английски - скъпоценен камък) можете да намерите модули за решаване на почти всеки проблем - от интеграция със социални мрежи и услуги на трети страни до готови платформи за електронна търговия. Всичко, от което се нуждаете, за да използвате библиотека на трета страна, е да опишете зависимостта на вашия проект от някаква библиотека, разположена в отдалечено или локално хранилище, и при следващата компилация тази библиотека ще бъде автоматично заредена в приложението. Освен това улеснява мигрирането на проект между разработчиците, тъй като не е необходимо ръчно споделяне на зависимости за изграждане на проект.

Ето защо, ако отново бъдете попитани какво е „Ruby“, тогава можете с увереност да декларирате, че това е мощен и гъвкав език за програмиране, който със сигурност е подходящ както за опитни разработчици, така и за начинаещи, които искат да овладеят трудния занаят на програмиране. Той разполага с инструментите за изграждане на всичко от настолни програми до мобилни услуги и уеб платформи.

Език за програмиране Rubyе чисто обектно-ориентиран език за програмиране, първоначално разработен за скриптове. Той комбинира синтаксис, който е погълнал Ada и Perl и Smalltalk обектно-ориентирани функции, а също така споделя прилики с Python, Lisp и помощната програма на командния ред - плюс при изучаване на основите на програмирането.
Езикът за програмиране Ruby в момента има само една реализация на интерпретатора на Ruby, въпреки че се полагат усилия за внедряване на интерфейс на Ruby (наречен "Cardinal") за виртуалната машина Parrot.
Езикът за програмиране Ruby има много полезни функции. Ruby също така поддържа претоварване на оператори и обработка на изключения. Понастоящем езикът за програмиране Ruby няма поддръжка на Unicode. Ruby има итератори (които приличат на CLU и Sather). Ruby поддържа абстрактни представяния на функции (както Smalltalk и много функционални езици за програмиране за начинаещи). Ruby има вградена синтактична поддръжка за регулярни изрази на Perl на езиково ниво (не само в библиотеки като в Python и много други езици). Ruby поддържа автоматично събиране на боклука и динамична библиотека за зареждане/свързване на модули (в зависимост от архитектурата) на Microsoft Windows. Ruby е пренесен на много платформи, включително Unix, Microsoft Windows, DOS, Mac OS X, OS / 2, Amiga и др.
Ruby е чисто обектно-ориентиран: всеки бит от обектни данни, включително типове, които са дефинирани като "примитивни" в други езици. Всяка функция е метод. Това е подобно на Smalltalk, но фундаментално различно от Java и Python. Всяко име на стойност (име на променлива) в Ruby програма дефинира препратка към обект, а не самия обект. Ruby поддържа наследени методи за динамично изпращане, Mixins и Singleton. Ruby не поддържа множествено наследяване, но класовете могат да импортират модули. Въпреки че можете да използвате процедурен синтаксис в Ruby, всичко в Ruby е обекти в смисъла на Smalltalk, а не програмиране на Perl или Python за манекени.
Езикът е създаден от Юкихиро Мацумото (известен още като "Matz") Юкихиро Мацумото (известен още като "Matz") на 24 февруари 1993 г. Текущата стабилна версия е 1.8.0. Обърнете внимание, че името не е акроним - всъщност е игра на думи, като Perl. Според автора, Ruby е предназначен за принципа на най-малкото удивление (POLS), което означава, че езикът трябва да е без капани и несъответствия, които пречат на другите езици.
От Ruby FAQ: Ако харесвате Perl, тогава ще се чувствате страхотно, като използвате Ruby поради неговия синтаксис. Ако харесвате Smalltalk, ще харесате Ruby и неговата семантика. Ако харесвате Python, може или не може да почувствате огромната разлика във философията на дизайна между Python и Ruby / Perl.
Ruby е безплатен и с отворен код под GPL или Artistic License, точно като Perl.

Примери за
Ето няколко примера за Ruby код:

>> -199.abs # номер -199 е обект; за това е извикан методът ABS. => 199 >> "Ruby is cool" .length # метод на String обект, наречен - дължина на низ => 13 >> "Rick" .index ("c") => 2 >> "John" .swapcase => "jOHN " >> #Масиви?> .Sort => >> .sort.reverse => # следващият блок от код ще се изпълнява 10 пъти 10 пъти (# Заменете "" с "," и съхранявайте в string1 string1 = "Здравей свят " .gsub ( "", ",") # добавя "!" към променлива "string1" string1 + = "!" # отпечатва променлива "string1", последвано от нов ред, поставя string1)

Как да станете професионалист в разработването на уебсайтове и да започнете да печелите пари? Евтини видео курсове с въвеждащо въведение.

Въведение

Днес търсачката е един от най-широко използваните методи за навигация във виртуалното пространство, който се разраства и разширява всеки ден от своето съществуване. Ясно е, че алгоритмите за извличане на информация трябва постоянно да увеличават своята сложност и ефективност. Целта на тази работа не е да опише алгоритми за намиране на информация, а просто да даде въвеждащо описание за тях. Също така, целта на тази работа е да се напише уеб приложение за търсене на езика за програмиране Ruby.

Като се има предвид горното, могат да се формират следните цели:

Запознаване с алгоритми за извличане на информация

Писане на приложение за търсене в мрежата

Целите се изпълняват с помощта на задачи:

Изследване на теорията за търсене

Изучаване на езика за програмиране Ruby

Запознаване с езика за маркиране на Haml

Въведение в метаезика Sass

Използване на Ruby, Haml и Sass за писане на код на уеб приложение

Отстранете грешките в полученото приложение

Теоретична част

Теория за извличане на информация

Първо трябва да дефинирате търсачка.

Система за търсене -софтуерно-хардуерен комплекс с уеб интерфейс, който дава възможност за търсене на информация в Интернет.

Според изпълняваните функции и задачите, които трябва да се решават, търсачките се класифицират на:

справочните са най-често срещаният тип функции на информационните системи и се състои в предоставяне на абонатите на системата на възможност да получат инсталационни данни за определени класове обекти;

търсачките са най-разпространеният клас информационни системи. Най-общо формата може да се разглежда като някакво информационно пространство, конкретизирано от гледна точка на информационно-логическото описание на предметната област);

изчислено. Функцията на системата е да обработва информацията в системата по определени изчислителни алгоритми за различни цели.

По естеството на предоставянето на логическа организация на съхраняваната информация търсачките се делят на фактически, документални и геоинформационни.

Така че фактическите търсачки натрупват и съхраняват данни под формата на множество екземпляри на един или повече видове структурни елементи. Всеки от тези екземпляри на структурни елементи или част от тяхната съвкупност отразяват информация за някакъв факт, събитие. Структурата на всеки тип информационен обект се състои от краен набор от атрибути, които отразяват основните аспекти и характеристики на информацията за обекти от дадена предметна област.

В документалните търсачки една част от информацията е документ, който не е разделен на по-малки елементи и информацията, когато е въведена, обикновено не е структурирана или структурирана по ограничен начин. За въведения документ могат да се установят някои формализирани позиции – дата на производство, изпълнител, предмет. Някои видове документални информационни системи предвиждат установяване на логическа връзка между въведените документи – подчинение по семантично съдържание.

Геоинформационните данни са организирани под формата на отделни информационни обекти, обвързани с обща електронна топографска основа. Географските информационни системи се използват за информационна поддръжка в онези предметни области, структурата на информационните обекти и процеси, в които има географски компонент.

Съществува и следната класификация на търсачките (фиг. 1.)

Фиг. 1. Класификация на търсачките

Говорейки за търсачките, си струва да споменем теорията на заявките за търсене и тяхната класификация. Така през 1949 г. професор по филология от Харвард описва някои от характеристиките на извличането на информация.

Професор Ципф забеляза, че дългите думи са по-рядко срещани в текстове на всеки език, отколкото кратките. Въз основа на това наблюдение Ципф извежда два закона:

Първият закон свързва честотата на появяване (възникване) на дадена дума с ранга на тази честота. На най-често срещаните думи се присвоява ранг, равен на единица. Тези думи, които са по-рядко срещани - ранг, равен на две и т.н. Ципф установи, че произведението на честотата на срещане на думата и нейния ранг е константа.

Тази зависимост обикновено се показва като хипербола. Значението на константата на Zipf е различно за различните езици, но в рамките на една езикова група остава непроменено. За руския език константата е приблизително 0,06-0,07.

Zipf установи, че честотата на срещане на думите и броят на думите, включени в текста с дадена честота, също са взаимосвързани.

От една страна, получената крива ще запази своите параметри за всички текстове в рамките на един език. От друга страна, независимо на какъв език е написан текстът, формата на Zipf кривата ще остане непроменена. Ще се различават само коефициентите.

Законите на Zipf са универсални. Те се отнасят не само за текстове. Например връзката между броя на градовете и броя на жителите, живеещи в тях, приема подобна форма. Характеристиките на популярността на интернет ресурсите отговарят на законите на Zipf. Законите на Ципф отразяват "човешкия" произход на обектите.

Във всеки случай всяка заявка за търсене може да бъде класифицирана според три характеристики: дължина на заявката, яснота на заявката и етап на търсене.

И така, според дължината, всички заявки са разделени на

Една дума ("промоция")

Две думи ("промоция в търсачката"

Три думи („промоция на професионална търсачка“)

Подробно („промоцията на професионалната търсачка е евтина“)

По отношение на яснотата всички искания са разделени на:

Ясна заявка („цена за iPad 2“)

Размита заявка („Озон“, която може да бъде както газ, така и името на магазина и името на директора)

Според етапа на търсене всички заявки са разделени на:

Осъзнаване на проблема („сайтът не работи“)

Намиране на решение („хостинг сайтове“)

Избор на решение ("кой хостинг да избера")

Намиране на местоположението на транзакцията („мастърхост на тарифите за хостинг“)

Езикът за програмиране RUBY

Ruby е динамичен, отразяващ, интерпретиран език за програмиране на високо ниво за бързо и лесно обектно-ориентирано програмиране. Езикът има независима от ОС многонишкова реализация, силно динамично въвеждане, събирач на боклук и много други функции. Ruby е близък по синтаксис до езиците Perl и Eiffel, в обектно-ориентиран подход към Smalltalk. Също така, някои характеристики на езика са взети от Python, Lisp, Dylan и Clu. Днес интерпретаторът Ruby е внедрен за почти всички платформи (Unix, Win32, OS X). Създателят на езика е Юкихиро Мацумото.

Ruby е напълно обектно-ориентиран език за програмиране. Всичко е обекти, а функциите са методи на тези обекти.

Основни характеристики на Ruby:

Преведен език:

Възможност за директни системни повиквания.

Мощна поддръжка за операции с низове и правила (регулярни изрази).

Мигновено проявление на промените по време на развитието.

Няма етап на компилация.

Лесно и бързо програмиране:

Не е нужно да декларирате променливи.

Променливите се въвеждат динамично.

Прост и последователен синтаксис.

Автоматично управление на паметта.

Обектно-ориентирано програмиране:

Всичко е обект. Дори името на класа е екземпляр на класа Class.

Класове, методи, наследяване, полиморфизъм, капсулиране и т.н.

Самотни методи.

Миксини, използващи модули (способност за разширяване на клас без наследяване);

Итератори и затваряния.

Широки възможности за метапрограмиране.

Съоръжения:

Неограничен диапазон от цели числа.

Модел за обработка на изключения.

Всички оператори връщат стойности, дори структури за управление.

Механизмът за улавяне на изключения.

Поддръжка за поточно предаване; както техните собствени, така и системи от семейството на UNIX.

недостатъци:

Неконтролируемост на някои процеси (като разпределяне на паметта), невъзможност за посочване на структури от данни на ниско ниво или подпрограми;

Невъзможността за компилиране и съпътстващата оптимизация на програмата;

Отворен изходен код дори в завършена програма

Последствието от първите два недостатъка е много ниската скорост на стартиране и изпълнение на програми.

Заслужава да се отбележи също, че за Ruby има много модули (добавки) за почти всякакъв вид задачи (интерфейси за програмиране, сложни математически изчисления, работа с аудио, видео, 3D и т.н.). Затова този език за програмиране беше избран като основен за писане на практическата част.

1.3. Опростен език за маркиране HAML

Haml е език за маркиране за олекотено генериране на XHTML. HAML се компилира в HTML. Haml е много по-прост от Html "" и ви позволява да опростите и ускорите писането на уеб приложения.

Например, тази част от кода на Haml "e

% html (html_attrs ("ru"))

% заглавие Моят блог

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

Stylesheet_link_tag "main"

% h1 Моят блог

% h2 публикации

- @ entries.each do | запис |

% h3.title = запис.заглавие

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

% p.body = запис.тяло

Всички права запазени © Иван

Html-кодът се трансформира

Моят блог