Статьи

Сообщество Ruby: Введение

Человеческие объятия разноцветные и рядом

Окунувшись в Ruby примерно год назад, я столкнулся со многими проблемами и незнакомыми концепциями в экосистеме Ruby. Такие вещи, как тестирование, гемы, кто есть кто в сообществе, рейк, rdoc, веб-вещи, такие как Sinatra и Rails, были очень запутанными. Это был полезный опыт, но поиск включал много проб и ошибок. Эта статья надеется немного прояснить ситуацию и дать ясное и всестороннее представление о Ruby, его сообществе, его экосистеме и инструментах, которые используют Rubyists.

Идея Рубина

Ruby — это динамический язык программирования с открытым исходным кодом, ориентированный на простоту и производительность. У него элегантный синтаксис, который легко читать и легко писать. ruby-lang.org

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

Например:

5.times do puts "This is beautiful and readable" end 

или:

 puts "car".upcase 

Вы можете прочитать это. Я бы поставил мою последнюю зарплату, чтобы вы могли прочитать и понять, что она делает. Нет беспорядка и ненужного жаргона. Там нет ненужных скобок или символов. Это просто, ясно и кратко.

Это неотъемлемая часть самой природы сообщества Ruby. Многословие и беспорядок отвратительны для Rubyists (хотя некоторые все еще не понимают это). Есть также общепринятые руководства по стилю. Сообщество разработало эстетику, настолько утонченную, что они обращают внимание не только на намерения и производительность, но даже на то, как код Ruby размещается на экране.

Для полного представления о идиоматическом Ruby и о том, как писать код на Ruby. Красноречивый Ruby от Russ Olsen — замечательная ссылка.

Первичные Люди

Давайте посмотрим на некоторых из основных членов сообщества Ruby.

Юкихиро Мацумото: создатель Ruby

Юкихиро «Мац» Мацумото создал Ruby в середине 1990-х годов. Он — человек, стоящий за большинством решений, которые делают Ruby тем, чем он является сегодня. Матц по-прежнему возглавляет разработку эталонной реализации языка, MRI (для Ruby Interpreter Матца).

Вы можете следить за ним в Твиттере на @yukihiro_matz .

Дэвид Хайнмайер Ханссон: создатель Ruby on Rails

David Heinemeier Hansson создал Ruby on Rails (самый популярный веб-фреймворк Ruby) из своей работы над Basecamp. Он выпустил фреймворк как открытый исходный код в июле 2004 года. Он решительный и очень громкий о своих взглядах. Идеи DHH (как он известен в сообществе) — большая часть того, что сделало Rails тем, чем оно является.

Вы можете следить за ним в Твиттере на @dhh .

Аарон Паттерсон: основной вкладчик Ruby и Rails

Днем Аарон Паттерсон — программист с умеренными манерами для Red Hat, чей код на Ruby выглядит почти так же хорошо, как и он. Ночью он надевает костюм Pink Warrior, который дает ему возможность участвовать во многих проектах с открытым исходным кодом, таких как nokogiri, Ruby и Rails. Если вы видели, как кто-то целует Маца или DHH на конференции, это, вероятно, он. Ruby on Rails Core

Я, вероятно, не мог объяснить прохладную странность Аарона лучше, чем это.

Вы можете найти его в Твиттере на @tenderlove и его блоге на http://tenderlovemaking.com .

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

Управление драгоценными камнями и зависимостями

Менеджеры зависимостей предоставляют простой способ управления библиотеками, которые вы используете. Большинство современных языков программирования имеют выделенных менеджеров зависимостей. Например, в PHP есть Composer, в Node.JS есть npm, а в Ruby есть RubyGems .

Библиотека Ruby называется gem . Вы можете установить гем в вашей системе (если у вас установлен Ruby) с помощью:

 sudo gem install <gemname> 

( вам может не понадобиться sudo )

Эта команда установит библиотеку в глобальную установку Ruby, но что делать, если вы хотите установить определенные гемы только для одного проекта. А вот и Бандлер .

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

Чтобы использовать Bundler, создайте Gemfile в корневом Gemfile вашего проекта и перечислите нужные вам гемы ( bundle init создаст файл для вас).

Вот пример Gemfile :

 source "https://rubygems.org" gem "rails" gem "nokogiri" gem "odyssey" 

Чтобы установить все гемы в Gemfile, запустите:

 bundle install 

из каталога проекта.

Вы даже можете легко создавать драгоценные камни с помощью упаковщика. Чтобы узнать больше, ознакомьтесь с RubyGems

тестирование

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

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

Рельсы, Синатра и Сеть

Если вы не заметили, Ruby — это язык программирования общего назначения, а не просто язык сценариев, такой как PHP. Таким образом, Ruby можно использовать практически для чего угодно. Но одно из самых популярных применений Ruby — это веб-разработка, отчасти потому, что Ruby On Rails делает это невероятно простым.

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

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

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

Есть много других веб-фреймворков Ruby, таких как Volt, Padrino и Lotus, которые набирают обороты, но Rails и Sinatra должны быть в вашем наборе инструментов.

Автоматизация с граблями

Есть много вещей, которые вы должны делать снова и снова при написании программного обеспечения, например:

  • Очистка вашего Gemfile
  • Инициализация Git-репозитория
  • Настройка драгоценных камней для ваших наборов инструментов, таких как Bootstrap

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

Фреймворки, такие как Rails, предоставляют Rake-файлы по умолчанию, которые автоматизируют многие задачи, связанные с веб-разработкой. Например, в проекте Rails вы можете запустить:

 rake routes 

просмотреть все объявленные маршруты в вашем приложении Rails или

 rake db:migrate 

перенесет (создаст ваши таблицы и другие объекты базы данных) вашу базу данных.

Чтобы узнать больше о Rake, ознакомьтесь с Rake: автоматизировать все в SitePoint.

Завершение дела

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