RailsClub'Moscow 2014. Интервью с Аароном Паттерсоном (Aaron Patterson)
RailsClub 2014 стартует уже через 19 дней! Мы вышли на финишную прямую подготовки и начинаем публиковать традиционные интервью с нашими докладчиками.Первый разговор — с самым долгожданным гостем, Аароном Паттерсоном. Аарон член Ruby и Rails СoreTeam, топ 1 контрибьютор Rails на сегодня и RubyHero 2010.
Интервью публикуются с оригинальными ответами на английском языке и нашим вольным переводом.
Над чем ты сейчас работаешь?
Прямо сейчас я работаю над несколькими вещами:* Ускоряю генерацию views (включая routing) в Rails* Ускоряю тесты в ActiveRecord, экспериментируя с параллельным выполнением* Работаю над Rack 2.0
Right now I’m working on a few things:* Speeding up view generation (including routing) in Rails* Speeding up tests in ActiveRecord by investigating parallel execution* Working on Rack 2.0
Что является лучшей и худшей частью твоей работы?
Лучшая часть — помощь другим разработчикам и, конечно, удаление кода. Думаю, мое любимое занятие — удаление кода! Худшая — попытки разобраться, почему некоторый код такой, какой он есть. Работать над Rails иногда тяжело, потому что в некоторых местах код устарел, так что трудно отследить, откуда взялся какой-то кусок или почему определенный кусок кода именно такой.
The best part is helping other developers, and of course deleting code. I think my favorite thing to do is delete code! The worst part is trying to figure out why some code is the way that it is. Working on Rails is sometimes hard because the codebase is old in some places, so it’s difficult to track down where some code came from, or why a particular bit of cide is the way it is.
Что ты считаешь своим главным достижением в жизни / карьере на данный момент?
Думаю, пока мое главное достижение — улучшения производительности, которых я добился в ActiveRecord (этот проект называется AdequateRecord). Я годами учился рефакторить код, чтобы в последствии у меня получилось сделать такие улучшения производительности. Приятное чувство, когда трудишься над чем-то так долго и, наконец, видишь результат. Еще я счастлив, что удалось улучшить производительность без необходимости изменять публичное API.
I think my greatest achievement so far is the performance improvements I did on ActiveRecord (called AdequateRecord). It took me years to refactor the code to get to the point I could make this type of performance improvement. It feels good to work hard on something for so long and to see it actually ship. Also being able to make performance improvements without changing any user facing APIs makes me very happy.
На твой взгляд, в каком направлении будут развиваться Ruby и Ruby on Rails в ближайшие годы?
Я надеюсь, что в Rails мы сможем улучшить работу HTTP в Ruby веб-серверах. Я хочу, чтобы стриминг лучше поддерживался, и потом мы бы использовали это как стартовую площадку для поддержки HTTP 2. Что касается Ruby, меня воодушевляют улучшения в сборщике мусора. Думаю, в долгосрочной перспективе будущее Ruby связано с добавлением конструкций для работы с concurrency, возможно, с встроенным actor pattern.
For Rails, I hope that we can improve the HTTP story in Ruby webservers. I want streaming responses to be a better supported, and use that as a launching pad for HTTP 2 support. As far as Ruby is concerned, I am excited to see improvements to Ruby’s garbage collector. I think Ruby’s long term future will be to add more concurrency constructs, maybe the actor pattern built in.
В чём, на твой взгляд, самая важная проблема, которая стоит сейчас перед сообществом разработчиков Ruby и Ruby on Rails?
В перспективе для Rails сообщества, думаю, будет очень важно поддерживать HTTP 2, и это будет непросто. У нас большое количество программ, которые зависят от HTTP 1.1, и я думаю, проапргрейдиться будет непростой задачей.
On the far horizon for the Rails community, I think supporting HTTP 2 is very important and will be quite a challenge. We have lots of software that depends on HTTP 1.1, and I think it will be a challenge to upgrade.
Есть гем, на который ты мог бы показать пальцем и сказать: «Вот так нужно писать код»?
Думаю, minitest — это хороший пример. Он небольшой и простой для понимания. Но я должен сказать, ни один гем не идеален. Везде есть свои проблемы, вы можете их просто пока не видеть!
I think minitest is a good example. It’s small and easy to understand. But I have to say that no gem is perfect. Everything has some problems, you just might not see it yet!
Какие правила ты бы предложил установить для успешного развития проекта на Ruby с 250+ тыс. строк кода силами множества разработчиков с очень разным уровнем квалификации?
Полагаю, лучшее правило, которое я могу предложить, — это хорошая коммуникация внутри команды. Помимо этого, придерживайтесь принципов SOLID. Я думаю, это хорошие правила для новичков, а когда вы наберетесь опыта, то начнете понимать, когда их можно нарушать.
I guess the best rule I could give would be to have good communication among the team. Other than that, stick to the SOLID design principals. I think they are good rules for new people to follow, and as you gain experience, you’ll begin to understand when it’s OK to break those rules.
Есть ли хоть какой-то шанс, что в обозримом будущем MRI избавится от GIL?
Возможно, не в ближайшем будущем. Но я правда думаю, что это случится.
Probably not in the near future, but I do think it will happen.
Ты читаешь какой-нибудь блог, посвященный Ruby/RoR?
Я обычно читаю ruby subreddit. Еще мне нравится слушать подкаст Giant Robots, хотя они совсем не часто говорят о гигантских роботах.
I usually read the ruby subreddit. Also I like listening to the Giant Robots podcast, but they don’t really seem to talk about Giant Robots very often.
Чем тебе нравится заниматься, когда ты не пишешь код?
В основном готовкой и видеоиграми. Хотя больше готовкой. Прямо сейчас я собственноручно засаливаю бекон!
Mostly cooking and playing video games. Mostly cooking though. I am curing my own bacon right now!
Спасибо за интервью и увидимся в Москве!
Все вопросы, которые не задали мы, вы сможете задать Аарону и другим нашим участникам лично — 27 сентября, в центре Digital October. Вся программа — на сайте конференции RailsClub 2014 .
Регистрация и оплата участия — тут.
Наши спонсоры:
Генеральный спонсор — TopTalЗолотые спонсоры: Boookmate и FunBoxСеребряные спонсоры: AT-Consulting и LookatmeHR-партнер: DigitalHRОрганизаторы: Evrone и Undev
Будьте в курсе наших новостей, подписавшись на рассылку на сайте railsclub.ru, и следите за обновлениями: RailsClub.rutwitter.com/railsclub_rufacebook.com/railsclub