Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование на руби

Почему Ruby — идеальный язык для начинающего разработчика

Марат Хуснетдинов, основатель консалтингового проекта HowToHireMe, рассказал блогу Нетологии о своём пути в IT и о том, почему начинающим разработчикам стоит выбрать Ruby.

В разработке я около 5 лет. Начинал с фронтенда: вёрстка, стили и JavaScript, затем попробовал Ruby, немного поигрался с Python. В последнее время работаю с Elixir — это новый язык на erlang virtual machine — и с базами данных, и как технический специалист, кроме того управляю, продаю, выступаю как ментор. Есть опыт управления проектами, лидирование и продаж в IT. Сейчас у меня на двоих с партнёром консалтинговое агентство HowToHireMe.

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

Мы стараемся развивать наш проект в Open source — я очень активно пишу в open source Github-проекты, чтоб поддерживать опыт на уровне, не смотря на то, что уже ушел на управленческие позиции. За пять лет накопилось много багажа, о котором рассказываем ребятам, когда они приходят к нам на стажировку.

Сегодня расскажу, как эффективно построить карьеру в роли Ruby-разработчика и почему это более эффективно, чем в других языках. Расскажу, почему я пришёл в IT, какие были трудности, почему выбрал Ruby — выбор был непростой, но очень интересный.

Как я пришёл в IT

Хотел бы начать с простой идеи: у меня нет АК-47 с серебряными пулями — есть только опыт и путь, который я прошёл.

Для многих стоит вопрос, как вообще войти в IT: с чего начать, какие есть плюсы, какие минусы. Лично я вообще начинал со станков — работал на производстве. В прямом смысле: крутил гайки, запускал станки токарно-фрезерные. Программировать начал в 28 лет и думал, что это уже возраст, когда не очень просто сменить профессию.

Начинал с HTML и CSS. Пытался писать на 4-й версии PHP по книгам Котерова, после чего это всё успешно забросил. В аспирантуре, когда уже работал с оборудованием, меня познакомили с Python — я даже пытался писать на нём интерпретатор истории станков, чтобы нашим руководителям можно было отслеживать историю нажатия клавиш.

О трудностях, которые возникли при входе

Основная проблема — у меня не было знакомых разработчиков, не было наставника. Я примерно полгода изучал HTML и CSS, чтобы дойти до какого-то уровня в разработке. Были простые проекты, но они были маловостребованны для работодателя. В тот момент я не знал, у кого молодому разработчику спросить совета.

Консультанты просили большие деньги за такую информацию. Молодой разработчик платил и чаще всего понимал, что ему не рассказали ничего, чтобы продвинуться в работе. У Нетологии в этом плане есть плюс — у вас будет не один ментор, а целая группа. Можно переключаться и спрашивать, что и как нужно делать — есть возможность получить более объективную информацию и знания у нескольких человек.

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

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

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

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

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

Про Open source и сообщество

Ruby on Rails сам по себе был написан как opensource-проект, где каждый может поучаствовать в разработке этого проекта. Когда входил в Ruby-мир, то работал с тремя ребятами, которые на тот момент находились в core team разработки Ruby on Rails. Сейчас они уехали работать за границу или же работают удалённо на иностранные компании — в этом им как раз очень помог open source.

У меня не было open source-портфолио. Всем молодым разработчикам я всегда говорю: если вас нет Github-аккаунта, то заводите как можно быстрее.

Не важно, сколько вы напишете опыта в резюме, работодатель всё равно пойдёт смотреть на ваш Github-аккаунт и дату его регистрации — это и будет считаться официальным стартом вашей IT-карьеры.

И сейчас вам советую: просто возьмите и зарегистрируйтесь на Github.

Поработав с Python и Pyramid, я понял, что есть более развитые языки, с более развитой инфраструктурой и более отзывчивым сообществом разработчиков. Например, у Ruby сейчас самое развитое комьюнити: его можно сравнить только с JavaScript. Можно сказать, что Ruby-сообщество создало стандарты для тестирования приложений и многие решения мигрировали потом в JavaScript, Python и другие языки.

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

Плюсы Ruby для новичка

Когда я входил в Ruby-мир, на Ruby уже было реализовано достаточно большое количество решений: были написаны Twitter, Aviasales, OneTwoTrip, Onlinetours. Множество решений для выкатки приложений тоже написаны на Ruby, например Puppet, Chef — это инструменты, с помощью которых приложения выкатывают на сервер, или Vagrant — виртуализация приложений — написана тоже на Ruby.

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

Многие воспринимают Ruby как кукольный, детский язык, но это только начальное восприятие. Первое моё ощущение от Ruby — язык показался магически простым, потому что очень многое происходит за кадром. Он читается, как обычный текст. Меня подкупило, что можно опускать какие-то скобочки, какие-то вещи можно было писать более нативно. Когда вы понимаете язык, вы понимаете, что там нет никакой магии и всё достаточно предсказуемо работает.

Когда узнаёшь этот язык, начинаешь его любить, потому что вещи, которые делаются очень долго на других языках, здесь можно сделать очень быстро. В среднем скорость разработки на Ruby на 30−50% выше, чем на других языках. В два раза, если мы говорим о Java и .NET. Язык действительно очень красивый и простой для понимания, что привлекает всё большее количество разработчиков.

Я вошёл в Ruby-мир как фронтендер. После чистого фронтенда для Pyramid меня пригласили работать в компанию, которая занимается разработкой на Ruby on Rails. В компанию зашёл как фронтенд-разработчик на Ruby и именно в это время и познакомился с самим фреймворком Ruby on Rails. Очень часто ребята начинают сразу учить сам фреймворк с минимальными знаниями языка. Моё мнение, что это ошибка и надо знать язык, потому что понимание языка даст вам большее понимание фреймворка Ruby on Rails.

Не будем забывать, что у Ruby on Rails тоже есть свои проблемы, которые сейчас пытаются решить. Нет ни одного языка, который мог бы решить все задачи: каждый язык берётся под определённое решение, идеального языка нет. Ruby on Rails и Ruby заняли свою нишу как стандарт разработки веб-приложений. Есть библиотеки, которые помогают писать JavaScript, такие как Opal, компилируются из Ruby в JavaScript; есть фреймворки, которые помогают писать приложения для мобильной разработки, например, RubyMotion.

Читать еще:  Itunes ошибка 54 при синхронизации

Почему Ruby и Ruby on Rails перспективны

Быстрый вход в индустрию. Ruby — один из наиболее простых для изучения языков. Существует множество обучающих ресурсов, а вся нужная информация содержится в open source, поэтому не требует дополнительных трат с вашей стороны — только если понадобится какое-то очень специфичное решение, но это вряд ли случится на начальном этапе.

Качественный вход. На Ruby очень просто изучать объектно-ориентированное программирование. Здесь проще читается код, проще приводятся примеры и проще само понимание кода — для новичка это плюс. В некоторых проектах доходит до того, что вы можете читать без скобок код и понимать, что он выглядит почти как обычный текст, за исключением некоторых уникальных программ, которые пролетают где-то в коде.

Высокая конкурентная мотивация. Я могу судить по Воронежу, где годовалый джуниор-разработчик на Ruby может просить зарплату в районе 90 тыс. руб. в месяц. Это достаточно серьёзные деньги. А на входе можно получать от 30 до 40 тыс. руб.

Если вы будете искать работу, то вы должны понимать, что Ruby on Rails — это комьюнити, где люди привыкли работать в стартапах. В 80% это будут небольшие компании, зарубежные или нет, и в меньшей степени — большие компании. Государственные компании также в последнее время переходят на разработку на Ruby on Rails. Они понимают, что платить джависту или дотнетчику за то, что он будет писать год — это очень дорого. Проще заплатить Ruby-разработчику, который стоит чуть подороже, но напишет решение за 2−3 месяца.

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

Opensource-головорезы. Open source — это не инхаус-разработка, а разработка на комьюнити: любой человек сможет прийти и оценить ваши наработки, а работодатели и заказчики очень часто требуют показать Github-профиль. Поэтому я советую не только завести аккаунт на Github, но и начать прокачивать его.

Как расти в профессии

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

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

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

Для понимания скажу так: старшие разработчики — это, как правило, люди, которые не только хорошо пишут код и умеют дебажить, но и хорошо понимают специфику текущего проекта.

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

Касательно построения карьеры в разработке, считаю, что каждый разработчик должен знать фронтенд в той или иной степени, и не важно — вы будете чистый бекенд или нет. С фронтендом, вёрсткой и разметкой вам всегда придётся работать. Стоит развиваться не только вглубь, но ещё и вширь — поглощать другие сферы.

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

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

Моё мнение: чтобы стать современным разработчиком, надо знать фронтенд — хотя бы чуть-чуть, затем изучить бекенд, если это основное направление, а после этого ещё и получить базовые знания DevOps и QA.

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Уроки Ruby

Уроки Ruby для начинающих / #1 — Знакомство с языком Ruby

Видеоурок

Полезная ссылка:

Информация про Ruby

Ruby — мощный и популярный язык программирования. Помимо своей популярности на нём основывается известный фреймворк Ruby On Rails , который позволяет создавать крутые и динамические веб сайты различной тематики. Если взглянуть на рейтинг TIOBE , то язык входит в двадцатку самых популярных языков мира.

Язык появился в 1995 году и считается молодым языком в сравнении с Си или же C++, которые появились в 1972 и 1983 году соответсвенно. Язык имеет ряд преимуществ и специфичных возможностей, которые реализованы исключительно в нем, если брать в сравнение другие популярные языки программирования.

План курса

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

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

Установка Ruby на Windows

Для установки Руби на Виндовс используйте RubyInstaller, который можно скачать на официальном сайте по этой ссылке . Скачивайте последнюю версию и устанавливайте её как обычную программу. После завершения установки перед вами будет похожее окно:

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

В открывшемся окне введите поочередно 1 и нажмите Enter , дождавшись конца установки нажмите 2 и Enter и в конце выполните третью команду нажав 3 и Enter .

Установка Руби на Мак

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

Если версия устаревшая, то можно выполнить загрузку новой. Для начала необходимо загрузить менеджер версий Ruby. Это делается через терминал при помощи команды:

После установки менеджера необходимо перезапустить терминал. Выполните следующую команду:

После перезапуска вы можете установить ту версию, которую пожелаете. В нашем случае была установлена версия 2.4.2 :

В конце вы можете еще раз проверить версию и если она по прежнему старая, то просто установите по-умолчанию новую версию:

Ruby

Русский

Программирование на языке Ruby: Учебное пособие. Роганов Е.А. и Роганова Н.А

Настоящее пособие содержит описание языка программирования Ruby и предназначено для .

    Rails 4. Гибкая разработка веб-приложений. Сэм Руби

    Перед вами новое издание бестселлера «Agile web development with Rails», .

    Путь Rails. Подробное руководство по созданию приложений в среде Ruby on Rails. Оби Фернандес

    Среда Ruby on Rails стремительно занимает ведущее место в ряду .

    Ruby. Объектно-ориентированное проектирование. Сэнди Метц

    Мировой бестселлер по программированию на языке Ruby. Книга уже стала .

    Head First. Изучаем Ruby. Джей Макгаврен

    Вам интересно, почему буквально все вокруг заговорили о языке Ruby? .

    Программирование на языке Ruby. Идеология языка, теория и практика применения. Хэл Фултон

    Эта книга называется «Путь Ruby». Название нуждается в некотором пояснении. .

    JRuby. Сборник рецептов. Джастин Эдельсон, Генри Лю

    Интересующемуся языком JRuby вряд ли нужны руководства по Ruby, Rails .

    Learn to Program. Крис Пайн

    Когда вы пишете программу для компьютера, вы должны «говорить» на .

    English

    Practical Object-Oriented Design: An Agile Primer Using Ruby. Sandi Metz

    The author teaches an object-oriented approach to application development and .

    Ruby Data Structures and Algorithms. Christopher Fox

    Data structures are presented in a container hierarchy that includes .

    Ruby Best Practices. Gregory Brown

    In 1993, when Ruby was born, Ruby had nothing. No .

    Ruby goes to great lengths to be a purely object .

    Ruby Cookbook, 2nd Edition. Lucas Carlson, Leonard Richardson

    Why spend time on coding problems that others have already .

    Искусство Ruby №1

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

    Прежде всего, во избежание путаницы,
    давайте разберемся с терминологией. Что
    такое
    Ruby? В чистом виде, это просто язык
    программирования. Кроме того, это
    транслятор кода (ruby.exe, если мы говорим о
    версии для Win32).

    Ruby on Rails – платформа (framework) для
    разработки Web приложений на базе Ruby.
    FreeRIDE и SciTE — IDE и редактор кода для Ruby.

    Инсталляция и начало работы

    На сегодняшний день последней версией Ruby
    является 1.8.4. С сайта http://www.ruby-lang.org/
    можно скачать интерпретатор Ruby и
    библиотеки. Можно так же скачать FreeRIDE и SciTE.
    К слову, если вы не можете скачать несколько
    десятков мегабайт – не расстраивайтесь.
    Все это входит в комплект Ruby on Rails, который
    публиковался
    в Спеце, посвященном
    Web.

    Для запуска Ruby программы достаточно
    набрать ruby .
    Естественно при этом не стоит забывать о
    путях. Если же вы хотите воспользоваться
    FreeRIDE под Windows, то сразу включите опцию «Run
    process in terminal» в Debugger Preferences. Конечно, FreeRIDE не
    слишком функциональная среда разработки,
    но, тем не менее, минимальный набор
    необходимых функций она обеспечивает.
    Помимо редактора, со стандартным набором
    функций и подсветкой синтаксиса
    присутствует дебаггер, а также
    автоматизирован запуск и остановка
    программ. Что еще надо для отладки скриптов?
    Итак, запускаем первую программу:

    puts ‘hello world ‘

    Жмем F5, открывается так называемое
    терминальное окно, в котором и отображается
    искомая фраза. Не забывайте, что вы имеете
    дело с транслятором, поэтому перед запуском
    программы модифицированный код
    обязательно нужно сохранить в файл. Я
    попробовал сразу поставить птичку «save files
    before running/debug» (меню «edit/ Preferences… /Debugger/Run»), но
    ожидаемого эффекта это не дало. Такие
    мелкие багги, конечно, имеют место в IDE.

    Я позволю себе маленькое лирическое
    отступление. За несколько дней, до того, как
    приступить к написанию данного обзора я
    общался со своим коллегой на предмет
    сравнения языков и принципиальной
    возможности и целесообразности «отсечения
    тупиковых путей развития языков».
    Соответственно, мы затронули и вопрос «строгости»
    языков. Нужно ли четко определять типы
    переменных, нужно ли обязательно вручную
    высвобождать объекты и т.д. И вот здесь была
    озвучена прекрасная, на мой взгляд, мысль.
    Отсутствие строгости в языках – прекрасно,
    более того, оно предоставляет кодерам
    некоторые замечательные возможности и в
    значительной мере упрощает их работу. Но
    все это справедливо тогда и только тогда,
    когда программист четко представляет, как
    это работает и к каким последствиям это
    может привести. В противном случае это
    может сильно навредить разработчику и не
    только затруднить процесс отладки
    программы, но и привести к неявным ошибкам в
    алгоритмах, которые очень трудно отловить.
    Поэтому, возможно, ответ на часто
    задаваемый вопрос о том, какой язык стоит
    начинать учить – не столь очевиден. Здесь
    следует понимать, что имеет в виду
    вопрошающий. Или он знает основы
    программирования и пытается выбрать для
    себя среду разработки для практической
    работы с перспективой на будущее. Или он
    просто хочет научиться программировать «с
    нуля».

    Теперь давайте посмотрим, что собою
    представляет Ruby, с точки зрения
    вышесказанного. Сразу скажу, что Ruby не
    является «Си-образным» языком. Создатели
    языка называют это преимуществом. Мне же
    синтаксис Ruby напомнил одновременно
    синтаксис Бейсика и Паскаля. Здесь имеют
    место конструкции «BEGIN … END», «IF … THEN ..» и т.д.
    Но есть некоторые особенности синтаксиса,
    которых лично я не встречал нигде.

    Прежде всего, сразу скажу, что этот язык
    чувствителен к регистру. Но не в
    классическом понимании, как в С, где нельзя
    использовать переменную MyVar вместо myvar. Имя
    переменной всегда должно начинаться с
    маленькой латинской буквы (например myVar).
    Если же мы напишем в коде MyVar, то это уже
    будет константа. Весьма интересно, не
    правда ли? Возможно, у вас возникнет вопрос:
    «А зачем?». Ответ очевиден. Ruby –
    транслируемый язык, и компилятор не сможет
    вам указать на ошибку при попытке присвоить
    константе новое значение. А когда вы
    наглядно видите отличие между константой и
    переменной (даже в чужом коде), вы постоянно
    будете начеку. Как по мне – весьма удобно.

    Переменные в Ruby объявлять не надо. При
    первом вызове Ruby сам догадается о типе
    переменной. Второй пример более интересный:

    print(‘Enter your name: ‘ )
    name = gets()
    puts( «Hello #» )

    Здесь программа спрашивает имя пользователя и после его ввода выводит его на экран вместе со словом «Hello». Обратите внимание на то, как передается значение переменной name. Оно как бы врезано непосредственно в строку, при этом признаком переменной является набор символов #<…>. Эквивалентным выражением будет и следующая строка
    puts( «Hello » + name). Вместо двойных кавычек можно использовать одинарные, но при этом «врезать» значение переменной уже не удастся.
    С тем же успехом можно подставлять значения не только строковых переменных, используя #<…>. Результатом следующего выражения будет вывод на экран числа 9.

    Отличие print от puts в том, что в последнем случае происходит перевод строки. Перевод строки можно так же реализовать и с помощью директивы n, а вставку табуляции — t. Но это будет работать так же только тогда, когда используется двойная кавычка. Эквивалентом puts(‘Enter your name: ‘ ) будет print(“Enter your name:n” ).

    К слову, круглые скобки – опциональны. Выражение puts «#<(1+2) * 3>» так же будет работать.

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

    print(‘Введите ваше имя: ‘ )

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

    Объектно-ориентированная концепция Ruby

    Конечно, в рамках обзора невозможно полностью описать весь синтаксис языка. Но я не случайно начал с обзора работы со строками. Это связано с тем, как позиционируется язык. Но давайте теперь рассмотрим еще один пример, который продемонстрирует, как происходит преобразование типов в Ruby.

    taxrate = 0.175
    print «Enter price (ex tax): »
    s = gets
    subtotal = s.to_f
    tax = subtotal * taxrate
    puts «vat on $# is $#, so grand total is $# «

    Смысл кода, приведенного выше – очевиден. Считается сумма с налогом. Но обратите внимание на строчку

    Несложно догадаться, что to_f это метод объекта s. Следовательно, становится очевидным, что любой тем данных в Ruby – класс, а любая переменная – объект, или, если хотите, экземпляр класса. Это очень похоже на концепцию .Net вообще и C# в частности. Более того, если анализировать следующий фрагмент кода x = 1 + 2, то + будет методом, а 2, соответственно, передаваемым ему параметром. С точки зрения концепции языка логичнее было бы написать x=1.+(2) . Мне захотелось проверить это предположение, и я ввел в редакторе кода следующее выражение

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

    Здесь я не могу не вспомнить одного из интервью David’а I, в котором он сказал, что мечтает реализовать IDE для Ruby в рамках BDS. Лично мне совершенно понятна его заинтересованность в этом. Объектно-ориентированный подход дает массу технологических преимуществ, позволяющих создавать качественные и функциональные IDE продукты и, тем самым, повышать скорость разработки конечных решений. Достаточно вспомнить, что MDA реализация от Borland получила перспективы лишь с переходом на .Net. Учитывая примитивность FreeRide (как же хочется увидеть в редакторе, после нажатия точки, выпадающий список всех методов), у DevCo есть прекрасная перспектива создать средство разработки, которое может стать реальным конкурентом ASP .Net в своем сегменте рынка.

    И еще одна маленькая ремарка. В своей предыдущей статье я делал краткий
    обзор нового языка
    D. И автор этого языка Уолтер Брайт высказывал мысль о том, что объекты уместны лишь там, где это действительно нужно. В Ruby реализован другой принцип – объектами является все. Я не буду судить у преимуществах каждого из этих подходов. На мой взгляд, основной вопрос заключается в том, как правильно этим распорядиться.

    Теперь давайте посмотрим, как в Ruby создаются классы. Но прежде немного определимся с терминологией.
    Декларация класса начинается со слова class (нижний регистр), затем следует его имя (начинаться должно с верхнего регистра). Заканчивается декларация класса ключевым словом
    end.

    class Magazine
    def set_mag(aName)
    @myname=aName
    end
    def get_mag
    return(@myname)
    end
    end

    В теле класса определены два метода set_mag и get_mag. Следующий фрагмент кода проиллюстрирует, как создается экземпляр класса.

    likedMagazine = Magazine.new
    likedMagazine.set_mag(‘Xakep’)
    puts(likedMagazine.get_mag)

    Обратите внимание на переменную @myname, используемую внутри методов. Знак «@» перед именем переменной означает, что она определена для каждого экземпляра класса и не может вызываться вне класса. Своеобразный способ задать область видимости или, если угодно, реализовать инкапсуляцию.

    Кстати, слово return в методе get_mag – опционально. На самом деле, Ruby в качестве возвращаемого значения возьмет последнее выражение.

    То, что Ruby полностью объектно-ориентированный язык доказывает следующая строка.

    В качестве результата будет выведено слово Object.
    puts self выдаст – main. Обратите внимание на то, что Object с синтаксической точки зрения – константа.

    На самом деле все создаваемые в Ruby классы наследуются от класса Object. Среди методов, описанных в этом классе, есть такой как to_s, определяющий строковое представление класса. Что бы проверить это, достаточно в последнем примере дописать еще одну строку

    Программа выдаст вполне корректный, хотя и малоосмысленный результат.
    Классы в Ruby никогда не бывают закрытыми. В существующий класс всегда можно добавить метод. Это работает как для стандартных классов, так и для «самописных». Иными словами мы всегда можем переопределить метод стандартного класса в наследнике.

    class Magazine
    def set_mag(aName)
    @myname=aName
    end
    def get_mag
    return(@myname)
    end
    def to_s
    @myname
    end
    end

    likedMagazine = Magazine.new
    likedMagazine.set_mag(‘Xakep’)
    puts likedMagazine.to_s

    В приведенном выше коде показано переопределение метода to_s. Теперь результатом выполнения программы буде не внутренний идентификатор объекта, а название (точнее, значение внутренней переменной myname) журнала.

    Еще один метод, описанный в классе Object – initialize. Это специальный метод, который вызывается при создании объекта. Он может оказаться очень удобным для задания начальных значений переменных создаваемого объекта.

    Теперь давайте попробуем разобраться с наследованием в Ruby. Естественно, что эта концептуальная идея ООП так же реализована. Вот пример реализации:

    class Magazine
    def set_mag(aName)
    @myname=aName
    end
    def get_mag
    return(@myname)
    end
    def to_s
    @myname
    end
    end

    Врубись в Ruby: подборка книг по Ruby и Ruby on Rails

    • Книги, 28 августа 2017 в 9:19
    • Иван Бирюков

    Ruby начал разрабатываться 23 февраля 1993 года и вышел в свет в 1995 году. Название навеяно языком Perl, многие особенности синтаксиса и семантики из которого заимствованы в Ruby (pearl — «жемчужина», ruby — «рубин»). Целью разработки было создание «настоящего объектно-ориентированного», лёгкого в разработке, интерпретируемого языка программирования.

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

    Ruby on Rails (RoR) — фреймворк, написанный на языке программирования Ruby. Он реализует архитектурный шаблон Model-View-Controller для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером баз данных. Является открытым программным обеспечением и распространяется под лицензией MIT.

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

    Ruby Best Practices

    Эта книга предназначена для тех, кто хочет писать на Ruby как профи. В ней рассказывается, как проектировать красивые API и работать с приёмами функционального программирования. Новичкам книга не подойдёт, а вот тем, кто уже разбирается в Ruby, она точно пригодится.

    Путь Ruby

    Цель данной книги — научить читателей эффективно использовать язык Ruby. В книге рассматривается версия Ruby 2.1. Издание содержит около 400 различных примеров, сопровождающихся четкой постановкой задачи и ее решением с подробными комментариями.

    Ruby on Rails для начинающих. Изучаем разработку веб-приложений на основе Rails

    Книга отличается достаточно низким входным порогом. Для ее изучения необязательно знать основы веб-разработки. В книге материал о Ruby on Rails, популярного фреймворка для разработки веб-приложений, дается с нуля. Автор Майкл Хартл, помимо Ruby on Rails, знакомит читателя с основами самого языка Ruby, языка запросов SQL, CSS, HTML. В книге много внимания уделено практическому использованию возможностей фреймворка. Также можно ознакомиться с фрагментом книги.

    Learn Ruby the Hard Way

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

    Head First. Изучаем Ruby

    С «Изучаем Ruby» вы в легкой и увлекательной форме на практике освоите все возможности этого языка, который сначала стремительно захватил сердца программистов Калифорнии, а затем и России.

    Прочитав эту книгу, вы научитесь писать элегантный код с применением всех его уникальных особенностей.

    Ruby Hacking Guide

    В этой книге подробное разбирается внутреннее устройство языка Ruby. Знать сам Ruby читателю не обязательно, но вот знание C и, в особенности, принципов ООП будет огромным плюсом.

    Ruby Essentials

    Эта книга отлично подойдёт для знакомства с Ruby. В ней разбираются все необходимые основы: от установки языка до обработки файлов и ООП. Каждая тема снабжена понятными примерами.

    Using Blocks in Ruby

    В этой книге рассказывается об одной из самых интересных фич Ruby — блоках. Они похожи на замыкания и лямбды и используются как в простых структурах языка вроде блоков, так и в сложных приёмах.

    Ruby Programming

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

    Ruby on Rails Tutorial: Learn Web Development with Rails

    В этой книге рассказывается об основах веб-разработки на популярном фреймворке Ruby on Rails. Чтобы дать читателю представление о работе с реальными проектами, в книгу включены примеры использования Git, GitHub и Heroku.

    Objects on Rails

    Эта книга посвящена использованию принципов ООП в веб-проектах на Ruby on Rails. Фокус смещён в сторону практических решений, которые берут наилучшее от «пути Rails» и объектно-ориентированного подхода.

    Также советуем ознакомиться с этим руководством по стилю оформления Ruby-кода и официальными гайдами по Ruby on Rails.

Ссылка на основную публикацию
Adblock
detector