# Понедельник 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:40TL;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:09radio-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:281) code.facebook.com/posts/14330936… — специальное решение Фейсбука для хранения миллиардов фоточек.
11:282) blog.serverfault.com/2015/03/05/how… — как StackOverflow обновляет у себя железо.
11:293) 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@jsunderhood как завещал @Oatmeal pic.twitter.com/QV4FtdxMHG15:40![]()
# Пятница 2 твита
Немножко укороченная экспериментальная неделя бекенда во фронтенд-аккаунте объявляется закрытой. :) Напоминаю, что с вами был @i_komarov.
19:45Спасибо большое за общение и вопросы, это был очень интересный и познавательный опыт.
19:45# Ссылки
other
- http://sockpuppet.org/blog/2015/03/06/the-hiring-post/
- http://www.radio-t.com/p/2015/05/02/podcast-442/
- http://shop.oreilly.com/product/9780596159825.do
- http://dfyz.livejournal.com/189261.html
- http://dfyz.livejournal.com/190120.html
- http://rosalind.info/
- http://www.csedays.ru/theory2014/tindexes
- http://yager.io/programming/go.html
- http://graphite.readthedocs.org/en/latest/overview.html
- http://colemak.com/
- http://www.kaufmann.no/roland/dvorak/
- http://ergosolo.ru/reviews/history/alternative_layouts/
- https://code.facebook.com/posts/1433093613662262/-under-the-hood-facebook-s-cold-storage-system-/
- http://blog.serverfault.com/2015/03/05/how-we-upgrade-a-live-data-center/
- http://habrahabr.ru/company/yandex/blog/258823/