Эта статья была рецензирована Томом Паркином и Фредом Хитом . Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше!
Мы подошли к концу 2015 года, который был большим годом в Ruby. Я подумал, что будет круто вернуться и взглянуть на некоторые из эпосов (главных тем) года и на истории, которые их составили. Что-то вроде ретроспективы Agile-процесса, где я рассматриваю 2015 год как набор спринтов и смотрю, как мы это делали.
Чтобы полностью реализовать эту надуманную идею, мне нужно будет определить эпос. Я бы сказал, что почти каждый год у Ruby есть следующие основные области / эпики / независимо от того, где сообщество должно быть продуктивным, чтобы считать этот спринт / год успешным:
- Улучшить язык
- Расти сообщество
- Будьте в курсе остального мира программирования
Это те эпосы, которые я определил. Чтобы оценить, как работает сообщество Ruby, я собираюсь вернуться к публикациям в блогах, статьям и видео, которые затрагивают подтемы этих эпопей. Я уверен, что буду скучать по некоторым, но для этого и нужны комментарии, верно?
Наконец, любая ретроспектива, имеющая вес в драгоценных камнях, должна смотреть на то, что не сработало. Я сделаю это, чтобы завершить наше время сегодня. Я предполагаю, что некоторым проницательным читателям будет что добавить в мой список.
Улучшить язык
Рубин
Ruby 2.2 был выпущен около года назад, но я собираюсь включить его в отставание в этом году. 2.2 добавлено много вещей к языку, о чем свидетельствуют следующие истории:
- Добавление метаданных супер-метода значительно облегчило отладку.
- Symbol GC значительно повысил производительность сборщика мусора в Ruby, что, вероятно, было одним из лучших дополнений к языку за последние годы.
- О, да … еще одно изменение GC было добавочным GC, что привело к более стабильной производительности при сборке мусора.
- Были также некоторые небольшие изменения в языке, которые не должны остаться незамеченными.
Ruby выпустила 2.3.0 на Рождество и включает в себя следующие подарки:
- Вы можете заморозить все свои строки с помощью параметра CLI, который позволит вам увидеть, сколько работы вам нужно будет сделать, чтобы исправить то, как вы обрабатываете строки в своем коде.
- Если вы не слышали о « Операторе безопасной навигации» , значит, вы живете под камнем.
- Все релизы содержат исправления ошибок, но этот звучит плохо . В этом посте подробно рассказывается, как эта ошибка была исправлена, и это очень хорошее чтение.
Иногда улучшение языка означает прощание со старыми версиями. Ruby сделал именно это, когда закончил поддержку 1.9.3 . Проигрывает стуки Доброй ночи, 1.9.3, вас запомнят.
Одним из наиболее ожидаемых (и значительных) улучшений в любом интерпретаторе Ruby был JRuby 9000:
- Вот объявление о фактическом выпуске, в котором перечислены некоторые основные изменения.
- Видео JRuby EU Keynote стоит посмотреть, чтобы понять, насколько большой JRuby 9000. Чарльз Наттер и команда заслуживают огромного количества реквизита.
Еще один способ улучшить язык — выучить что-то новое и полезное. Было много этого:
- Этот Reddit спрашивает, какой твой любимый трюк с Ruby, и получает массу ответов.
- Как насчет того, чтобы действительно научиться профилировать с помощью стойки-мини-профилировщика ? Да, пожалуйста.
- Вот целый сайт, посвященный замечательным материалам Ruby .
- Вы никогда не можете знать достаточно о регулярных выражениях , не так ли?
На этой ноте, я думаю, 2015 год был «Годом всестороннего изучения статей по производительности» в Ruby:
- Ричард Шиман (который должен стать одним из MVP Ruby Blogger в этом году) сделал фантастическую серию из двух статей о свалках кучи в Ruby. Один и два
- Вот пост о том, как отлаживать утечки памяти в Ruby.
- Вы когда-нибудь путались с настройками сборщика мусора в Ruby? Я тоже, но, возможно, мы должны .
Битва года
Наконец, когда язык предлагает выбор своему сообществу, он повышается. Главный пример этого — битва между RSpec и Minitest:
- Если по умолчанию RSpec, возможно, попробуйте Minitest в следующий раз. Вы можете быть приятно удивлены.
- Если вы решили перейти насовсем, это поможет .
Ладно, ладно, так что, может быть, «Битва года» немного кликабита, но я чувствовал, что в этом году было много разговоров о Minitest vs RSpec.
Рельсы
Как и Ruby 2.2, Rails 4.2 был выпущен в конце декабря прошлого года. Опять же, я собираюсь внести это в отставание 2015 года, так как отголоски релиза действительно не ощущались до этого года. Вот что это принесло:
- Конечно, лучшее место, чтобы посмотреть на изменения — это заметки о выпуске , где вы увидите такие вещи, как ActiveJob, Asynchronous Mails и Adequate Record.
- ActiveJob прост в использовании и упрощает использование системы очередей.
- Общая задача отправки асинхронных писем стала проще тестировать и реализовывать .
Rails меняется по мере изменения серверного ландшафта. Вот несколько сообщений, чтобы облегчить переход к будущему:
- Rails все чаще используется для создания API, и вот несколько советов, как это сделать правильно . Ох, и вот еще немного .
- Есть ли коллекция удивительных драгоценных камней Rails? Вы держите пари, что ваш сладкий Руби есть! ,
Основным источником проблем для Rails всегда была безопасность. Там тоже были улучшения:
- Вот как убедиться, что вы настроили Rails безопасно .
- Понимание наиболее распространенных атак, таких как CSRF и Rails , может значительно улучшить вашу работу.
- Очевидно, что в 4.2 было несколько точечных выпусков, которые в основном касаются безопасности и исправлений ошибок. Проверьте релизы для деталей.
Конечно, было много сообщений о производительности, связанных с Rails:
- Блог Collective Idea опубликовал серию из четырех частей по оптимизации использования памяти Rails.
- Однако, прежде чем вы это сделаете, вы не должны понимать свою производительность в Rails .
- Как только вы поймете производительность, вы, вероятно, в конечном итоге настроите ActiveRecord . Это два поста от Джастина Вайса, другого кандидата в MVP.
В Rails 4.2.x на самом деле не было серьезных изменений, которые внесло ядро Ruby, но 4.2 закладывает основу для 5.0, которая будет иметь значительные изменения.
Сошедший с рельсов
Само собой разумеется, что предложение новых основанных на Ruby не-Rails фреймворков и библиотек улучшает язык. Вот коллекция некоторых новинок 2015 года:
- У Lotus был большой год, и определенно стоит проверить, хотите ли вы надежную OO-веб-инфраструктуру, которая не является Rails.
- Еще одна библиотека, которая отлично провела 2015 год — это Opal , любимый всеми компилятор Ruby-to-Javascript.
- Возможно, используя веб-фреймворк Opal, Volt — это веб-фреймворк, использующий Opal, позволяющий разработчику писать Ruby как для фронтэнда, так и для бэкенда.
- Pakyow — это новый веб-фреймворк, цель которого — сделать приложения в реальном времени проще простого . Стоит посмотреть, точно.
Вырасти Сообщество
Любой язык, который хочет процветать, должен иметь возможность развивать людей, которые знают этот язык. Duh. Для тех, кто новичок в Ruby, на борту есть несколько постов, которые помогут вам:
- Наш собственный Кингсли Сайлас создал путь для новых Рубиистов .
- Также в SitePoint Нихал Саху представил сообщество Ruby людям , плохо знакомым с языком .
Разнообразие в технологиях стало очень горячей темой, и для этого есть все основания. Такие вещи, как Rails Girls и RailsBridge сосредоточены непосредственно на поощрении разнообразия в Ruby. Вот несколько историй о разнообразии этого года:
- Стефани Бернс рассказывает о своем опыте работы в лагере Ruby-кода . Кодовые лагеря появляются все больше и больше, и формат, кажется, привлекает тех, кто нам нужен в нашем сообществе.
- Такие организации, как Makers Academy, предлагают стипендии женщинам для обучения.
- Я действительно люблю выпуск Hello Ruby , детской книги, чтобы заинтересовать всех детей программированием. Серьезно, купите эту книгу для кого-то, если вы еще этого не сделали.
В общем, это был хороший (но не очень) год для разнообразия в Ruby. Мы надеемся, что эта тема получит еще больше положительной поддержки в 2016 году.
Жить не хуже людей
Еще одна тактика выживания для любого языка в наши дни заключается в том, чтобы он мог меняться и интегрироваться с технологиями вне самого языка. В основе этого лежит Ruby, по умолчанию два больших интерпретатора (MRI и JRuby) подключаются к внешним средам исполнения. Вот некоторые из главных технических тем 2015 года, и как Ruby вписывается в микс.
докер
В конце 2015 года контейнеры будут в моде, поэтому вот несколько сообщений о Ruby и Docker:
- Создайте самый маленький образ Docker для своих приложений на Ruby с помощью этого поста от Travis Reeder.
- Тестировать Rails легко с Docker, просто спросите Марко Локера .
- Ник Готье демонстрирует, как распараллелить эти тесты Rails, используя Docker.
Действительно, в 2015 году нельзя было размахивать мертвым котом, не прочитав 10 сообщений о Докере. Изучите Docker, если у вас нет, это достойно обмана.
слабина
Вы используете Slack? Конечно, потому что ВСЕ используют Slack. Это здорово, полезно и стоит ВВП большинства развитых стран. Руби и Слэк отлично вместе, просто посмотрите:
- Создайте сервис Slack в Rails, потому что это весело.
- Или сделать это в Синатре . Slack любит все рамки.
- Вот драгоценный камень, который делает всю работу по публикации в Slack от Rails для вас.
Другие языки
Рубиисты всегда ищут другие языки, чтобы использовать их или учиться, чтобы сделать жизнь разработчиков лучше. Вот несколько историй о взгляде на ландшафт программирования:
- Парс перешел из Ruby в Go и обрел некоторое здравомыслие.
- В этом году Rust получил тонну прессы, и этот пост Роберта Куоллса показывает, как использовать Rust с Ruby.
- Тем не менее, новым Дарлингом Рубиистов должен быть Эликсир. Прочтите этот пост, чтобы понять, почему некоторые люди делают ставку на Эликсир как на следующую большую вещь.
И, наконец, некоторые другие вещи на ботаническом ландшафте, которые производили изрядное количество шума в Ruby:
- React — это текущая среда выбора JavaScript. Узнайте, как использовать его с Rails здесь .
- Если вы пишете веб-приложения на Ruby и не являетесь DHH, то микросервисы блестящие и новые. В этом посте показано, как спроектировать приложение Rails как микросервис.
Что не сработало
Все ретроспективы должны потратить немного времени на изучение того, что не сработало. Легко быть отрицательным, поэтому этот раздел может быть огромным, но я упомяну только пару пунктов:
- Добавление Spring в рабочий процесс разработки Rails хвалили и критиковали. Многие люди чувствуют себя как этот автор, который полностью разочаровался в Spring.
- Адам Хокинс упоминает тонны вещей, которые необходимо улучшить сообществу, и излагает дорожную карту высокого уровня.
- Я уже упоминал о микросервисах, и против них было немало негативных последствий. Ник Саттерер (автор многих, многих драгоценных камней и фреймворка Trailblazer ) написал эту статью об использовании хорошего дизайна, прежде чем полностью сходить с ума по микросервисам.
- Наконец, что случилось с уточнениями? Кто-нибудь их использует? Кандидат в члены MVP Старр Хорн , но я не чувствую, что многие люди чувствуют. Должны ли мы быть?
- 2015 год стал годом, когда мы узнали, что Timeout — это чистое зло . Я имею в виду, это ужасно .
Я уверен, что мне не хватает еще нескольких вещей, которые потерпели неудачу в Rubyland. Скажите мне, что я пропустил в комментариях.
И … .scene!
2015 год подходит к концу всего через несколько дней. Это был большой год для Ruby, язык, на мой взгляд, все еще имеющий большое будущее. Каким должно быть это будущее в 2016 году? У тебя есть мнение? Ну, поставьте это в комментариях или на форумах . Давайте сделаем 2016 год еще лучше для Ruby и нашего сообщества. С новым годом!