i_komarov

1 июня 2015

# Понедельник 53 твита

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

10:14

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

10:14

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

10:15

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

10:15

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

10:16
@jsunderhood давай собеседования, оптимизация, тестирование
10:39

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

10:40

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

10:40

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

10:41
@jsunderhood расскажи, что в Яндексе пишут на c++ и зачем.
10:42

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

10:44

Зачем: во-первых, есть большая существующая кодовая база, во-вторых, при всех недостатках C++ для этой ниши он вполне ок. @listochkin

10:46
@jsunderhood Rust + JS. какие мысли на эту тему?)
10:48

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

10:49

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

10:57
@jsunderhood @rastopyr_ua да легко. Нативные аддоны для Node на растении писать
12:20
@jsunderhood аддоны на rust вместо c/c++ к nodejs, я думаю. servo же тоже как то инерпретирует js.
12:20
@listochkin @jsunderhood @rastopyr_ua почему не писать их на С/С++?
12:21

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

12:24
@jsunderhood а на сколько ты погружался в rust? я имею в виду по работе, или какие то pet-side проекты
12:25

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

12:28
@jsunderhood Что, по-твоему, должен знать и уметь хороший фронтенд разработчик? Правда ли, что верстальщикам нельзя доверить сервер сайд?
12:29

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

12:32

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

12:36
@jsunderhood Я слышал у вас в @yandex стили пишут на Stylus. Если ты можешь, то ответь почему не @SassCSS . Есть ли какие-то веские причины?
12:40

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

12:40
@jsunderhood Я обычно профилирую в Хроме и/или Файрфоксе, надеясь, что в остальных всё будет похоже. Но я не профессионал в этом деле.
12:42
@jsunderhood боттлнеки профилируют. Как правило стараются делать архитектуру чтоб не тормозило. Типа как в Реакте
12:43
@edjafarov @jsunderhood скорость работы функции не тяжело померить и даже мониторинг повесить, даже запускать в браузере
12:43
@edjafarov @jsunderhood но ботлнек обычно это рендеринг, если мы про браузеры, есть ряд best practices и вообще это целая профессия
12:43
@jsunderhood что думаешь о расте? видишь ли в нем будущее (убийцу с++ лол) и что на нем пишут в ya?
13:09

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

13:09

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

13:09

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

13:09

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

13:09
@jsunderhood какую литературу посоветуешь почитать по тестированию? интересуют не конкретные инструменты, а скорее идеология...
13:11

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

13:12
@jsunderhood какие еще языки используются кроме C++, Java, Python?
13:44

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

13:44
@jsunderhood Я слышал, на Я.Поиске кодят в vim-е и деплоят по ssh, то есть IDE там особо не используются. А как на других проектах с этим?
13:57

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

13:58

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

14:22

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

14:22

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

14:23
@jsunderhood больше подробностей! Какие знания ты получил? Что нового узнал?
18:37

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

18:37

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

18:38

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

18:38
@jsunderhood есть стартапы, работающие в этой области, но их не много (
18:43

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

18:44

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

18:47

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

20:04

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

20:05

# Вторник 24 твита

@jsunderhood расскажи еще про Я. какие плюшки :) ? офис просторный? опенспейс? стулья удобные? слышал, в украине крутой офис В.Харисов делал
8:54

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

8:54
@anton_davydov @jsunderhood а что скажете про Go-lang, ребята?
9:02

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

9:02

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

9:02

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

9:29

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

9:29

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

9:29

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

9:29

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

11:17

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

11:17

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

11:18

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

11:19
@jsunderhood А расскажите, пожалуйста, как в яндексе мониторят сервисы?
22:26

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

22:26

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

22:39

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

22:43
@jsunderhood а в каком редакторе ты пишешь?
23:03

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

23:03

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

23:03

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

23:03

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

23:04

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

23:04

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

23:04

# Среда 19 твитов

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

10:42

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

11:28

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

11:28

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

11:29

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

11:29

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

11:29

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

12:21

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

12:21
@iamstarkov @jsunderhood проблема в том, что это не для всех. Надо уметь самоорганизовываться.
13:56
@jsunderhood Экономически выгодно
13:57
@iamstarkov @jsunderhood можно снимать так, чтобы дорога до работы не занимала час и приносила удовольствие, как прогулка.
13:57
@iamstarkov @jsunderhood в питерский Яндекс в прошлом году (до ремонта набережной) было здорово долетать на велосипеде за 25 мин с Петры.
13:57
@jsunderhood да много чего, вроде общественных туалетов, кондиционеров (не люблю их), и заканчивая возможностью сидеть без футболки в жару
13:57
@jsunderhood ещё нравится семью видеть в течение дня, а не проводить весь день в офисе и в дороге
13:57
@jsunderhood мне кажется для удаленной работы требуется спец. подход. бо, если вокруг не раб.окружение то работать сложно
13:57
@jsunderhood нет возможности халиварить целый день и обмениваться опыта когда сидишь дома. По скайпу не то
13:57
@jsunderhood дома комфортно, создаешь комфортные условия под настроение, ту же тишину, если захочется. Наушники не вариант, это тоже шумно.
13:57

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

13:59

# Пятница 2 твита

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

19:45

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

19:45

other