Урок 1: «Рубин нужен не только для лазера»


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

Естественно, что для того, чтобы создавать сайты на RoR, нужно уметь программировать на самом языке Ruby. К своему неудовольствию, я обнаружил, что литературы, посвященной этому языку крайне мало. Это и побудило меня начать цикл уроков, посвященных программированию на Ruby с последующим переходом на рельсы (on Rails).

Итак, приступим. Для начала программирования нам понадобятся интерпретатор языка Ruby. Да-да, это очередной интерпретируемый язык, чтобы вы знали. А это означает полную переносимость кода. Скачать интерпретатор можете c http://www.ruby-lang.org/en/downloads/.

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

Итак, запустив Interactive Ruby, мы наберем следующую команду:

puts “Привет программисту на Ruby!”

И нажмем на Enter. У вас должно получиться такое:

Знаю, что данное выражение набило оскомину, но нужно же с чего-то начинать?! Честно говоря, Interactive Ruby я сразу же затер на своем компьютере. Гораздо удобнее использовать какой-нибудь редактор с подсветкой синтаксиса (я использую SCITE или Notepad ++) и командную строку.

Скрипт на Ruby должен иметь расширение .rb. Тогда в командной строке мы вызовем наш скрипт так:

ruby C:\Hello.rb

На экран выдаст нашу программу. Но так тоже неудобно. Гораздо лучше использовать какую-либо среду разработки с расширением под Ruby. Я использовал и Eclipse, но вам могу посоветовать Net Beans IDE.

Эта среда разработки горячо любима программистами java. Однако ее расширения делают ее очень удобной и для других языков. В частности, моя позволяет мне писать скрипты PHP, Ruby и программы на C++. Вам просто нужно будет указать, что войдет в вашу сборку нет бинса.

Что даст нам Net Beans? Подсветка синтаксиса программы, автозавершение кода по нажатию Ctrl + Space, документацию по функциям и методам и много чего удобного. Так что в данном цикле уроков я буду использовать именно эту среду.

Давайте теперь напишем наш Hello World.rb в Net Beans. Запустим среду и выберем File ->New project -> Ruby – >Ruby Application:

Нажмите Next и введите имя вашего проекта. Я назову проект Lessons, вы же вправе называть его как угодно. Обратите внимание, что NetBeans предлагает в роли платформы Ruby javaшный вариант интепретатора – Jruby. Ничего страшного здесь нет, скрипты будут работать и в обычном интепретаторе Ruby. Однако всегда можно поменять настройки на обычный Ruby, благо NetBeans может сделать это в два клика. Об этом мы поговорим в других уроках.

Теперь нажмите кнопку Finish и среда сгенерирует весь проект.

Как видите, мастер создал шаблон нашего приложения. Наш скрипт находится в файле main.rb. Переименуйте его в hello.rb. Теперь можно нажать на клавишу F6 или на зеленую стрелочку:

И ваш скрипт запустится. Чем Net Beans (впрочем, и Eclipse) мне нравится, так это тем, что в  нижнем окне можно наблюдать ход выполнения программы, что очень удобно для отладки.

Пока все. Мы настроили среду разработки и написали первый скрипт. Урок 2 будет посвящен уже синтаксису языка.

Следующий урок >>


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

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

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

Тем не менее, если вы испытываете трудности с ООП, то книга Изучаем Ruby все расставит по местам и язык для вас станет понятен.

 1015903892 Ruby on Rails — один из наиболее популярных фреймворков для разработки веб-приложений, но его изучение и использование не самая простая задача. Эта книга поможет вам решить ее независимо от того, имеете ли вы опыт веб-разработки вообще и Rails в частности. Известный автор и ведущий разработчик Rails Майкл Хартл познакомит вас с Rails на примере разработки трех приложений. Автор рассказывает не только о Rails, но также описывает основы Ruby, HTML, CSS и SQL, которые пригодятся вам при разработке своих веб-приложений. Начиная обсуждение каждой новой методики, Хартл доходчиво объясняет, как она помогает решать практические задачи, а затем демонстрирует ее применение в программном коде, достаточно простом и понятном.

Книга весьма и весьма на достойном уровне. 2017 года и хорошо написана. И название весьма кстати: Ruby on Rails для начинающих

 

Комментарии

7 комментариев на “Урок 1: «Рубин нужен не только для лазера»”
  1. Сергей:

    Классно! Впервые вижу уроки по программированию, которые можно читать без желания бросить изучение.
    Вячеслав, а вы и правда были преподавателем в вузе? Тогда ваши студенты много потеряли без вас.
    Скажите, у меня стоит Ubuntu — как там использовать Ruby? Я так понял, что в Linux он уже установлен?

    • admin:

      Да, я был преподавателем в вузе. Но то было давно и я стараюсь даже не вспоминать об этом. Тем не менее, в моих уроках отражается моя прошлая преподавательская деятельность.
      Насчет Ruby в Linux вы правы — он должен быть там. Просто в терминале наберите ruby -v и посмотрите, что там выдаст.
      Тем не менее, для написания скриптов Ruby вам нужно будет какой-нибудь текстовый редактор с подсветкой синтаксиса. Честно говоря, я сторонник Fedora и KDE, в которую включается редактор KWrite. Насчет Ubuntu, насколько я помню, gedit не дает подобных возможностей. Тем не менее, посмотрите для него плагины.
      Как вариант, можете скачать Eclipse и для него найти расширения под Ruby. Так будет даже лучше.

  2. VeGA:

    Интересно, чем так спамерам нравится эта страница? Кстати, спамеры, вы еще не поняли, что ни одно ваше сообщение так и не опубликуется? Я не стал ставить плагины для капчи, но антиспам у меня стоит. Так что не стоит даже пытаться спамить комменты. Кроме того, с сегодняшнего дня все спамерские сайты я буду отдавать в черный список Askmet. Уважайте чужую собственность.

  3. Виталий:

    А почему у меня не русский язык??а абракадабра??

    • Вячеслав "VeGA" Головлев:

      Это из-за кодировки. В консоли стоит 866 кодировка, а в Windows — 1251. Нужно настроить консоль и NetBeans. Спасибо, что обратили внимание на эту проблему. Я напишу статью, как правильно настроить NetBeans и окружение

  4. Smoke:

    Спасибо Вам. Благодаря Вам желание появилось.
    Как хорошо что Вы есть!

  5. Светлана:

    Здравствуйте, а не могли вы подсказать почему написанный код не воспринимает запросы на русском языке? И почему не выводит полностью ссылки, а только их фрагмент и многоточие? Как это исправить? Буду очень признательная если поможете
    # coding: utf-8
    require ‘rubygems’
    require ‘nokogiri’
    require ‘open-uri’

    puts ‘Ruby-скрипт для выделения текстов из статей’
    print ‘Введите ваш запрос (Вместо пробела используйте нижнее подчеркивание): ‘
    Query = gets.chomp
    print ‘Введите количество страниц: ‘
    N = gets.chomp.to_i
    puts ‘Ваш запрос: ‘ + Query
    puts «Количество страниц: #{N}»
    puts ‘Список полученных ссылок:’
    (1..N).each do |page_num|
    puts «Страница #{page_num}»
    url = open»http://www.google.com/search?q=#{Query}&start=#{(page_num-1)*10}»
    doc=Nokogiri::HTML url
    links=doc.css(‘cite’)
    links.each do |link|
    puts link.text.encode(«utf-8»)
    # Если ссылки длинные выводит их с многоточием.
    end
    puts
    end

Добавить комментарий

Внимание! Не будут добавляться комментарии в виде откровенного спама или прямого анкора на свои сайты. Все спамеры будут передаваться в базу Akismet

Подтвердите, что Вы не бот — выберите человечка с поднятой рукой: