RailsClub 2016: интервью с Zach Briggs
Еще можно успеть заскочить в последний вагон и поучаствовать в главном Ruby событии года в России.
Купить билет и зарезервировать себе местечко в зале можно на Railsclub.ru
Сегодня мы хотим показать вам интервью с Zach Briggs, спикером предстоящей конференции.
Он из Чикаго, работает в TableXI, выступал с докладами и воркшопами на RailsConf, CodeMash, Barcelona Ruby Conf, KalamazooX и многих других конференциях.
Вот тезисы предстоящего доклада:
JavaScript for Rails Devs
JavaScript на фронтенеде сегодня — это болото баззвородов, плохих абстракций и неоправданно сложных инструментов. К счастью для нас, есть простые техники, которые мы можем использовать, чтобы не сгинуть в этой пучине и построить динамичный и современный интерфейс, который помогает людям решать проблемы.
В докладе Зак покажет технику, с помощью которой можно встроить компоненты JavaScript внутрь страниц, которые ренедерятся на сервере, чтобы создать островки интерактивности. Ее можно использовать в уже существующей системе, добавив всего 20KB заархивированного JavaScript и немного здравого смысла.
Мы считаем, что это стоит знать! Под катом ответы Зака на наши вопросы о технологиях и жизни. Как обычно, публикуем ответы в оригинале и нашем вольном переводе.
Как ты пришел в разработку на в Ruby?
Я окончил колледж в 2002, сразу после краха доткомов, и не мог найти работу в технологической области. Из-за этого в моей карьере случился десятилетний крюк, связанный с разборкой почты. Cначала вручную; затем при помощи машин, которые сортируют почту; затем подготовка данных, которые печатают на почте; позже создание моделей предсказаний для выбора адресов. Первые модели, которые я создавал, были в Excel, затем я начал использовать статические sql скрипты, когда мои модели стали столь популярны, что я больше не мог использовать Excel (120 Гб данных адресов только в одной из моих таблиц). Я выбрал Ruby и Rails, потому что мне нужно было создавать отчеты по почтовым индексам, в sql нет циклов типа for i = 1; i < 10… Когда я начал изучать Ruby, меня зацепило, я бросил свою работу, чтобы через 3 месяца стать разработчиком на Ruby.
I graduated from college in 2002, right after the .com crash and I could not get a job in tech. This threw my career path on a 10 year long detour into sorting mail; first by hand then maintaining machines that sorted mail, then preparing the data that was printed on the mail, then producing predictive models to select addresses. The predictive models I made were produced first in Excel and then using static sql scripts once my models became so popular that I couldn’t use Excel anymore. (120 gigabytes of address data in just a single one of my tables.) I picked up Ruby and Rails because I needed to produce reports by postal code and sql doesn’t provide loops. Once I started learning Ruby, I got hooked and left my job to become a Ruby developer within 3 months.
Над чем ты сейчас работаешь?
Моя команда в Table XI только что запустила thespicehouse.com. Я очень горжусь тем, как мы совместили традиционное Rails приложение с маленькими островами интерактивности. Сейчас я готовлю серию обучающих пособий и постов, чтобы помочь людям создавать красивые динамичные UI, используя JavaScript не больше, чем это необходимо.
My team at Table XI just launched www.thespicehouse.com. I’m very proud of how we blended a mostly traditional Rails app with little islands of interactivity. I’m now preparing a series of tutorials and blog posts to help people build beautiful, dynamic UIs without needed more JavaScript than what’s strictly necessary.
Чего не хватает в Rails, на твой взгляд?
Весь 2014 год я писал на Clojure (Script), весь 2015 — на JavaScript, который использовал JSON API из сервисов Golang. В 2016 я вернулся к Rails после двухлетнего промежутка, и я был счастлив как никогда! В других стеках есть клоны Sinatra, но они редко дают разработчикам такие приятные ощущения от работы, как Rails. Позвольте сказать, что я устал снова и снова заниматься миграцией баз, XSS защитой, link helpers, и asset manifest. В течение этих двух лет вне экосистемы Rails у меня было ощущение, что я жил без туалета и горячей воды. Но при всем при этом, Rails нуждается в поддержке инструментов, которые уже используются в экосистеме NPM. Asset pipeline трудно использовать частично, и еще тяжелее от него избавиться. Проблема в том, что без инструментов, основанных на Npm, рельсовику нельзя так просто взять и использовать CSS компиляторы, модули для ES6 и горячую замену модулей. Если бы я работал в продуктовой компании, я бы потратил время на то, чтобы выкинуть Sprokets и заменить их на Npm, но я занимаюсь дюжиной проектов. Замена Sprockets в каждом потребует слишком много труда.
I spent 2014 writing Clojure (Script) and 2015 writing JavaScript that consumed a JSON API from Golang services. 2016 has been my year of returning to Rails after being away for two years, and I couldn’t be happier. Other programming cultures have Sinatra clones but they rarely have a good Rails-like developer experience. Let me tell you, I am just about tired of re-solving database migrations, XSS protection, link helpers, and the asset manifest over and over again. I felt like I was living without toilets and hot water for those two years outside of the Rails ecosystem, so keep that in mind. That being said, Rails needs a means of leveraging the tooling that’s made available to NPM. The asset pipeline is hard to use half way, and even harder to get rid of. The problem is, without Npm based tooling I as a frontend focused Rubyist am locked out of code eliminating CSS compilers, ES6 modules that walk the AST, and hot module reloading. If I worked at a product company, I would take the time to pull out Sprokets in favor of an Npm based workflow, but I’m the JavaScript practice lead of a consultancy with dozens of projects. Replacing Sprockets for each project would just be too labor intensive.
Любимый язык программирования после Ruby, почему именно он?
На самом деле последнее время я больше пишу на JavaScript, чем на Ruby, хотя в глубине души я считаю себя рубистом. Я бы весь день писал Standard ML, если бы это порадовало пользователей.
I actually write more JavaScript than Ruby these days, though I consider myself a Rubyist at heart. I would write Standard ML all day long if doing so would delight users.
Какая технология, по твоему мнению, будет наиболее перспективной в ближайшее время?
Views, которые могут рендериться и на сервере, и на клиенте. Например это Meteor JS или React. Я не думаю, что одна из этих технологий «выиграет», их тяжело использовать эффективно на проектах с ограниченными бюджетами. Но я уверен, что нас ждет вездесущий рендеринг.
Views that can be rendered on the server or client. Think Meteor JS or React. I don’t think either of those technologies will «win,» they’re hard to use effectively on budget constrained projects, but ubiquitous rendering is coming, mark my words.
Что для тебя Open Source?
OSS — это единственный путь решать сложные проблемы. Секретность убивает софтверные инновации. OSS is the only way to solve hard problems. Secrecy kills software innovation.
Что последнего ты узнал из мира web разработки?
Я стараюсь не следить за новостями технологий. Вы никогда не увидите меня на Reddit или Hacker News, потому что это занимает слишком много времени и отнимает энергию, которую можно потратить на глубокое изучение. Недавно я читал об истории Unix и языка C, потому что хочу разобраться, как мы пришли туда, где сейчас находимся. Вот эта книга была опубликована в 2003. Она не новая, но мне понравилась!
I try not to pay attention to developer news. You’ll never find me on Reddit or Hacker News because it takes too much of my time and energy away from learning topics deeply. I’ve been reading about the history of Unix and the C programming language lately because I want to deeply understand how we got to where we are today. Here’s the book, published in 2003. www.catb.org/esr/writings/taoup/html/index.html Not exactly news but I’m enjoying it!
Любимые ресурсы (блоги/сайты/твиттеры) на темы веб разработки и программирования?
Я иногда слушаю Shop Talk Show, в принципе это все.
I listen to the Shop Talk Show every once in a while, but that’s about it.
Последняя прочитанная книга по программированию/технологиям?
Я только что закончил «Си 21 го века» и сейчас взялся за «Искусство Unix программирования». Хочу понять историю, как мы пришли к тому, что есть сейчас. Думаю самое время выучить С, который управляет языками, которые я использую.
I just finished 21st Century C and am now working on The Art of Unix Programming. I want to understand the history of how we got here and it’s just about time that I learned C, the language that runs the languages I use.
Какой бы ты дал совет разработчикам, которые хотят добиться больших успехов?
Делать сайты. Планировать на 25% больше времени, чем обычно, на свою работу, и тратить это время на то, чтобы разобраться, как сделать ее еще лучше. С подозрением относиться к каждой написанной вами строчке кода. Пытаться обосновать использование каждой фичи, каждого гема, каждой абстракции. Как минимум год быть настоящим TDD фанатиком, а затем полгода совсем не писать тесты. На самое главное — бороться за своих пользователей. Вы единственный, кто это будет делать.
Build websites. Take 25% longer to do your work than what you’re comfortable with so long as you can invest that time in learning how to do it better. Be suspicious of every line of code you write. Try to justify pulling out every feature, every gem, and every darling abstraction. Spend at least one year as a TDD zealot, then spend 6 months writing no tests at all. Most importantly, fight for your users. You’re the only one who will.
Не надоело программировать?
Мы все устаем от кода. Надо иметь хобби, которые не связаны с программированием, и друзей, которые не умеют писать код. Не работайте слишком много. А когда поймете, как этого сделать — сообщите мне? :)
Getting tired of coding happens to all of us. Have hobbies that don’t involve writing code and friends who don’t know how to code. Don’t work too much and when you figure out how to do that, let me know how it’s done.
Чем бы занялся, если бы у тебя было пару месяцев свободного оплачиваемого времени?
Я бы создал серию качественных скринкастов или написал книгу о том, как я создавал Rails приложения, «обогащенные» JavaScript.
I would produce a series of high quality screencasts or write a book on how I build JavaScript enriched Rails apps.
Чего ты в целом ожидаешь от конференции?
Я никогда не был в России, так что я хочу увидеть как можно больше достопримечательностей и встретить как можно больше замечательных людей. Я также хочу воспользоваться возможностью лично поблагодарить Матца, потому что если бы Ruby не был таким классным, я, возможно, не был сегодня разработчиком.
I’ve never been to Russia before, so I’m looking forward to seeing as many sights as I can and meeting as many delightful humans as I may. I also want to take the opportunity to personally thank Matz because if Ruby wasn’t this fun then I probably wouldn’t be a programmer today.
Если вы хотите поговорить с Заком лично, откладывать покупку билета уже некуда, остались последние места! Регистрация тут, цена билета — 9000 рублей.
Спасибо компаниям, которые поддерживают конференцию:
Генеральный партнер: Toptal
Золотые партнеры: Rambler&Co, AT-Consulting и Прогресс
Серебряный партнер: JetBrains
Бронзовые партнеры: Gitlab, VoltMobi, Рестрим, InSales и Seendex.
Пивной партнер, поддерживающий традиционное афтепати — CloudCastle
До встречи на RailsClub!