Иван Комаров

Иван Комаров

Темы
Неделя
Jun 1, 2015 → Jun 5, 2015

Архив недели @i_komarov

Понедельник


Привет. Я @i_komarov, и эта неделя для @jsunderhood будет экспериментальной, потому что я не имею отношения ни к JS, ни к фронтенду вообще.

Я работаю в Яндексе C++-разработчиком; сначала разрабатывал веб-поиск, потом перешёл в Яндекс.Маркет. «Бекендер», в общем.

Могу поддержать разговор на такие темы: алгоритмы, оптимизация производительности, ЯП типа C++ или Rust, тестирование…

…собеседование разработчиков, немножко машинное обучение (в нём я не большой специалист, но сталкиваться приходилось).

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

Окей, про собеседования: ИМХО, процесс собеседования в большинстве компаний — это ад, и вот почему: sockpuppet.org/blog/2015/03/0…

TL;DR Чтобы набирать хороших людей, нужны work-sample tests, но их почти никто не делает.

Вообще, в этом посте много хороших наблюдений, но про work-sample tests — на мой взгляд, ключевое.

На C++ пишут почти всё высоконагруженное. Поиск, Карты, Маркет и т. д. @listochkin

Не могу придумать осмысленный способ скомбинировать Rust и JS, если честно. :) @rastopyr_ua

Про оптимизацию у меня у самого вопрос: как фронтендеры профилируют программы, учитывая зоопарк браузеров/VM для JS? Всегда было интересно.

Предлагают писать аддоны к node.js на Rust. Мне кажется, вполне годная идея, и не удивлюсь, если кто-то уже такое пробовал.

По работе не погружался, написал небольшой pet project после выхода 1.0 (маршрутизатор для соревнований вроде Бегущего Города). @rastopyr_ua

Я, если честно, не видел примеров, когда верстальщик что-то бы делал для server side, поэтому судить сложно. @dosyara

Про «что должен знать и уметь» — мне своей колокольни кажется, что должен понимать, как работает сетевой стек, от уровня IP и выше. @dosyara

Вроде как сильно зависит от команды. Где-то вообще никаких препроцессоров не используют (в Маркете, например). @denysdovhan

Rust вполне может взлететь лет через 5, ИМХО. В Я. ничего не пишут на нём и вряд ли будут, мы консерваторы. @anton_davydov

radio-t.com/p/2015/05/02/p… — вот тут коллега из Я. очень хорошо про конкурентные преимущества Раста рассказывает.

Когда программа гарантированно не может засегфолтиться или обратиться к уже освобождённой памяти — это очень круто.

Некоторые говорят, что если у тебя программа падает, то ты плохой программист на C++. Но что-то вокруг меня хороших-то и нет.

shop.oreilly.com/product/978059… — про тестирование мне вот эта книжка нравится. @_cloudo

Ничего особо интересно. Perl, JavaScript, где-то вроде Erlang был. @rusgautama

В Маркете и Поиске все изощряются кто во что горазд. Кто-то пользуется vim'ом/emacs'ом, кто-то — полноценной IDE. @gxoptg_

Тут просят рассказать про моё увлечение биоинформатикой. Это история с грустным концом: dfyz.livejournal.com/189261.html, dfyz.livejournal.com/190120.html

Вкратце: загорелся, прорешал 150+ задачек на (офигенном) rosalind.info, но не придумал, что с этим делать дальше и куда расти.

То есть биоинформатика — это очень круто, но для человека не из отрасли не видно возможностей принести какую-то пользу.

Много интересного узнал про структуры данных на строках (суф. деревья/массивы, FM-index и т. д.; см., например, csedays.ru/theory2014/tin…), …

…разобрался, как устроены сырые данные у 23andme (правда, кроме того, что уже есть на их сайте, ничего полезного про свой геном не узнал), …

…приобрёл несколько полезных подписок в RSS-ридере, например homolog.us.

Есть, но это не совсем то. Хотелось, не меняя работы, на досуге сделать, например, полезный патч в какой-нибудь ассемблер ДНК. @oelifantiev

Вопрос: а правда, что во фронтенд-разработке повсеместно используется git? Кто-нибудь использует, скажем, hg в качестве основной VCS?

М-да, хотел набросить про то, что, ИМХО, hg логичнее и удобнее, чем git, но, судя по статистике ответов, меня просто забросают камнями.

Впрочем, моя психика непоправимо травмирована Subversion'ом, который приходится использовать на работе.

Вторник


Опенспейсы, но комфортные. В Мск больше места, в Екб меньше людей на единицу места. :) В Симфе, говорят, круто, но я там не был. @baxxabit

Я попробовал на Go что-то пописать и быстро приуныл. yager.io/programming/go… — вот тут хорошее описание проблем. @shuvalov_anton

Характерный пример: попробуйте отсортировать на Go массив int64. @shuvalov_anton

Судя по битве vim/ST/whatever, разгоревшейся в реплаях, спрашивать про тулзы опасно. Как справедливо заметили в реплаях же, ...

...чаще всего нет принципиальной разницы, что использовать, но спорить про превосходство любимого редактора/VCS/OS можно до хрипоты.

Поэтому задам более фундаментальный вопрос: как вы используете сode review? На что обращаете внимание при ревью, зачем вообще оно вам?

Я ещё не встречал двух человек, у которых взгляды на code review полностью сходились бы, поэтому интересно послушать разные мнения.

ИМХО, code review — это в первую очередь диалог «за код», а не средство отлавливать баги, как почему-то думают многие.

По опыту кажется, что code review (в отличие от тестирования) баги, кроме самых тривиальных, ловит отвратительно.

Главная польза ревью: советы вида «поговори с X, если эта фича больше не нужна, то тут можно сделать проще, а этот модуль вообще выкинуть».

Ну и в целом, всегда полезно понимать, что «ты делаешь не фигню»™. Поэтому я за code review всех коммитов, кроме «поправил опечатку в имени»

Среда


Зависит от команды. Наши разработчики смотрят в графики на Graphite (graphite.readthedocs.org/en/latest/over…), плюс у админов (@market_ops_crew) свои приборы

Когда-то я научился печатать в раскладке colemak.com, и ни разу ещё об этом не пожалел. Очень рекомендую, пальцы скажут спасибо.

А кто-то использует совсем эзотерические раскладки? Скажем, kaufmann.no/roland/dvorak/ или (nightmare mode) Diktor из ergosolo.ru/reviews/histor…?

Как ни странно, vim. hjkl после слезания с QWERTY пользоваться будет сложно, но я, честно говоря, и до этого никогда ими не пользовался. :)

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

Многие мечтают уехать в условный Таиланд с ноутбуком и оттуда чего-то делать, но для меня это был бы скорее ночной кошмар, чем мечта.

Чего там говорить, я страдаю даже от невозможности живого общения с коллегами из Мск, хотя у нас есть отличная видео- и голосовая связь...

...а уж уехать совсем и изолироваться — это я вообще не представляю себе, как можно заставить себя дольше недели в таком режиме продержаться

То есть с технической точки зрения — абсолютно никаких проблем работать не из офиса, но психологически это было бы для меня дико некомфортно

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

Случайная подборка ссылок для тех, кому интересно, как устроены ДЦ в разных компаниях:

code.facebook.com/posts/14330936… — специальное решение Фейсбука для хранения миллиардов фоточек.

blog.serverfault.com/2015/03/05/how… — как StackOverflow обновляет у себя железо.

habrahabr.ru/company/yandex… — и немного общих слов про то, как устроен новый ДЦ Яндекса в Финляндии.

…отличное чтиво для развития комплекса собственной неполноценности (по крайней мере, на меня эти статьи производят именно такой эффект).

Самое интересное, что мне когда-либо приходилось делать с целым ДЦ, — закрыть его от продакшен-нагрузки и тестировать там нагрузочно релиз.

Ситуация была исключительная, мы так больше никогда не делали. Но это всё равно даже близко не то, что вытворяют ребята по ссылкам.

Поретвитил подборку мнений про плюс/минусы удалённой работы. Внезапно есть ненулевое количество людей, которым тоже удалёнка не по нраву.

Пятница


Немножко укороченная экспериментальная неделя бекенда во фронтенд-аккаунте объявляется закрытой. :) Напоминаю, что с вами был @i_komarov.

Спасибо большое за общение и вопросы, это был очень интересный и познавательный опыт.

Ссылки