sonyps4.ru

Руби язык программирования что на нем пишут. Язык программирования Ruby

Это первая из статей, в которых я расскажу об особенностях Ruby и Ruby on Rails и поделюсь советами о том, с чего начать в изучении Ruby, где находить ответы на вопросы, как получить нужный опыт и чем вы сможете выгодно отличаться от других кандидатов. Буду рад, если мои советы помогут кому-то определиться со специализацией и выбрать Ruby для изучения и работы.

Основные особенности и отличия Ruby

Часто слышу вопрос: стоит ли учить Ruby? Как правило, вопрос основан на сомнениях: насколько легко найти работу с данной специализацией, будут ли интересные проекты и так далее и тому подобное. Ruby - современный, постоянно развивающийся язык программирования, областей применения ему - масса. Наверняка вы слышали про Chef, Vagrant, Homebrew, но чаще всего все мы слышим о Rails. Вот пост с комментарием самого автора фреймворка о том, почему стоит учить Rails.

Конечно, каждый сам для себя решает, какой инструмент ему использовать. И нет смысла бесконечно долго спорить о том, почему одна технология лучше другой. Я выбрал Ruby, потому что это невероятно выразительный и гибкий язык, который позволяет одну и ту же задачу решить многими способами.

Ruby - интерпретируемый, полностью объектно-ориентированный язык программирования с четкой динамической типизацией. Он сочетает в себе Perl-подобный синтаксис с объектно-ориентированным подходом. Также некоторые черты заимствованы из языков программирования Python, Lisp, Dylan и CLU. Кроссплатформенная реализация интерпретатора языка Ruby распространяется на условиях открытого программного обеспечения. Код, написанный на Ruby, может быть понятен даже человеку, который не разбирается в программировании. На RoR были созданы такие проекты, как Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb и другие.

С ростом Node.js популярность Ruby on Rails несколько уменьшилась, но технологические стартапы часто используют RoR благодаря простоте прототипирования. Ruby - 11-й самый популярный язык в индексе TIOBE .

Преимущества Ruby

  • Многочисленное и доброжелательное комьюнити.
  • Довольно высокий порог входа, что означает, что Ruby-разработчик с большой вероятностью имеет опыт работы как минимум с еще одним языком программирования.
  • Вы используете только те библиотеки и модули, которые необходимы.
  • Существует большое количество полезных библиотек, которые уже готовы к использованию (Ruby Gems).
  • В интернете есть много информации по Ruby, в структурированном и отсеянном виде.
  • В контексте обсуждения Ruby нельзя не упомянуть популярнейший фреймворк Ruby on Rails.

А теперь поговорим о некоторых преимуществах Ruby более подробно.

Скорость разработки

Одним из плюсов Ruby и фреймворка RoR считается скорость разработки. Личный опыт и опыт коллег показывает, что решение задач на Rails происходит в полтора раза быстрее по сравнению с другими фреймворками подобного плана. Ruby очень прост как инструмент, а также существует огромное количество готовых решений для различного рода задач.

Штатные средства кеширования данных

При разработке масштабного проекта одним из самых важных моментов является кеширование. Ruby on Rails в основной комплектации имеет штатные средства кеширования данных. То есть у вас сразу будут в наличии инструменты для кеширования данных на проекте, и вы можете легко кешировать отдельные блоки кода или даже целые страницы.

Вначале тесты, потом код

Часто в процессе разработки крупных проектов возникает вопрос о тестировании, и не редкость, когда нет дополнительных средств на отдельную команду тестировщиков. В Rails есть решение и этой проблемы. Если сравнивать RoR с другими фреймворками в контексте тестирования приложения, то вы найдете массу готовых решений для любого вида тестов, будь то интеграционные или юнит. Все эти библиотеки работают «из коробки». В идеале в проекте на Ruby on Rails код не пишется до тех пор, пока под него не написаны тесты. RoR идеология предполагает изначальное использование методов BDD (Behavior Driven Development) или TDD (Test Driven Development).

Общепринятые стандарты процесса разработки у Ruby-разработчиков

Говоря о преимуществах Ruby, я не могу снова не упомянуть сообщество рубистов. Оно постоянно растет, развивается и всегда готово прийти на помощь. Всегда есть кто-то, кто подскажет, как лучше решить проблему, поделится опытом в каком-либо вопросе.

Также очень важный момент - в Ruby-сообществе уже много лет есть стандарты процесса разработки, некие правила/соглашения сообщества, по которым ведется разработка, что очень сильно упрощает работу. За счет этих стандартов каждый проект очень структурируется, соответственно, новый разработчик в команде быстро войдет в курс дела и уже с первых дней работы сможет быть полезен. И даже больше: если проект начинала одна команда, а заканчивает другая - это тоже совсем не проблема. Поскольку разработка ведется по уже упомянутым правилам и соглашениям сообщества, новая команда быстро и без трудностей вникнет в проект и успешно его закончит без особых потерь времени.

Также в Ruby on rails есть большое количество самых разных готовых решений в открытом доступе. Большинство решений уже были реализованы кем-то до вас, а также протестированы сообществом, что уменьшает необходимость разработки с нуля. Это могут быть системы аутентификации, авторизации, комментирования, системы платежей, почтовые рассылки и так далее.

Готовые решения для многоязычности проекта

Rails в базовой комплектации имеет очень мощные средства для локализации проекта. Есть возможность как предусмотреть поддержку нескольких языков изначально, так и осуществить её позже. В проекте присутствуют специальные файлы для переводов терминов, инструменты для отображения шаблонов на разных языках и многое другое.

Высокий уровень защиты данных

Сейчас нередко в сети публикуются статьи о взломах различных ресурсов. Разработчики фреймворка Ruby on Rails очень серьезно отнеслись к проблеме защиты данных. В RoR изначально присутствует шифрование паролей, данных кредитных карт и других личных данных пользователя, также исключены SQL инъекции и XSS атаки. Все входные параметры экранируются по умолчанию.

Изучение Ruby

А теперь поговорим, как именно можно освоить Ruby.

Теория

Начать следует, конечно же, с литературы. Я рекомендую эти источники:

  • Ruby за 20 минут - хороший ресурс для совсем начинающих. Позволяет меньше, чем за полчаса ознакомиться с основными конструкциями языка и начать писать свои небольшие программы.
  • Codecademy - платформа с онлайн-курсами по множеству направлений, включая чистый Ruby и Rails. Здесь довольно интересно построен обучающий процесс, дается теоретический материал и сразу же практическое задание, чтобы его закрепить. Финальные задания платные, но и без них можно получить нужные навыки.
  • Материалы по Ruby и Rails - сборник ссылок на различные сайты и книги, посвященные изучению Ruby и Rails.
  • Отдельно могу посоветовать книгу Flanagan D., Matsumoto Y. «The Ruby Programming Language» . Она считается одной из лучших, её автор - сам создатель языка Ruby.
  • Google:)

Вот парочка ресурсов, с которых можно начать:

  • w3schools.com/sql - здесь можно почитать, попробовать и проверить свои знания по SQL.
  • quizful.net/test - тут можно найти вопросы, которые часто задают на собеседованиях.

Английский

Я считаю, что нет смысла останавливаться подробно на этом моменте, так как это - тема отдельной статьи. Английский очень важен, и это общеизвестный факт. Хотелось бы только упомянуть вкратце два самых важных момента.

Во-первых, английский - это основной язык международного комьюнити, соответственно, большая часть полезной литературы тоже будет на английском, многие новости, доклады и важные статьи тоже будут появляться сначала на английском. Если вы хотите узнать ответ на какой-либо вопрос - очень большая вероятность, что в первую очередь его получится найти именно на английском.

Во-вторых, чем лучше ваши знания английского, тем больше шансов найти работу. Большинство клиентов зарубежные, соответственно, знание английского важно для продуктивного общения, четкого понимания ТЗ и хорошего контакта с клиентом.

Практика

После изучения нескольких ресурсов стоит перейти к более важной части, а именно к практике. Примеров заданий с интернет-магазином или простым блогом в сети масса (вот один из них), особенно если говорить о Rails. В ходе выполнения задач, уже немного приближенным к реальным, вы точно столкнетесь с какими-то проблемами и тогда перейдете к тренировке одного из самых главных качеств - это умение гуглить. К сожалению, мне не удалось найти какой-то туториал или курсы, посвященные этому навыку, но он определенно играет очень важную в роль в повседневной работе.

Курсы

После прочтения теории и написания нескольких «пет-проектов» можно, конечно, пробовать идти по собеседованиям, но часто бывает, что этих знаний недостаточно. Это связано с большим наплывом кандидатов, и, учитывая конкуренцию, каждый старается выделиться и как можно лучше подготовиться.

Еще один важный пункт в обучении, который может стать перевесом в вашу сторону при поиске работы, - это курсы по программированию. Если, конечно, у вас нет ментора, который готов тратить определенное количество времени на то, чтобы придумывать задания и делать по ним ревью.

Сразу скажу, что я ни в коем случае не рекомендую идти на курсы, не имея уже какого-то багажа знаний. Я рассматриваю курсы как отличный способ закрепить знания, полученные в процессе самообучения. И сейчас не пытаюсь рекламировать какую-то конкретную школу, а объясню, какую именно пользу можно из этого извлечь:

С высокой долей вероятности там вы узнаете то, чего не знали раньше . На курсах довольно большой объем материала, который подается в структурированной форме, что позволяет лучше усваивать материал.

На период курса у вас будет ментор , который будет делать ревью решения ваших задач и указывать на слабые места и ошибки.

Мотивация . Это в первую очередь для тех, кому нужна помощь с самодисциплиной. Порой довольно трудно заставить себя что-то делать, какие бы перспективы не маячили на горизонте. При посещении курсов у вас будет четкий график, которому нужно следовать, и задания, которые нужно выполнять, иначе вас исключат. Финансовая мотивация также играет здесь роль, в случае платных курсов. Ведь когда отдаешь свои кровные, то уже совсем по-другому относишься к делу, и мысли просто прогулять возникают намного реже.

Еще одно преимущество - сертификат . Понятное дело, что в итоге вас будут оценивать по знаниям, а не по наличию бумажек в резюме. Но тем не менее это будет плюсом, особенно, если будет кандидат с похожим уровнем знаний, но без их документального подтверждения.

Плюс один проект на GitHub в вашу копилку. Если вы начинающий разработчик, то вероятнее всего проект, написанный на курсах, будет интереснее с точки зрения технологий, чем те, которые были написаны ранее.

И самое главное - трудоустройство . Говоря о курсах, я не имею ввиду только те, за которые нужно платить деньги. Часто компании сами проводят набор на обучение, чтобы потом лучших взять к себе на работу. Это могут быть внутренние курсы или стажировка/интернатура. Такой вариант - наилучший, так как вам не нужно ни за что платить, вы получаете опыт и все выше перечисленные плюсы и вдобавок - реальную перспективу трудоустройства. Попасть на них сложнее, но перспективы значимее.

Итого

Ruby - это язык, который позволяет работать без большого количества неудобств и церемоний, которые приходят со строго типизированными языками. С Ruby легко начать работать, особенно если у вас уже есть опыт разработки на других языках программирования, и вы сможете быстро создавать прототипы с Ruby on Rails. В Японии, откуда он появился, Ruby использовался для создания игр. Ruby лаконичен и читается как английский, что делает код понятным для новичков.

Что касается изучения Ruby, хочу еще раз повторить: нужно начать с малого. Прочитайте несколько книг, сделайте самостоятельно несколько заданий, а затем, если чувствуете необходимость получить больше знаний и опыта или дополнительную мотивацию - можно идти на курсы, уже имея определенный багаж знаний, полученных самостоятельно.

В идеале это курсы от какой-либо компании, которая по окончании сделает вам оффер, если хорошо себя проявите. Альтернативный вариант - платные курсы, которые помогут закрепить полученные знания, добавить в резюме еще один проект и набраться опыта, что наиболее важно на старте. Но не стоит ожидать, что по окончании платных курсов вы с легкостью пройдете собеседование, показав сертификат. Оценивать в любом случае будут знания.

В то же время, имея достаточно мотивации, терпения, способностей и опыта с другими языками программирования, вы вполне можете освоить Ruby самостоятельно, т. к. в интернете очень много полезной и хорошо структурированной информации. Также благодаря открытому и многочисленному Ruby-комьюнити можно с легкостью найти онлайн ответы на многие возможные вопросы, которые с большой долей вероятности кто-то уже задавал до вас.

Удачи в изучении! А в следующей статье мы поговорим о коде.

Подписывайтесь на наш Telegram-канал для джуниоров , чтобы не пропустить интересные вакансии, стажировки, курсы, статьи.

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

Примеры
Вот некоторые примеры кода Ruby:

>> -199.abs # номер -199 является объектом; для него вызывается метод ABS. => 199 >> "Ruby is cool".length # вызывается метод объекта String – длина строки => 13 >> "Rick".index("c") => 2 >> "John".swapcase => "jOHN" >> #Arrays ?> .sort => >> .sort.reverse => # следующий блок кода выполнится 10 раз 10.times { # Replace " " with ", " and store in string1 string1 = "Hello world".gsub(" ", ",") # append "!" to variable "string1" string1 += "!" # print variable "string1", followed by a newline puts string1 }

Как стать профессионалом по разработке сайтов и начать зарабатывать? Недорогие видео курсы с ознакомительным введением.

Ruby - один из самых молодых языков программирования. Своим именем он обязан драгоценному камню рубину (по аналогии с другим широко распространенным языком программирования Perl - жемчуг). Вот как описывает Ruby его создатель, японский программист Юкихиро Мацумото (Yukihiro Matsumoto): "Это мощный и динамический объектно-ориентированный язык с открытыми исходниками, который я начал разрабатывать в 1993 году. Ruby работает на многих платформах, включая Linux и многие реализации Unix, MS-DOS, Windows 9x/2000/NT, BeOS и MacOS. Главная цель Ruby - эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно".

В Японии Ruby сильно потеснил такие известные языки как Python и Perl (а книга "Ruby the Object-Oriented Scripting Language" стала бестселлером) и начал распространяться по всему миру. За последний год появились три англоязычных книги, посвященные Ruby (к сожалению, пока не имеющие русского перевода). У этого языка очень неплохие шансы стать действительно популярным - ведь он вобрал в себя достоинства других языков, учтя их недостатки.

Ruby входит в стандартную поставку ОС Linux (начиная с версии 7.2), а пользователям MS Windows для первого знакомства стоит порекомендовать его несколько устаревшую версию, которая включает, помимо интерпретатора языка и библиотек, руководство пользователя, FAQ (ответы на часто задаваемые вопросы) и множество примеров. Ruby является свободно распространяемым продуктом, поэтому вы можете не беспокоиться ни о его стоимости, ни об ограничениях в его использовании.

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

Сначала проверим, установлен ли интерпретатор Ruby в системе или нет. В окне shell введите команду ruby -v (этот ключ требует вывода версии языка). Если следующее сообщение появится, то Ruby установлен (версия, дата и платформа могут отличаться):

ruby 1.6.4 (2001-06-04)

puts "Hello, World!"

Для выполнения этой программы в командной строке введите

В результате выполнения программы в командном окне будет напечатана требуемая фраза.

Второй способ выполнения программ доступен пользователям не всех операционных систем, в которых функционирует Ruby. Пользователям ОС Linux следует поместить в начало файла с текстом программы следующую строку:

#!/usr/bin/env ruby

Она обязательно должна начинаться с первой позиции. Затем нужно изменить права доступа файла с программой, сделав его исполняемым: chmod +x hello.rb Теперь для запуска программы достаточно ввести команду

Для того чтобы сделать программу более понятной человеку, который ее читает, вставляются комментарии. Однострочные комментарии начинаются с символа # и продолжаются до конца строки. Многострочные комментарии заключают в специальные "скобки" - все, что располагается между строками =begin и =end, считается комментарием. Например,

#!/usr/bin/env ruby =begin Это комментарий =end puts "Hello, World!" # Это тоже комментарий

Программа на языке Ruby, часто называемая скриптом, есть последовательность инструкций (утверждений, предложений). Каждая инструкция по умолчанию заканчивается концом строки. Если же по каким-либо причинам требуется разместить несколько инструкций на одной строке, то их нужно разделять символом; (точка с запятой). С другой стороны, иногда инструкция не помещается на одной строке. В этом случае символ \ сигнализирует о том, что ее продолжение располагается в следующей строке.

Пример

#!/usr/bin/env ruby # Инструкция заканчивается концом строки puts "Hello, World!" # Несколько инструкций в одной строке puts "Это тест, "; puts "демонстрирующий работу Ruby." # Незаконченная инструкция, # продолжение которой на следующей строке puts "Программирование на Ruby - " + "приятное занятие." # Утверждение, разделенное на несколько строк puts \ "И мы обязательно этому научимся!"

Инструкция (утверждение) чаще всего представляет собой некую последовательность операторов, применяемых к различным выражениям, и (возможно) вызовов функций.

  • Перевод

Я познакомился с Ruby сравнительно недавно, благодаря чудесному фреймворку Ruby on Rails . Я не считаю себя экспертом в Ruby, но я прочитал PickAxe, написал несколько утилит на Ruby для личного пользования, а также разрабатываю на Rails в свободное время.

Ruby на данный момент, мой основной язык. Начинал же я с TurboPascal в школе, изучал C и C++ в университете, дисертацию писал на Java , а еще я изучал PHP с нуля, так как хотел научиться делать веб-сайты быстро и легко. Думаю, что написание кода для меня это некая форма развлечения, а уж потом все остальное. В начале у меня были размышления, какой язык изучать, Python или Ruby. Я выбрал второй, так как не хотел, чтоб неправильные отступы были причиной неполадок в моем коде.

Есть целая куча введений, руководств, статьей и эссе, написанных гуру, о том, как получить максимум пользы от Ruby. Данная статья ничем таким не является.

Это более скромный, неполный перечень причин, которые могут (или не могут) побудить вас использовать Ruby, ну или в крайнем случае поиграть с ним. Предостережение: если вы используете другой язык программирования для работы или в других целях - не жалуйтесь мне, если больше не захотите им пользоваться. Именно это и произошло со мной, но для меня это не столь важно. Ruby чудесный и элегантный язык и как многие подобные вещи, он может захватить ваш разум и поломать душу.

Короче, вы - предупреждены.

Зачем изучать Ruby?

1.Вы получаете все удобства (удовольствия) без уловок.

Ruby позаимствовал все лучшее из других языков программирования, от smalltalk до Java , от Perl до Python . Вот базовые возможности, которые вы в принципе могли видеть и в других языках:
  • Исключения. Верите или нет, исключения являются одной из важнейших вещей при разработке программ любого рода. Программисты на PHP4 , не знают ничего о них и будут говорить вам, что можно просто печатать(ошибки) на экран или использовать их собственный «супер-пупер» класс для обслуживания ошибок. К счастью для всех нас, Ruby поставляется с try/catch (или еще лучше begin/rescue ) блоками и набором предопределенных, расширяемых Исключений, для правильной обработки ошибок.
  • Пространства имен: модули Ruby делают использование пространства имен легким, это должно понравиться энтузиастам C++ и Java .
  • Встроенные регулярные веражения: Для всех знатоков Perl , вы можете заключить нечто в // и оно становится регулярным выражение, готовым для сравнения (для этого используем оператор =~ ).
  • Перегрузка операторов: Ruby позволяет определять операторы, такие как +, -, > , и т.д. для любого вашего класса.
  • Пакеты: называемые «gems »(камешки), они действительно оправдывают свое название, кроме того - они работают. Пакеты поддерживают зависимости, а еще могут быть как кросс-платформенные, так и платформо-зависимыми.
  • Интерактивная консоль: может использоваться для тестирования кода интерактивно, подобно консоли Python

2.Вы полюбите мелочи.

Ruby изящен. Почему? Потому-что он не старается делать код лаконичным настолько, что б это мешало читабельности и пониманию. Есть несколько советов, которые могут вам помочь:
  • Вы можите использовать оба оператора, if и unless в условных выражениях. Кончно же вы можите использовать if с противоположным значением выражения, но использования unless обычно приводит к меньшему числу ошибок. Кроме того, вы можите использовать оба оператора, как условные модификаторы, ставя их после выражения, а не до: order.new unless order.exists
  • Можно использовать знаки вопроса и восклицания в конце имени метода. Данное соглашение не навязывается, но знак «? » используется, когда метод возвращает true или false , в то время, как знак «! » используется для методов, делающих нечто необратимое, на подобии удаления записи из базы данных, отщепления последнего символа из строки и т.п.
  • Можно использовать псевдонимы (alias ) для уже созданных методов. Таким образом можно получить методы exist и exists , без накладных расходов и без повторений.
  • Вы можете использовать директивы attr_reader , attr_writer или attr_accessor для автоматического создания getter/setteer для членов класса.
  • И еще некоторое соглашение об именах: константы, классы и модули пишут с заглавной буквы, методы и члены класса должны начинатся с маленькой буквы, глобальные переменные именуют начиная с «$ », имена переменных объекта начинаются с «@ », а имена переменных класса с «@@ », ну и т.д.
  • При вызове методов, можно не писать скобки. Можно писать write File.open("/home/h3rald/test.txt") или просто File.open "/home/h3rald/test.txt" , что особенно удобно с методами, без аргументов.

3.Больше не нужно использовать точку с запятой.

Хотите написать следаующую инструкцию? Просто переходите на новую строку. Нажмите «Enter » и готово. В Ruby как и в Python , новая линия разделяет инструкции, так что вам не придется все время ставить точку с запятой. К сожалению это означает, что подобно фанатам C++ , мы не сможем написать программу в одну строчку. Но это не так уж и плохо, правда?

4.Все является объектом, как это и должно быть.

Когда я изучал Java , мне говорили, что все является объектом.
- «Че, 14 и 374346.678 - объекты?»
- «Нет, глупыш, это числа!»

В Ruby числа, символы, булевы значения и все остальное является объектом. Серьезно. Это означает, что можно писать вещи подобно этим:
"YOU SHOULDN"T ALWAYS USE CAPITALS".lowcase # вернет "you shouldn"t always use capitals" , вместо нечто такого:
# PHP Code
strtolower("YOU SHOULDN"T ALWAYS USE CAPITALS")
Этим вы экономите время, экономите скобки и так более логично.

5.Все имеет значение.

Или «больше не надо использовать return для возврата значений». Если побыстрячку, то так: все инструкции в Ruby возвращают значение, даже присваивание переменных, так что вам действительно не нужно использовать ключевое слово «return » в конце методов. Значение последнего присваивания всегда будет возвращено.

6.Можете изменять окружение любым доступным способом.

Впервые увидев это, я был впечатлен. Представьте типичную ситуацию: вы стали использовать системный класс или класс, написаный кем-то другим и поняли, что вам надо некий дополнительный метод в нем. Есть несколько путей для решения этой проблемы в типичных языках программирования:
  • Вы изменяете исходный код класса, если вы имеете к нему доступ. Но обычно это - плохая идея, не делайте так.
  • Вы наследуете свой класс от того и добавляете к нему новый метод. Обычно это - хорошая идея. Но из-за одного метода это может оказаться несколько монрообразным. Кроме того, придется немного подправить другой свой код соответственно.
  • Можно просто создать метод вне класса. Это сработает, но будет не очень изящно, а еще - идет в разрез с ООП .
В Ruby вы можете добавить метод в оригинальный класс, без правки исходных кодов. Это можно сделать даже для системного класса.
Мы хотим добавить метод, для пересчета значений из метров в футы? Просто расширим класс Numeric , как показано:
class Numeric
def feet
self*3.2808399
end
end

С этого момента, все наши числа, будут иметь новый метод, который может использоваться, как любой другой:
5.feet # возвратит 16.4041995
Классы в Ruby никогда не закрываются и могут быть расширены в любой момент, из любого места. Естественно использовать такую возможность надо с осторожностью!

7.Вы не сможите получать единорогов из птиц и конец, но вы получите ослов, если захотите.

Я четко помню, как моя учительница по C++ , использовала животных, для иллюстрации основных концепций объектно-ориентированного программирования - классов и наследования. Было нечто загадачно, когда объясняла нам множественное наследование, образовывая «пегаса» из «птиц» и «лошадей». Сумасшедшие вещи, Ruby не позволяет множественного наследования. Это выглядит как тренд и в конце-концов это дело вкуса. Я не в восторге от множественного наследования, так как это может привести к непредсказуемым вещам. Несмотря на это есть возможность создания нечто подобного, используя модули Ruby , так что переменные и методы одного модуля, будут добавлены в определенный класс, если модуль включен в него.

8. XML - реально ненужен.

XML - красивый, общеупотребительный, язык разметки, который может быть обработан всеми языками программирования и используется повсеместно. К сожалению, он слишком громоздкий для написания, трудный для обработки(парсинга) и, давайте будем честны - трудный для чтения в большинстве случаев. А вот взгляните на следующий фрагмент:
regexp: !ruby/regexp /a-zA-Z/
number: 4.
string: a string

Безусловно это легче и проще XML , правда? Добро похаловать в YAML , любимый (но не единственный) язык разметки Ruby , с помошью которого любой объект может быть представлен в простом, лаконичном, но полном виде.
Ruby способен работать с XML , но простота YAML подкупила многих разработчиков, которые теперь используют его вместо XML , например для файлов конфигурации (так поступили в Rails ). Фрагмент, представленный выше, был получен исполнением следующего фрагмента кода:
{"string" => "a string", "number" => 4.7, "regexp" => /a-zA-Z/}.to_yaml
Метод to_yaml , определен для класса Object , который является родителем для всех остальных объектов, а потому доступен для всех объектов Ruby . Это позволяет преобразовывать объекты в YAML и обратно, абсолютно прозрачно для разработчика. Круто, да?

9.Лямбда - нечто больше, чем просто греческая буковка.

Ruby позаимствовал некую магию из Lisp и Perl в объекты и блоки Proc . Proc - это «блок кода, связанный с набором локальных переменных. Однажды связанные, они могут вызываться в различных контекстах и все еще обращаться к тем переменным.». Поглядим на следующе:
def gen_times(factor)
return Proc.new {|n| n*factor }
end

Times3 = gen_times(3)
times5 = gen_times(5)

Times3.call(12) #=> 36
times5.call(5) #=> 25
times3.call(times5.call(4)) #=> 60

Можно было использовать ключевое слово lambda вместо Proc.new , на результат это не влияет. Это могло показаться знакомым людям, знающим Perl и Python (или Lisp ). Такое можно сдалать даже на PHP , но не много людей пользуются этой возможностью.
Кроме того в Ruby широко используются блоки типа «несозданные Proc », например, для итерации по содержимому объекта и исполнения некоторого кода, подобно методу each , доступного для класса Array :
.each {|c| puts c*2} #=> возвратит каждый элемент, умноженный на 2
Если код не умещается на одной строчке, рекомендуется использовать конструкцию do… end , вместо использования скобок. Фаны Ruby не любят скобок.

10. Вы можете использовать Rails.

Последнее, но не по важности… Вы всегда можете использовать Rails для разработки веб-приложений. Разработка будет не настолько простой, как с PHP , но Rails были написаны на Ruby , поскольку он имет возможности, отсутствующие в других языках.

Заключение

Время вышло. Возможно вы уже задумываетесь о взгляде на Ruby , возможно вы уже пробовали его, а возможно вы просто проигнорировали его. Как бы там нибыло, в следующий раз, когда глядя на свой код, он будет казаться страшным, а размер его устрашающим - не обвиняйте меня.

Уважаемые Читатели - не забывайте, что хабраюзер, просто перевел (паршиво, да) текст. Идеологических претензий ему высказывать нет нужды.

На сегодняшний день существует масса языков программирования, которые обладают своими особенностями и закономерностями. В представленной статье пойдет речь об одном из них.


История языка Ruby

Ruby в качестве языка программирования существует довольно давно. Впервые работа над редакцией этого известного на сегодня языка началась в 1993 году. Первая первая официальная версия вышла в 1995 году. Создателем языка является Юкихиро Мацумото. Его энтузиазм в области программирования был замечен еще в студенчестве, но идея создания своего инструмента появилась намного позже. Итак, в чем же особенности примечательного в этом языке программирования? Благодаря чему была достигнута популярность на мировой арене?

Язык программирования Ruby – достаточно интерпретируемый. Это язык высокого уровня, имеющий динамическую типизациею и независимую от исполняющей среды реализацию многопоточности. В нем существует собственный сборщик мусора. В области особенностей синтаксиса он больше всего приближен к языкам Perl. В результате широкого развития экосистемы данная платформа много взяла у Smalltalk, Python, Lisp и прочих языков программирования. Большую важность представляет и то, что язык Руби и его реализация полностью свободны. Из этого следует, что каждый желающий имеет возможность предложить собственные изменения. В случае, если они будут приняты сообществом, войдут в последующую версию языка.

Философия Ruby

В процессе создания собственного детища Мацумото, будучи преданным фанатом и энтузиастом объектно-ориентированного программирования, стал автором определенной философией для программистов, которые предпочитают изучить его язык. Таким образом, язык программирования Ruby предусмотрен для создания простых и понятных приложений. Главный упор был сделан на простоту и читабельность кода, а не на скорость программы. Именно в этом состоит причина того, что данную платформу зачастую выбирают как входную, необходимую для обучения программистов. Основная суть, на которой основан этот язык, состоит в принципе «наименьшей неожиданности». Что это означает?

А то, что программа должна вести себя так, как от нее ожидает программист. Немаловажной частью идеологии языка, привнесенной создателем, является его большая вариативность. Таким образом, существует возможность достичь одинакового результата различными путями и функциями. Это позволяет каждому программисту решать задачу так, как он считает нужным с точки зрения корректности и удобства. Именно это в большинстве случаев повлияло на известность языка среди профессионалов в области информационных технологий.

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

Что означает Руби при его рассмотрении в качестве языка программирования? В первую очередь это объектно-ориентированный язык. В нем отсутствуют примитивные типы, так как все структуры и единицы данных считаются объектами. Это и отличает его от того же языка Java, где присутствуют примитивные структуры данных. Все функции в Руби являются методом. Большая часть свойств и возможностей привнесены авторами из других языков программирования. Таким образом, можно смело утверждать, что Ruby содержит в себе лучшие качества множества других языков и технологий. Например, в экосистеме Руби существует собственный сборщик мусора.

Его идея была перенята из Smalltalk и Java. Он способен работать со всеми объектами в системе. Данный механизм дает возможность осуществлять очистку памяти от объектов, в которых утрачена востребованность, что происходит незаметно для пользователя приложения и разработчика. Сборщик мусора помогает разработчику не отвлекаться на управление памятью приложения. Таким образом, он может полностью сосредоточить свое внимание на функциональности и удобстве использования.

Парадигмы языка

Некоторые программисты, которые отвечали на вопрос о том, что представляет собой Руби в качестве мультипарадигменного языка, невольно оказывались в пылу спора. Данный язык дает возможность применить любую из парадигм программирования с одинаковым успехом. Из них стоит выделить следующее:

Процедурный стиль программирования;
объектно-ориентированный подход;
функциональный подход.

Разработчику дозволено выбрать ту парадигму, которая ему более близка. При этом следует учитывать, что его набор инструментов от этого будет становиться ограниченнее или слабее. Язык программирования Руби придерживается только такого выбора.

Причины известности

В большинстве случаев данный язык получил известность за счет простоты разработки всевозможных дополнений к нему. Таким образом, число фреймворков и библиотек неизменно возрастает, а задачи, решаемые ними самостоятельно, дают возможность разработчикам в самые короткие сроки довести продукт до готового состояния. Зачастую программирование Руби ассоциируется с созданием веб-приложений, а также поддержкой функционирования всевозможных сайтов и интернет-платформ. Данную нишу язык смог занять за счет собственной простоты и скорости разработки. Стоит отметить, что альтернативные платформы (к примеру, Java), нуждаются в значительно большем багаже знаний и опыте, предназначенных для решения аналогичных задач.

Известные фреймворки

Говоря об известных фреймворках, существующих на рынке на сегодняшний день, стоит отметить среди них Rails. Большинство пользователей, которые отвечают на вопрос о том, что представляет собой Руби, на уровне интуиции подразумевают RubyOnRails. Данный набор программных элементов является промышленным стандартом у разработчиков. Он регулярно поддерживается, находится в постоянном развитии, пополняется сообществом программистов. Стоит отметить, что при всем этом он остается бесплатным.

Представленный фреймворк способен описывать компоненты веб-приложения в границах шаблона MVC (Model-View-Controller). Кроме того, он готов предоставить готовую интеграцию с сервером приложения, а также интерфейс, позволяющий открыть доступ к базе данных. Такие три компонента дают возможность буквально в считанные часы написать и произвести запуск в интернет простого блог или частной веб-страницы. Существует возможность создавать на языке программирования Ruby даже нативные мобильные приложения. Это достигается при использовании библиотеки RubyMotion. С ней можно исполнять код Ruby на платформах iOS, OS X и Android. Эта библиотека разработана частной группой производителей. Это означает, что за использование придется платить, однако она является очередным подтверждением широких возможностей языка.

Важность написания тестов

Еще одна немаловажная составляющая экосистемы языка Ruby, а также его веб-ориентированной части, состоит в фреймоврках и библиотеках, предназначенных для написания тестов. RubyOnRails использует философию BDD (behavior-driven development). Это значит, что сначала программист разрабатывает последовательность тестов, которые описывают ожидаемое поведение программы. Затем он создает код, необходимый для успешного прохождения этих тестов. Негласным стандартом в данной области считается RSpec. Он представляет собой фреймворк, который дает возможность писать тест-кейсы на языке, понятном даже неопытным пользователям.

Ruby Gems

За счет подробно описанного стандарта, которому должны соответствовать пакеты и библиотеки на Ruby, создание дополнений не вызывает сложностей. Таким образом, среди gems существует возможность отыскать модули, предназначенные для решения почти любых задач, начиная от интеграции с социальными сетями и сторонними ресурсами и заканчивая готовыми платформами для электронной коммерции. Чтобы использовать стороннюю библиотеку, достаточно описать зависимость собственного проекта от определенной библиотеки, которая находится в удаленном или локальном репозитории. При последующей сборке данная библиотека загружается в приложение в автоматическом режиме. Такое решение значительно упрощает миграцию проекта между создателями, ведь необходимость делиться зависимостями для сборки проекта ручным способом отсутствует.

Таким образом, можно сделать вывод, что Руби является мощным и универсальным языком программирования, который подходит не только для опытных разработчиков, но и для новичков.



Загрузка...