Обновить
8K+

Ruby *

Динамический высокоуровневый язык программирования

1,1
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Чарльз Наттер о динамических языках в JVM на jug.msk.ru

Время на прочтение2 мин
Охват и читатели3.6K
На очередной встрече московского сообщества Java-разработчиков jug.msk.ru, прошедшей 4 октября 2018 года, Чарльз Наттер рассказал о технологиях, используемых JRuby и другими динамическими языками для JVM.


Читать дальше →

Чарльз Наттер. Как перенести древний монолитный проект на JRuby и стоит ли это делать?

Время на прочтение5 мин
Охват и читатели2.5K
Через пару дней в Москве пройдет конференция RubyRussia. Наш гость Чарльз Наттер (работает над JRuby и JVM поддержкой в Red Hat) ответил на пару вопросов.

Как вы попали в мир программирования и Ruby?

В 2004 году я работал по контракту в правительственной фирме в качестве Java Enterprise архитектора. Я работал над проектом для Министерства сельского хозяйства США, и проводил пару недель в месяц в Вашингтоне. Одна из таких поездок совпала с RubyConf 2004, и поскольку один из моих друзей давно рекомендовал мне обратить внимание на Ruby, я решил сходить на конференцию. Так я оказался на мероприятии, посвященном Ruby, не имея никакого представления об этом языке… но я понял каждый кусочек кода, каждый приведенный пример. Я был поражен и пообещал себе найти способ принести Ruby в мой Java-мир.

Над какими проектами вы работаете сейчас?
Читать дальше →

Как мы собрали 12-этажный стек технологий и не сошли с ума

Время на прочтение8 мин
Охват и читатели7.3K
Appodeal — это компания из ~100 человек, которые работают в Москве, Сан-Франциско, Барнауле, Луцке, Кирове, Барселоне, а с июня 2018 года — еще и в Минске.

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

image

Для тех, кто еще не знаком с Ad Tech — это область работы технологичных компаний, которые работают в сфере рекламы. Когда рассказываешь кому-то, что ты работаешь в сфере мобильной рекламы, то люди часто реагируют скептически — видимо, на ум приходит надоедливая реклама «Азино три топора». На самом деле это лишь верхушка айсберга, и вся эта “дикая” реклама не имеет никакого отношения к настоящему рекламному бизнесу.
Читать дальше →

Интервью c Аароном Паттерсоном, спикером конференции RubyRussia 2018

Время на прочтение12 мин
Охват и читатели2.6K
Привет! Продолжаем серию интервью со спикерами конференции RubyRussia. Аарон Паттерсон (он же tenderlove) — член Ruby core team и Rails core team, ведущий инженер-программист в маленьком стартапе под названием GitHub. Павел Аргентов пообщался с Аароном перед его второй поездкой в Россию.



Начнем со стандартного вопроса. Какова твоя личная ruby-история? Как ты сел на этот поезд? Расскажи про свои достижения? Получилось ли сделать мир лучше?
Читать дальше →

Интервью со спикером конференции RubyRussia Маркусом Ширпом

Время на прочтение5 мин
Охват и читатели1.1K
Всем привет! Чуть больше, чем через неделю в Москве пройдет конференция RubyRussia. В сегодняшнем интервью разработчик из Evrone Михаил Моргунов пообщался с одним из наших спикеров — Маркусом Ширпом, создателем популярного инструмента Ruby Mutation Testing.


Первый вопрос — про Mutant. Что нам нужно знать об этом инструменте? О чем будет доклад на RubyRussia?
Читать дальше →

Идеала нет: как я искал язык программирования для себя

Время на прочтение6 мин
Охват и читатели19K


От переводчика: этот пост — несколько сокращенный перевод оригинальной статьи Гала Шлезингера, опытного frontend-разработчика. Ему очень нравится программировать, а его хобби — изучение различных (и порою весьма неожиданных) языков программирования как для рабочих целей, так и для собственных pet-проектов. О достоинствах и недостатках нескольких из них Гал и рассказывает в этом материале.

Несмотря на то что на работе я чаще всего работаю с Java, JS и Ruby, мне нравится изучать новые языки и фреймворки. Мне кажется, что постоянное обучение помогает формировать новые интересные идеи, которые можно использовать при необходимости для решения определенной задачи. Кроме того, функциональное программирование помогает понять больше про объектно-ориентированное программирование, а постоянная работа с Rails позволяет изучить многие нюансы тестирования (конечно, если вы будете практиковаться). Проблема в том, что рано или поздно в процессе изучения других языков вы начинаете задумываться: а есть ли среди них идеальный, где были бы собраны все полезные функции, найденные вами в других?

Код в стиле Ruby: грамотно, красиво и рационально. Пример для начинающих

Время на прочтение4 мин
Охват и читатели26K
image

Это перевод поста Майкла МакКи. Майкл — профессиональный программист, который время от времени делится своим опытом и навыками с коллегами, как начинающими кодерами, так и профессионалами.

Большинство программистов в последнюю очередь думают об эстетике кода, который они создают. Конечно, общих правил придерживаются почти все. Но что, если пойти дальше? Хороший код, в первую очередь, должен работать. Но я считаю, что у него должен быть свой стиль, это касается не только содержания, но и формы.
Читать дальше →

Различия Phoenix и Rails глазами новообращённого

Время на прочтение8 мин
Охват и читатели10K

Что больше всего бросилось в глаза заядлому рубисту, когда он только только начал изучать Elixir с Phoenix-ом.
Посмотреть чужими глазами

Как поднять проект тестирования на windows 10 (Cucumber + capybara + selenium-webdriver)

Время на прочтение4 мин
Охват и читатели9.9K
Статья рассчитана на знакомоство с автотестированием и разверткой среды в Windows 10 и предназначена для тех, кто хоть чуть — чуть знает о Cucumber + Capybara + Selenium-webdriver. Идея для статьи появилась из-за различий в разворачивании окружения на Windows 10 и Linux.


Пару слов о gem-ах (библиотеках) Cucumber + Capybara + Selenium-webdriver, которые нужны для запуска и наполнения проверками UI тесты.

Cucumber


Сucumber — гем, позволяющий писать тесты на человеческом языке. Для этого используется нотация Gherkin, которая определяет структуру и правила написания сценариев. Подробно почитать можно тут


Capybara


Capybara — гем, позволяющий искать/кликать/… по элементам браузера. Т.е. представляет собой связующее звено между Cucumber шагами (steps) теста, и webdriver-ом (экземпляр вызываемого браузера). Здесь можно глянуть методы этого гема.

Selenium-webdriver


Selenium-webdriver — это инструмент для автоматизации действий веб-браузера. По сути это есть экзмеплял (инстанс) браузера.
Читать дальше →

Интервью со спикером конференции RubyRussia Годфри Чаном

Время на прочтение16 мин
Охват и читатели1.4K
Всем привет! 6 октября в Москве пройдет конференция RubyRussia — cтарый добрый RailsClub, но с новым именем. Спикеры этого года: Aaron Patterson, Charles Nutter, Godfrey Chan, Maciej Mensfeld, Markus Schirp и не только. Ну и конечно, 600 участников, лучшие компании со стендами в холле и огненное афтепати.

Традиционно, перед конференцией мы разговариваем о самых актуальных темах в Ruby и Rails. Сегодня знакомим вас с Godfrey Chan — ex-Rails core team, работает в Tilde, где разрывается между созданием умного Rails-профайлера Skylight, работой над Ember.js и развитием JavaScript на TC39. Тим-лид из Evrone Дмитрий Матвеев задал нашему гостю важные вопросы.

image

Читать дальше →

Осваиваем новые языки программирования, опираясь на уже изученные

Время на прочтение9 мин
Охват и читатели11K
Здравствуйте, коллеги.



Снимок Дженни Марвин с сайта Unsplash

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

Понижаем уровень связанности с помощью DI для улучшения тестируемости кода, пример реализации

Время на прочтение4 мин
Охват и читатели2.1K

В началье статьи хочу сразу заметить, что я не претендую на новизну, а только хочу поделиться/напомнить о такой возможности как IoC DI.


Также у меня почти нет опыта написания статей, это моя первая. Я старался как мог, если что не судите строго.


О чем вообще речь


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


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


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


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


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

Читать дальше →

Курс «Языки веб-программирования» (на основе Ruby) от МГТУ им. Н. Э. Баумана на канале Технострим

Время на прочтение14 мин
Охват и читатели22K


В этой статье мы расскажем о курсе «Языки веб-программирования», который читается на кафедре «Компьютерные системы и сети» (ИУ-6) МГТУ им. Н.Э. Баумана. Примеры приводятся на Ruby, а сам курс и представляет собой 16 видеолекций, доступных бесплатно на канале Технострим. В «Бауманке» курс читается для студентов второго курса, уже знакомых с высокоуровневыми языками программирования, такими как Pascal, C++ или Java. Основной акцент делается на системное понимание технологий, используемых в веб-программировании, а не на глубину освоения именно технологий Ruby. Поэтому курс также будет полезен слушателям, имеющим отрывочные знания о веб-технологиях на любых языках.

Ближайшие события

Сокрытие в Ruby. А ещё скрываем классы из Top-Level

Время на прочтение3 мин
Охват и читатели3.4K

Что бы далеко не ходить, сразу определимся с терминами.


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

Взято с вики. В языке программирования Ruby с инкапсуляцией вроде как всё хорошо. С сокрытием на первый взгляд тоже, нам доступны локальные переменные, переменные инстансов, разные уровни доступа к методам (public, protected, private). Но иногда этого может не хватать.

Читать дальше →

RubyMine 2018.2: присоединение отладчика к удаленным процессам, chruby, улучшенный анализ кода и многое другое

Время на прочтение4 мин
Охват и читатели3.3K
Привет, Хабр!

Сезон летних обновлений IDE на базе IntelliJ продолжается, и в этой серии мы расскажем, чему новому научился RubyMine в версиях 2018.1 и вышедшей на днях RubyMine 2018.2.


Молчание Ruby-эксепшенов: транзакционный Rails/PostgreSQL триллер

Время на прочтение9 мин
Охват и читатели7.2K

Это история о том, почему вы никогда не должны замалчивать ошибки, когда вы внутри транзакции в базе данных. Узнайте, о том как правильно использовать транзакции и что делать, когда их использовать — не вариант. Спойлер: речь пойдёт об advisory locks в PostgreSQL!


Я работал над проектом, в котором пользователи могут импортировать большое количество тяжёлых сущностей (назовём их товарами — products) из внешнего сервиса в наше приложение. К каждому товару при этом загружается ещё больше разнообразных связанных с ним данных с внешних API. Нередка ситуация, когда пользователю нужно загрузить сотни товаров вместе со всеми-всеми зависимостями, в итоге импорт одного товара занимает ощутимое время (30-60 секунд), а весь процесс может порядочно так затянуться. Пользователю может надоесть ждать результата и у него есть право нажать кнопку «Отмена» в любой момент и приложение должно быть полезным с тем количеством товаров, которые удалось загрузить к этому моменту.

Читать дальше →

Saint P Rubyconf 2018: 10 июня, Санкт-Петербург

Время на прочтение1 мин
Охват и читатели1.8K
Здравствуй Хабр и Ruby-сообщество! Спешим сообщить, что уже совсем скоро, 10 июня 2018 года, во второй раз состоится конференция для разработчиков на Ruby и Ruby on Rails — Saint P Rubyconf 2018. Слоган конференции — «Ruby: the best parts». Место проведения — Санкт-Петербург, Корпус ИТМО на ул. Ломоносова, 9.
Читать дальше →

Анонс митапа RubyRoars #1 в Харькове

Время на прочтение2 мин
Охват и читатели1.1K


Большой опыт проведения митапов Sync.NET, ThinkPHP, ThinkJava, WordPress Kharkiv и iThink привел нашу команду к логичному вопросу — а не пора ли нам создать и Ruby-сообщество? Пора, именно поэтому мы приглашаем всех Ruby-разработчиков на стартовую встречу RubyRoars, призванную положить начало новому большому сообществу от NIX Solutions :).
Читать дальше →

GeekBrains открывает набор на бесплатные курсы подготовки программистов

Время на прочтение2 мин
Охват и читатели15K


Всем привет! Мы открываем набор на бесплатные курсы обучения для Ruby и Frontend-разработчиков. Для участия необходимо пройти конкурс. Пять лучших выпускников пройдут стажировку у нас и останутся работать в офисе. Заявки на обучение принимаются по 17 июня включительно. Подробности набора и программа обучения – под катом.

Читать дальше →

Переиспользуемые UI компоненты в приложениях на Ruby on Rails

Время на прочтение5 мин
Охват и читатели3.6K

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

Читать дальше →