lomakin

7 сентября 2015

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

Всем привет! Меня зовут Александр Ломакин. Я директор по веб-разработке в компании Rambler&Co. Буду вам надоедать на этой неделе :)

9:19

Эту неделю мы построим так: сегодня я расскажу о себе, а вечером каждого дня мы будем вместе выбирать тему следующего. Будет весело!

9:21
@backendsecret привет! Твиттер свой покажи :)
9:22

В обычной жизни меня можно читать в твиттере @lomakin

9:23

Не стесняйтесь задавать вопросы не по теме дня. Живое общение интереснее монолога :)

9:25
@backendsecret расскажи, что твориться у вас. А то Рамблер самая закрытая компания из больших. (В смысле технологий и вообще развития)
9:26

Rambler&Co я посвящу целый отдельный день и расскажу как у нас все устроено

9:27

Разрабатывать по серьезному я начал в далеком 2006 году в одном малоизвестном проекте ИД Эксперт fincake.ru

9:35

Этот проект фактически влюбил меня в Ruby. И я очень рад, что мое погружение в мир веб-разработки началось именно с этого языка

9:38

Проект обещал быть очень крутым... В общем-то как и любой другой амбициозный стартап :)

9:42

Самой сложной задачей в проекте для меня в то время был фетч реалтайм данных с валютных и фондовых бирж

9:44
@backendsecret основной ЯП недели это Ruby или будет что-то еще?
9:45

.@michael_borisov будет еще Python, JS, Haskell, инженерные практики и управление процессом разработки

9:46

Rails в то время был очень молодым фреймворком, но уже достаточно функциональным, чтобы стать отличным выбором для стартапа

9:47
@backendsecret ну расскажи какими технологтями в основном пользуешся?
9:52

.@dmitr_y в основном на работе Ruby, Python, JS. Для себя C, Haskell. А так сейчас основная работа в техническом менеджменте

9:55

Довольно скоро начался кризис, а за ним естественная миграция разработчиков. Так я попал на собеседование в Look At Me к @andrewzotov

10:03

Это было самое короткое собеседование в моей жизни. Почему-то больше всего запомнился вопрос, про то, что я читаю из худ. лита

10:07

Да и вообще, в Look At Me был довольно творческий коллектив. Видимо оттуда за Ruby закрепился статус хипстерского языка программирования

10:09

Кстати, на работе всегда была любимая шутка про Ruby, смузи и шарфик петелькой :)

10:10

Следующей большой вехой в моей работе была компания Inform-Mobil. Там мы с командой занимались разработкой социальной сети на PHP+Yii

10:34

Нам тогда нужен был шардинг, а Yii не поддерживал его из коробки. Поэтому реализовали его сами и отправили патч автору (патч, Карл!)

10:36

Тогда схема с пуллреквестами еще не набрала популярность

10:37

И что самое классное, наш патч приняли. А вот проект не взлетел.

10:59

После Inform-Mobil было много интересных проектов, среди которых например интернет-магазин Республики, госпроекты на Django

11:26

Был даже проект на сях: бегущая строка для прямого эфира с Путиным. Но это так себе история - было и хорошо.

11:27

Про то как запускали новую Ленту.ру рассказать?

11:28
@backendsecret да, конечно! Вообще мне рамблер жалко, убили, что было. Например, самые красивые карты.
11:34

.@dcromster ну, красота дела субъективное, конечно. А вот то, что потеряли мощный проект из актива - это да

11:35
@backendsecret в Rambler&Co используют Go?
11:48

.@makhov в продакшне пока нет

11:49
@backendsecret что думаешь по поводу Rust?
13:31

.@zzetorg Rust более проработанный по многим аспектам, но у Go активнее комьюнити. Если Rust наберет такое же, то будет однозначно фаворитом

13:37
@backendsecret а NoSQL используете? Какие и для чего?
13:41

.@dcromster используем MongoDB в Ленте, Мосленте, Моторе и Секрете Фирмы - это как минимум :)

13:42
@backendsecret почему в Рамблере, да и в любой другой крупной компании в отрасли (МэйлРу, например), такое разгильдяйство в HR? :)
13:52

.@mktums бывает местами проебываемся, но мы учимся на своих ошибках. Про остальных представителей отрасли не могу сказать

13:54
@backendsecret @zzetorg Rust и Go не конкуренты друг другу. Отличная статья на эту тему от @davecheney dave.cheney.net/2015/07/02/why…
13:55
@backendsecret ООО! А какие грабли нашли? :)
14:21

.@dcromster в какой-то из версий Mongo было дичайше сложно дебажить использование индексов. Но вроде это уже давно поправили

14:22

Как-то раз в апреле 2012 года я как обычно читал Ленту.ру и наткнулся на баннер-вакансию: в Ленту требовался Руби-разработчик

16:51

Дело за малым: написал письмо, напросился в гости и спустя два этапа собеседования я оказался в команде Ленты.ру

16:55

Как оказалось впоследствии, я был первым Руби-разработчиком в Ленте (и скорее всего в холдинге)

16:57

Старая Лента.ру была написана на Перле. И поговаривают, кто заглядывал в тот код, больше никогда не спал спокойно

16:57

В старой архитектуре все было примерно так: в редакционной системе создавалась новость, а затем статическая HTML-ка клалась на прод

17:00

В новой архитектуре все было чуточку иначе. Было отдельное приложение для редакции: Rails + PostgreSQL

17:01

Было отдельное приложение с самим сайтом: Rails (без AR, но с Mongo-драйвером) + MongoDB

17:02

Был еще и третий участник этой кутежа, демон который брал по событию свежесохраненную новость и перегонял ее из PostgreSQL в Mongo-документ

17:04

Сейчас те наработки, которые были в Ленте еще с тех времен, частично используются в нашем внутреннем фреймворке, который называется Mate

17:07

На нем написано несколько изданий холдинга: motor.ru, moslenta.ru, secretmag.ru и это еще не предел ;) Следите за новостями.

17:09

Возможно, в течении года мы выложим Mate в опенсорс, но пока фреймворк сыроват для широкой общественности

17:10

Кстати про опенсорс, у Rambler&Co есть свой аккаунт на Гитхабе. Там много вкусного. Fork and enjoy! :) github.com/rambler-digita…

17:12
@backendsecret A зачем так сложно? Почему не все сразу в монго или постгрес?
17:13

.@freiksenet_ru с редакционной системой работало много народу, а на сохранение одной новости уходило много времени :(

17:14
@backendsecret Мне надоели всякие дфижки, нагрузки от WP, пересадил бложик на octopress, хостить на роутере можно :)
17:14

.@POS_troi ну octopress для большого СМИ опасно брать. Вдруг чего :)

17:15
@backendsecret @freiksenet_ru и как обновлялись данные в монгу, если новость была уже опубликована, а вносились апдейты? Опять демон?
17:35

.@bytecheg @freiksenet_ru да, все верно: обновлялись снова через демон

17:36

Друзья, предлагаю вам выбрать тему на завтра: разработка в Rambler&Co - RT; про процесс разработки в Agile-командах - FAV.

18:03

# Вторник 81 твит

Ну что друзья, судя по тому, что я вижу, сегодня мы поговорим про процесс разработки в Agile

8:21

Скажите, а кто использует в своей работы инструменты и практики из Agile? Какие именно?

8:21

Довольно часто в командах используют либо Kanban, либо Scrum

10:00

Я считаю, что выбор проектного фреймворка зависит от степени хаоса в проекте: хаоса много - Kanban; система более-менее отлажена - Scrum

10:02

Важно понимать, что проектные фреймворки не работают без Agile-майндсета agilemanifesto.org

10:12
@backendsecret скрам создает жесткие чекпоинты и таким образом упорядочивает хаос
10:59

.@Borovikov возможно в вашем случае это сработало. Но Kanban позволяет визуализировать процесс поставки и сфокусировать команду

11:01

.@Borovikov в моей практике с помощью такого подхода можно быстрее выйти из хаоса на уровень сложной системы

11:02
@backendsecret а если с 0 проект?
11:09

.@dcromster в моей практике рабочий кейс такой: канбан с ограничением на WIP -> Scrum (по необходимости) -> XP и др. инженерные практики

11:11

.@dcromster такой подход очень хорошо ложится на эволюцию всех участников проекта как команды

11:11
@dcromster @backendsecret есть ещё незаслуженно забытые ройсовские водопады
11:12

.@PliskoVS @dcromster ох, это вы верно подметили. Я их не очень люблю, но один из коллег считает, что это следующая ступень после Скрама :)

11:13
@backendsecret стараемся в Scrum (с переменным успехом), Lean software development, XP
11:19

.@kspitfire7 а что из XP у вас прижилось?

11:20
@backendsecret канбан ориентируется на долгую перспективу и в нем нет дубины в виде спринтов
12:30

.@Borovikov не соглашусь. В Канбане можно быстрее менять поток. Там нет ограничений в виде спринта

12:32

.@Borovikov в случае когда проект с высокой степенью неопределенности, нужна возможность оперативно влиять на поток доставки биз. ценности

12:34

Друзья, а кто в своей работе использует практику TDD? И почему вы её используете?

12:37

Есть два взаимопротивоположных принципа разработки: BDUF и YAGNI

14:02

BDUF это история больше про долгое проектирование и высокую степень определенности

14:03

YAGNI это история про то, чтобы сделать сейчас быстро, но возможно в будущем отрефакторить

14:04

И вот как раз при YAGNI подход TDD жизненно необходим, т. к. без тестов рефакторить мягко говоря проблематично. Хотя бывают герои :)

14:05

А вот при BDUF можно даже подзабить на тесты

14:06
@backendsecret а как ты борешься с днями "тупняка"?
14:06

.@dcromster прокрастинация это повод для рутинных задач: заполнить отчеты, поревьюить код, привести в порядок закладки в браузере и пр.

14:09

.@dcromster короче, делайте в такие моменты то, на что жалко тратить время, когда у вас творческий подъем :)

14:10

.@dcromster у Бирмана классно про это написано ilyabirman.ru/meanwhile/all/…

14:11
@backendsecret используем. Плюсы а) сразу проверенный код, б) тех.задание самому себе, не распыляться на ненужные фичи в) не копить тех.долг
14:53

.@kspitfire7 не копить техдолг это очень хорошая практика :) Но не всегда соответствует требованиям бизнеса, к сожалению

14:54

Ребята, а вот еще какой момент интересен: есть ли у вас в командах выделенный архитектор?

16:43
@backendsecret TDD отлично учит интерфейсам и архитектуре, но применять его на продакшн проектах оверхед
16:44

.@Timrael с тем что учит интерфейсам и архитектуре - соглашусь. А как вы без тестов вносите изменения в продакшн систему?

16:45

.@KSDaemon а вот любопытно, что конкретно делает этот человек? Я без всякой задней мысли. Просто хочу собрать кейсы :)

16:48
@backendsecret @Timrael Мы вот не используем TDD, но тесты активно пишем
16:54
@backendsecret ну это я :) и по части архитектуры занимаюсь проектированием системы в целом, сущности, связи, схемы, потоки, данные →
16:54
@backendsecret → алгоритмы сложных функц. кейсов, механика процессов, интерфейсов и взаимодействий.
16:54
@backendsecret это не считая вопросов тимлида, сборки, коммуникаций, планирования, разделения задач, выпуска релизов и прочего…
16:54

.@KSDaemon очень похоже на совмещение работы архитектора и проджекта, или я тут ошибаюсь? :)

16:55

К чему это я тут задаю вопросы про архитекторов. У меня вчера и сегодня был день откровений от @ScrumTrek и @aka_ekr

17:03

Я сходил на тренинг "Agile Mindset в проектировании систем". И у меня бомбануло. Оказывается архитектура это не только схемки и диаграмки

17:05

Архитектура, это результат коллективного обсуждения требований системы со стейкхолдерами; внутренних и внешних ограничений; рисков

17:09

А то, что в моей голове раньше называлось архитектурой, фактически является дизайном системы. Архитектура порождает дизайн. Такие дела.

17:11
@kotchuprik @backendsecret @Timrael Когда пишешь код, понимая, что через пару часов будешь писать тесты к нему — ничего не меняется
17:12

.@Semenov @kotchuprik @Timrael чтобы писать тесты сначала, должен быть определенный mindset. Не все к этому готовы :(

17:13

А еще мне понравилось выражение @aka_ekr "Инженерия - продажная девка бизнеса". Это так точно!

17:15
@AlekseyCvetkov @kotchuprik @backendsecret @Timrael персонально мне кажется, что писать тесты, которые заведомо не пройдут — идиотизм
17:20

.@Semenov @AlekseyCvetkov @kotchuprik @Timrael есть мнение, что тесты помогают проектировать микродизайн компонентов системы

17:21
@backendsecret @Semenov @kotchuprik @Timrael этот mindset — адекватная инженерная культура. Вот доклад в тему: twitter.com/programulya/st…
17:24

.@Devgru @Semenov @kotchuprik @Timrael имхо, адекватная - которая приносит прибыль. Если вы не пишите тесты, и это двигает бизнес, то это ОК

17:25

Ребята, а отсыпать вам немного книг про архитектуру и около этого? Конечно давай - RT. Ну его нахрен - FAV.

17:33
Фабрики стоят, одни синглтоны в стране
17:36
@backendsecret Евгений Кривошеев про это очень интересно и много рассказывает!
17:46

.@KSDaemon вот к нему и хожу. Он прям меняет мой mindset! Отличный тренер и просто замечательный человек :)

17:47
@backendsecret Когда набиваешь руку в TDD,становится очень удобно и практично.И это экономит время уже в среднесрочной перспективе (неделя).
18:12
@backendsecret 2 недели назад написал кусок кода по TDD, сейчас по нему нужно много перелопатить и тесты очень кстати - не боюсь, что сломаю
18:24
@backendsecret tdd способствует подходу с большим кол-вом маленьких объектов, маленьких методов, короче Санди Метц одобряет /2
18:25
@backendsecret
1 Код проще.
2 снижается стоимость поддержки
3 можно нормально рефактоить
4 тесты вносят доп. Ясность, работают как спека
18:43
.@backendsecret @Devgru @kotchuprik @Timrael и тут начинается холивор на тему стомость разработки проекта vs стоимость его поддержки
19:04

.@Semenov @Devgru @kotchuprik @Timrael у всех проектов есть стоимость, но не всем нужна поддержка :)

19:04

Начнем с известной многим книги: "Refactoring: Improving the Design of Existing Code" Мартина Фаулера amazon.com/Refactoring-Im…

19:07
@backendsecret @Devgru @kotchuprik @Timrael Конечно, не всем проектам нужна поддержка. Тем, которые загнулись, она не нужна.
19:08

.@Semenov @Devgru @kotchuprik @Timrael а проекты, которые нужны чтобы подтвердить или опровергнуть бизнес гипотезу - вы не рассматриваете?

19:10

Следом идет книга о паттернах проектирования "Head First Design Patterns" Эрика Фримана amazon.com/gp/product/059…

19:11

Что на самом деле означает чистый код: "Clean Code: A Handbook of Agile Software Craftsmanship" Роберта Мартина amazon.com/Clean-Code-Han…

19:15

Про рефакторинг и паттерны вместе: "Refactoring to Patterns" Джошуа Кериевски amazon.com/Refactoring-Pa…

19:17

Маст рид! "Domain-Driven Design: Tackling Complexity in the Heart of Software" Эрика Эванса amazon.com/Domain-Driven-…

19:20

Разработчикам многопоточных приложений - очень советую! "Java Concurrency in Practice" Брайана Гоэца amazon.com/Java-Concurren…

19:23
@backendsecret имхо, говорить о паттернах, без упоминания того, что они могут привести к оверинженирингу, как минимум, не честно
19:24

.@ivanenok разумеется любые практики и шаблоны нужно использовать включая голову. Я предупредил :)

19:25
@backendsecret если говорить с точки зрения практики, то овердизайн приводит к жопе, когда заказчик хочет "просто добавить кнопочку"
19:25

.@ivanenok так а вы не делайте овердизайн

19:25

Ну что, я думаю на пару дней вам хватит книжек почитать :)

19:28
@backendsecret хех, вместе с паттернами, нужно рассказывать что такое KISS :)
19:30

.@ivanenok KISS, YAGNI, Emergent Design - это все одного поля ягоды. Я люблю это все проще называть - нужные вещи в нужное время :)

19:31

Ну что, кажется пора откланиваться на сегодня. Пойду смотреть концовку Mr. Robot. Кто смотрел? Достойно закончилось? Только без спойлеров :)

19:35

О чем поговорим завтра? Как устроена разработка в Rambler&Co - RT. Окружение, инструменты и вот это все - FAV.

19:40
@backendsecret @Semenov @Devgru @kotchuprik @Timrael если такой проект подтверждает бизнес-гипотезу, говнокод обычно так и остается гнить.
19:41

.@mkazantsev @Semenov @Devgru @kotchuprik @Timrael ну почему же. Дальше рефакторинг и развитие как правило идут. И здесь они уже оправданы

19:43

Кстати, не забывайте подписываться на меня в Твиттере @lomakin :)

19:52

# Среда 41 твит

Всем привет! Сегодня мы поговорим про окружение, инструменты и смежные темы.

8:37

Я уже около 10 лет работаю на Маке. Были поползновения на Linux, но погрызанное яблоко не отпускает: из этого клана не уходят просто так :)

8:39

Кстати, те из вас кто сидит на Линуксах, какие дистрибутивы вы используете?

8:44

То время, когда я сидел на Ubuntu, я дичайше угорал по i3 i3wm.org

10:59

i3 было очень удобно пользоваться, учитывая что мой основной редактор - это vim

11:00

Вообще идея тайлинговых менеджеров мне очень нравится: ты фокусируешься на главном и не распыляешь внимание

11:01

А еще практически не пользуешься мышкой. Только в тех случаях, когда тебе нужно что покликать в браузере

11:02
@backendsecret мак - ок, но brew как пакетный менеджер сильно слабее по сравнению с apt
11:03

.@listochkin а что есть в apt, чего нет в brew? В контексте вашей работы с этими пакетными менеджерами :)

11:03

Отдельной строкой хочу признаться в любви к vim. Из всего что я пробовал - это самый лучший редактор, IDE и еще бог знает что :)

12:48
@backendsecret Xubuntu: у меня, жены, тещи и мамы. Ubuntu Server на "сервере" в кладовке. Debian на плате для разработчиков.
12:48

.@dcromster популяризируешь технологии :)

12:49

Хочу задать холиварный вопрос дорогим читателям: а что лучше? Давайте выясним? Vim - RT, Emacs - FAV.

12:52
@archydragon @backendsecret Холиварят, потому что пользователи vim и emacs уже закончили свои дела? :)
13:34

Ребята, а те, кто использует всякие большие IDE, расскажите с чем связан ваш выбор?

13:39
@backendsecret @archydragon пользователи Sublime Text и IDEA работают только потому,что пользователи vim и emacs им разрешили им работать ;)
13:47

Есть еще один редактор, к которому я не ровно дышу - это Atom. Он отлично смотрится рядом с моим бокалом для смузи :)

15:32
@backendsecret не тупит вебкит-то?
15:34

.@kotchuprik а это не важно. Он же красивенький и я в нем конфиги правлю :)

15:35
@backendsecret не ну я-то солидарен. плагинов куча. сам юзаю и для голанга в том числе. но не тупит ли он у тебя?)))
15:36

.@kotchuprik тачка мощная, не замечал :)

15:37
@backendsecret юзают IDEA, здорово автоматизирует рутину, особенно удобно что с git, бд и кодом работаешь из одного места, на то оно и IDE
15:37

.@Borovikov соглашусь. Основной плюс IDE в том, то что они из коробки аккумулируют все, что нужно для работы

15:39

.@Borovikov для не который языков, например Java, бывает без IDE вообще не разберешься. Особенно если проект огромный

15:40

Ребята, а расскажите какой у вас любимый шрифт для терминала/редактора? А я потом расскажу, кто мой фаворит :)

15:55
@backendsecret Для кода — Input, еще Source Code Pro
16:02
@backendsecret Deja Vu Sans Mono в редакторе, в терминале внезапно пофиг, на маке дефолтный Monaco, в линуксе Terminus.
16:02
Лучшая иллюстрация объединения io.js и node.js была сегодня у @html5by pic.twitter.com/RjKD8ge3cQ
16:04
@backendsecret пересел на атом только из-за эликсира
16:09

Кстати, будете смотреть сегодня презентацию Apple?

16:33
@dcromster @backendsecret никогда не пробовал Emacs. У него есть преимущества перед вимом?
16:46

.@raxpost @dcromster я тоже не пробовал Emacs, но судя по результатам голосования - они примерно одинаковые :)

16:47
@dcromster @backendsecret при работе клавиатурой производительность повышается раза в полтора, причина по которой все боятся вима - лень
16:53
@backendsecret RubyMine волшебно рефакторит код на Ruby
18:56

Ребята, спасибо за фидбэк! Интересно было услышать ваши предпочтения. А мой любимый шрифт Anka/Coder programmingfonts.org/post/108439777…

18:57

И вообще, вот тут много всяких других моно-шрифтов programmingfonts.org

18:58
@artemeff сегодня говорят про apple, извини :)
19:01

Эппл сегодня как-то много всего представила. Надо как-то все осмыслить и смириться с этим

19:16

А пока выбираем тему на завтра! :) Разработка в Rambler&Co - FAV; языки программирования - RT.

19:16

# Четверг 79 твитов

Друзья, всем привет! Сегодня мы поговорим про языки программирования.

8:32

Прежде, чем мы начнем нашу беседу, расскажите, какие вы знаете авторитетные рейтинги популярности языков программировния?

8:32
@backendsecret периодически смотрю статистику на TIOBE + раньше публиковали на githut.info но за 2015 год нет ничего :(
10:13
@backendsecret тут скорее интересен вопрос, какие выводы можно сделать из всякой разной статистики по популярности ЯП
10:13
@backendsecret RedMonk делает регулярные срезы GitHub+StackOverflow redmonk.com/sogrady/2015/0… Идея не их, но они подхватили.
10:13
@gruz0 @backendsecret у меня вон, в 93 мама писала на foxpro и на паскале, ничего сейчас ей плевать на рейтинге, она просто не пишет код :D
10:59
@anton_davydov @backendsecret мой путь таков: Basic, FoxPro, Perl, ASP, PHP, Ruby. Остальные мимолётные языки не считаю. А за эти платили.
10:59
@anton_davydov @backendsecret а кто-то пишет на двух самых популярных языках и плюёт на рейтинги :-D
11:00

.@gruz0 @anton_davydov но как-то же он понял, что они самые популярные :D

11:00

Как вы уже поняли, я очень неровно дышу к Ruby. В последнее время изучаю Haskell и мне очень нравится mindset функциональных яп

11:02
@backendsecret @anton_davydov с этиме вашыме рейтенгоме никуда не деццо!!1! :-D
11:03

Самый крутой учебник по Haskell здесь learnyouahaskell.com/chapters

11:04

Если вы решили выучить функциональный яп, и до этого жили в ООП парадигме - первое время ваша жизнь будет адом! :)

11:07

Из того, что хочется попробовать в продакшне и вообще: Elixir elixir-lang.org и Scala scala-lang.org

13:28
@backendsecret лучше эрланг, он стабильнее
14:42

.@artemeff Elixir и Erlang очень близки. Для меня одна из киллер-фич Эликсира - это организация кода.

14:44
@backendsecret мне не очень понравился. есть еще book.realworldhaskell.org, но в итоге сейчас остановился на github.com/bitemyapp/lear…
14:44
@Shiroginne @backendsecret если вы про что-то не знаете, то не значит, что этого нет. Haskell используется в реальной жизни.
14:44

.@ibxth @Shiroginne соглашусь. Есть класс задачь, где функциональные ЯП выигрывают, в частности Haskell

14:45

Вообще, в развитии веб-дева функциональщина уже давно витает где-то совсем близко

14:48

Так что бойтесь! Скоро функциональные ЯП будет знать каждая домохозяйка! :)

14:49
@backendsecret если он так прекрасен, почему же на нем не пишут повсеместно? Наверняка задач то много
14:50

.@Shiroginne на это много причин. Порог вхождения, исторические обстоятельства, сообщество и пр.

14:51
@backendsecret вспомнил занятную историю, о сеньоре запилившем компоненту на скале и свалившем. приседали с эти потом долго :)
14:52

.@ivanenok это к слову о популярности технологии и стоимости разработчиков владеющих ей :)

14:52
@backendsecret мне кажется, вот очень показательный пост про веб разработку на haskell bitemyapp.com/posts/2015-08-…
14:58

Друзья, а кто с какого языка начинал свой путь разработчика?

14:59
@backendsecret Функциональшина давно выиграла. Иммутабильность, функции высшего порядка, вывод типов - мейнстрим.
15:06

.@freiksenet_ru к сожалению (или к счастью?) по статистике языков и продакшн систем это пока нет

15:07
@backendsecret а что такого хорошего в Ruby ?
15:21

.@webusnix в Ruby хорошо: синтаксис, гибкость, выразительность, сообщество, окружение (либы, фреймворки и пр.)

15:21

Я смотрю, очень много начинали с Бейсика. Теперь я знаю, что я в этом не одинок :)

15:22

.@webusnix есть класс задач и проектов, где скорость разработки решает - в ущерб производительности

15:25
@backendsecret и медлительность. если мы никуда не спешим, то это окей.
15:25
@backendsecret а что ты думаешь о coffeescript?
15:40

.@mamyashev я думаю, что лучше писать на голом JS, чем на CoffeeScript

15:40

.@mamyashev хотя опять же, зависит от конкретного проекта и затрат на него

15:41
@backendsecret @mamyashev интересно, а кто-нибудь делал серьёзные замеры на боевом продакшене насколько сахар (кофескрипт, джейд) полезен?
15:46

.@vladimore @mamyashev друзья, мы же здесь про бэкэнды всякие беседы ведем :)

15:46
@backendsecret @vladimore @mamyashev Так это все и на бэкенде может крутиться, так что можно ) Я лично тоже за чистый JS
15:50
@vladimore @backendsecret @mamyashev А по какой метрике можно оценит полезность сахара?
15:50

.@Andre_487 @vladimore @mamyashev по глубине знания JS. Есть кто знает CoffeeScript, а есть кто JS. Это разные люди зачастую, как ни странно

15:51
@vladimore @backendsecret @mamyashev так на проде будет уже JS скомпиленный. Как это замерить? Написать 2 одинаковых вещи и задеплоить?)
16:10

.@MosinAndrii @vladimore @mamyashev поменить скорость исполнения конечного варианта; сравнить конечный размер. Зависит от того, что важнее

16:12
@backendsecret @MosinAndrii все ещё не понимаю, а зачем замерять? Ну ок, CS медленнее и тяжелее, следующий шаг? @vladimore @mamyashev
16:15

.@shuvalov_anton @MosinAndrii @vladimore @mamyashev все зависит, от конкретного проекта и критических метрик. Кому-то и CS ок.

16:15
@shuvalov_anton @backendsecret ну со скалой с непривычки тоже поприседать можно, если еще это и как экспиремент было сделано.
16:16

.@ivanenok @shuvalov_anton ну так то с чем угодно можно поприседать с непривычки :)

16:16
@shuvalov_anton @backendsecret @vladimore @mamyashev поддерживаю. Какой смысл? Кому cs не нужен, тот на нем и не пишет
16:17
@backendsecret @shuvalov_anton скала даёт огромные возможности в выражении мыслей, главное что бы психопату в руки не попала :)
16:19

Ребята, а вот еще вопрос ко всем. У кого сейчас на проекте есть технический долг? И как вы его меряете?

16:30
@backendsecret оптимизируйте картинки — компенсируете размер CS. Оптимизируйте работу с DOM — скорость @MosinAndrii @vladimore @mamyashev
16:32
@anton_davydov @backendsecret зачем мучаться старым синтаксисом и другими проблемами эрланга когда есть красивый и сахарный эликсир?
16:37
@backendsecret что ты имеешь в виду под техническим долгом?
16:38

.@shuvalov_anton плохо продуманную структуру, архитектуру, некачественный код

16:39
@backendsecret солидарен, да и масштабироваться с функциональщиной гораздо проще. А это многого стоит.
16:43
@freiksenet_ru @backendsecret поддержу. Но интерпрайз все ещё пытается сопротивляться )
16:45
@shuvalov_anton @backendsecret @MosinAndrii @vladimore @mamyashev JS на бэкэнде - это хайп. Серьезные вещи никто не будет на нем писать.
16:50
@backendsecret А когда он появляется? Когда осознаешь, что написал говнокод? @shuvalov_anton
16:55

.@dcromster @shuvalov_anton когда на внесение изменений тратишь больше времени, чем мог бы при ином дизайне, например

16:56
@backendsecret хм... А если 100 лет не касались,всё забыли=>долго вспоминать... Это считается?@shuvalov_anton
16:57

.@dcromster @shuvalov_anton надо тупо сконвертировать в деньги и сравнить, что дороже :)

16:58
@backendsecret ты хочешь сказать, что бывают проекты БЕЗ тех долга? %) Кажется, такое возможно первые пару недель)))
17:05
@shuvalov_anton @backendsecret @dcromster а вы много знаете разрабов, кто бы не сказал, впервые увидев чужой код, что он — «ок»?
17:11

.@KSDaemon @shuvalov_anton @dcromster таких разрабов не существует! :)

17:11
@backendsecret @KSDaemon @shuvalov_anton @dcromster да бросьте! Я у меня было 2 проекта, где код был ок. В обоих случаях его писал 1 человек
17:13

Я для себя открыл недавно очень крутую штуку SonarQube. Она меряет код по различным метрикам, в том числе тех. долг sonarqube.org

18:38

Вот, посмотрите на тестовом проекте. Для тимлида и техдира - это бесценный инструмент! nemo.sonarqube.org

18:39

На эту тему есть еще один очень крутой сервис - CodeClimate. Он более хипстерский codeclimate.com

18:47
@backendsecret знаю что грешно, но Visual Basic и Delphi :) Потом C++, потом PHP и далее все глубже в веб...
18:48

.@rhamdeew вот у меня почти аналогичная история :)

18:48
@backendsecret ох, пропаганда хипстеризма среди бэкендеров детектед! :))
18:49

.@ivanenok простите, но корни дают о себе знать :) *поправил шарфик*

18:49
@anton_sunrise @backendsecret а может там наоборот ещё на прологе сидят? ) что более прогрессивно, чем фп, к слову
18:49

.@__fro @anton_sunrise пролог крутой, но без расширителей сознания я его не понимаю :(

18:50
@backendsecret "барышня, поллитру водки вооон за тот столик, для профилактики" :)
18:52

И так, выбираем тему на завтра: разработка в Rambler&Co - RT; интересные ссылки и ништяки - FAV.

19:01

# Пятница 20 твитов

@backendsecret в свое время фрейиворку Ruby on Rails даже Microsoft позавидовал..Вот.
6:27

Что-то мы сегодня припозднились с нашим чадом кутежа и полезных ссылочек!

13:38

Итак, лот первый и крайне полезный, книга Ильи Григорика "High Performance Browser Networking" chimera.labs.oreilly.com/books/12300000…

13:40

Очень крутой доклад про паттерны проектирования в функциональном программировании skillsmatter.com/skillscasts/61…

14:25

Классный доклад Гриши Петрова о том, как называть переменные youtube.com/watch?v=z5WkDQ…

14:40

Отличная бесплатная книга по функциональному программированию от Dr. Boolean drboolean.gitbooks.io/mostly-adequat…

14:46

Nginx Admin Guide. Иногда бывает полезно перечитать :) nginx.com/resources/admi…

15:02

Вячеслав Олиянчук как-то раз классно рассказывал о том, как правильно готовить vim vimeo.com/34201803

15:17
@backendsecret лучше уж сразу ссылку на github.com/miripiruni/vimi
16:07

Еще про vim есть старая, но весьма полезная статья mislav.uniqpath.com/2011/12/vim-re…

16:16

Классная преза Антона Каляева про отладку Ruby-приложений и вообще 2014.devconf.ru/data/2014/pres…

17:38

Статья Яна Бродецкого про оптимизацию рендеринга веб-страниц habrahabr.ru/company/ramble…

17:48

Ребята, а поделитесь каким-нибудь докладом/статьей/книгой, которые сильно повлияли на вас, как на разработчика?

17:51
@backendsecret мне вот эта штука всегда помогала когда руки опускались, потому что все в проекте не то и не так :) ozon.ru/context/detail…
18:03
@backendsecret последнее что зацепило и не отпускает - clojure, во многом благодаря ричу хикки.
infoq.com/presentations/…
18:46
@backendsecret рассматривание Google analytics. Быстро пришло понимание что "прикольные фичи" нафик никому не сдались
18:46
@backendsecret биография Шостаковича. Без шуток.
19:09
@backendsecret ты не смотрел доклад Вадима Макишвили «36» ??? bit.ly/1XU5TN3
19:21

.@KSDaemon как-то это мимо меня прошло

19:21

# Суббота 59 твитов

Сегодня и завтра мы поговорим про разработку в Rambler&Co, а оставшееся время пообщаемся на вольные темы :)

7:56

В & работает несколько несколько сотен программистов

7:59

ЯП мы используем: Python, Ruby, PHP, Perl, C#, C, JS. Короче довольно большой зоопарк. Но mainstream - это все же Python, Ruby и JS.

8:02

Из фреймворков используем RoR, Django, Flask. Есть попытки и желание использовать Pyramid

8:08

Из асинхронных фреймворков так или иначе используем/использовали Twisted, Tornado, gevent, asyncio, EventMachine и др.

8:10
@backendsecret а как делите что делать на Django, а что на Flask?
8:10

.@return_none как правило по экспертизе в команде, а так же в зависимости от конкретного проекта

8:11

Разработка в & представляет из себя один большой департамент, куда входят практически все команды разработки, за некоторым исключением

8:14

Внутри департамента есть деление на направления разработки

8:15

Руководитель каждого направления продумывает план развития своего направления: профессиональный рост, конференции, внедрение практик и пр.

8:16

С другой стороны, в каждый проект набираются люди - каждый из своего направления. Они объединяются в команду, которая делает проект

8:17

Если человек по каким-то причинам не подошел в проект, мы можем предложить ему другой в рамках холдинга

8:19

Но только в том случае, если прыжки с проекта на проект не превращаются в паталогию :)

8:19
@backendsecret а можно чуть подробнее? Как по мне, со временем Flask на больших проектах становится такой "Django", только самодельный
8:19

.@return_none совершенно верно! Тут нужно просто на этапе планирования проекта понимать, сколько он будет жить и насколько сложный будет.

8:20
@backendsecret эксплуатация, тестирование, дизайн, аналитики, проектные/продуктовые менеджеры тоже в отдельных департаментах?
8:22

.@yevvers в точку :)

8:22

Есть два типа компаний: которые тяготеют к матричной структуре; которые тяготеют к feature teams

8:23

Так вот, мы занимаем промежуточное положение на этой оси

8:23

Такую структуру мы строим уже год и еще в процессе. Не все бывает гладко, но change management он такой :)

8:26

Вообще у & был период, когда мы очень сильно просели технологически и по инженерной культуре

8:27

В холдинге работало очень много известных ныне людей в IT мире. Взять того же Игоря Сысоева, автора nginx

8:28

Или Олега Бартунова, который сейчас активно участвует в разработке PostgreSQL

8:30

Сейчас для меня, как для руководителя разработки &, одна из ключевых целей - возродить былую технологичность нашей компании

8:31

За предыдущие 12 месяцев на нашей уютной Мансадочке проходило очень много митапов: MoscowJS, RailsClub

8:33

Первая Python встреча на которую мы пригласили Benoit Chesneau github.com/benoitc

8:35

Его выступление, кстати, можно посмотреть здесь youtube.com/watch?v=3pTL_j…

8:37

На той же встрече Паша Клеменков рассказывал про использование R и Python youtube.com/watch?v=bu4viD…

8:40

На Moscow Djano один из наших разработчиков, Максим Шаламов, рассказывал очень интересно про генерацию текстов moscowdjango.ru/speakers/maxim…

8:44

А доклад Юли Селютиной на том же Moscow Django вообще мой самый любимый :) moscowdjango.ru/speakers/julia…

8:45

На предстоящем @railsclub_ru выступят наши Руби-джедаи Семен Багреев и Станислав Герман

8:47

Семен Багреев, руководитель направления Ruby разработки, расскажет о том, как это - быть "Писателем ПО"

8:49

Станислав Герман, один из наших ведущих разработчиков Ruby, расскажет про Command Query Responsibility Segregation в Rails-приложениях

8:51

Так что приходите на RailsClub, там будет интересно. Мы кстати выступаем одними из спонсоров этого мероприятия railsclub.ru

8:53

Отдельно хочется отметить конференцию PyCon Russia, которая будет проходить 18-19 сентября

8:55

Паша Петлинский, один из наших ведущих разработчиков, расскажет про DSL для Django ORM pycon.ru/2015/program/c…

8:56
@backendsecret понял:) а как примерно выглядит взаимодействие разработки, QA и эксплуатции?сколько времени нужно фиче, чтобы попасть в прод?
8:57

.@yevvers в нашем случае очень сильно зависит от конкретной команды и процесса/методологии по которой они рабатют + исп. инструментов

8:58
@backendsecret не сталкивались с необходимостью переписать что-то в фреймворке под себя, например в Django?
8:59

.@amureki что-то переписывать совсем кардинально не было необходимости

8:59
@backendsecret, @return_none, где эта грань между долгим и быстрым проектом? Приведи пример, для чего Django, а для чего Flask?
9:41

.@vmakeev @return_none например много сущностей, сложные взаимосвязи, процессы - это про Django. Тут пригодится такой комбайн

9:43
@backendsecret понял.ну,хорошо,есть много команд со своими процессами и инструментами.как они синхронизируются?гигантская канбан-доска?:)
9:43

.@yevvers у нас не сильно связные команды т. к. проекты разные. Например Лента и Рамблер.Недвижимость

9:44
@backendsecret направления по функциональности? или по технологиям? просто выше прочитал про руководителя направления Ruby-разработки
10:30

.@yevvers по технологиям

10:30
@backendsecret это где так хорошо?
10:31

.@relan в Rambler&Co

10:32
@backendsecret и последний вопрос про структуру: некоторое исключение - это кто? безопасники, инфраструктура и прочие НОКи?:)
10:53

.@yevvers нет, это именно конкретные проекты. Но и это пока вопрос времени

10:53
@backendsecret у вас же один офис насколько я помню, нет заморочек с распределенными командами?
12:57

.@ivanenok есть команды которые сидят в отдельных офисах, но это будем постепенно исправлять

12:57
@backendsecret что повлияло? СЕО?
12:57

.@mikeBazhenov совокупность факторов

12:58
@backendsecret как правильно делать обмен данными между серверами, допустим если разбили api на несколько смысловых блоков? HTTP запросы?
12:59

.@mikeBazhenov как один из вариантов, слишком много неизвестных :)

13:00
@backendsecret каковы мотивы для оных исправлений, конкретно в вашем случае?
13:00

.@ivanenok чтобы все разработчики были в одном творческом кластере и коммуницировали с коллегами по цеху

13:01
@POS_troi думаю это тема для отдельного срачика :) @backendsecret вот еще годная книга, но она для лидов скорее ozon.ru/context/detail…
14:42

# Воскресенье 48 твитов

Друзья, всех с днем программиста! Мы делаем этот мир лучше! :)

7:52
@backendsecret воскресное: расскажи о музыке, которая помогает работать, как входишь в поток, хобби :)
9:54

.@dcromster с музыкой это вообще отдельная история. Я уже давольно давно люблю техно. Под эту музыку я танцую, под эту музыку работаю :)

9:55

.@dcromster вот для примера парочка миксов из моей коллекции

9:57

.@dcromster и вообще, я считаю, что лучшее техно в Москве только по пятницам и только в Пропаганде :)

10:01
@backendsecret как планируешь свой день?
10:01

Свой следующий день я планирую вечером предыдущего. Например сегодня я планирую понедельник

10:02

.@dcromster а это вообще, лучший российский подкаст про техно soundcloud.com/warehouse-podc…

10:04

Из программ я использую OmniFocus 2 itunes.apple.com/ru/app/omnifoc…

10:06

Календарь, разумеется iCal. Хотя пробовал Outlook. Но долго так жить нельзя - душок Microsoft очень скоро становится нестерпимым :(

10:10

Про планирование дел многие советуют книгу "Как привести дела в порядок" Аллена. Хотя я думаю, что самое ценное в ней - это схема на форзаце

10:14

И вообще, при планировании самое главное - это приоритизация. Дел всегда будет много, но важно сделать самые ценные их них.

10:16

Да и вообще, просто включайте голову :) Без нее, все инструменты и книги будут ни о чем

10:17

Теперь о хобби: любовь к электронной музыке наложило и на это свой опечаток

10:19

Когда я хочу отдохнуть от мирской суеты и всяких программирований, я свожу свои любимые треки. Короче учусь диджеить :)

10:20

Дама у меня стоит два виниловых проигрывателя Pioneer PLX-1000 pioneer-rus.ru/ru/newsroom/ne…

10:21

Микшер Allen Heath Xone:23 allen-heath.com/ahproducts/xon…

10:22

Миксую я пока не так круто, как например тот же @ilyabirman, но специально для сегодняшенго праздника записал микс yadi.sk/d/8_o6AHFuijjCm

10:24

Из всяких девайсов про электронную музыку очень хочу попробовать Roland TR-8. Это программируемая драм-машина roland.com/products/tr-8/

10:26

А тут еще @dot_worx рассказал про Monomachine, так я вообще влюбился в этот девайс :) eu.elektron.se/synths/monomac…

10:28
@backendsecret норм так-то. Очень неплохо к этому делу Serato приобрести :)
10:28

.@TheSunwave я Трактор юзаю :)

10:28

Друзья, а расскажите, какие у вас хобби. Как вы отвлекаетесь от работы?

10:29
@backendsecret а как находишь баланс в жизни?
10:30

.@dcromster баланс помогает прочувствовать медитация и йога. Я стараюсь в день медитировать по 20 мин минимум

10:31
@backendsecret он тоже хардварный?
10:31

.@TheSunwave конечно. Serato, насколько я знаю тоже :)

10:32
@backendsecret так и на это время нужно!
10:32

.@dcromster в том то и суть. Садишься, медиируешь, рассталяешь приоритеты - и вперед! Вот тебе и баланс :)

10:33
@backendsecret ремонт в квартире 😁 очень отвлекает, когда его делаю, скучаю по работе)))
10:34

.@dcromster keep it simple :)

10:36
@backendsecret карате - выплеснуть эмоции, бег - поразмышлять, пианинко - эмоции, раслабление, жизнь
10:40
@backendsecret скалолазание, скейт, пешие прогулки - и род деятельности меняется, и в форме себя держать помогает
10:45
@backendsecret долгие прогулки и зал
10:52
@backendsecret лонгбординг летом и сноубординг зимой, игра в музыкальной группе, периодический просмотр онемэ
10:59
@backendsecret Дети дают?
11:05

.@dcromster я холостой и без детей пока :)

11:05
@backendsecret летаю на планере. Это как парусник, но по вертикали :)
11:18
@backendsecret далеко и долго езжу на велосипеде
11:18
@backendsecret рыбалка
11:39
Happy Programmers Day! :)
11:44
@backendsecret футбол, картинг, походы/рыбалки, ну и всегда прогулки с ребёнком
11:48
@backendsecret @dcromster расскажите, как корректно начать медитировать?
13:12

.@dronovmm @dcromster мне в свое время очень помог с медитацией вот этот гайд all-yoga.ru/page/igor-berh…

13:13

www.amazon.com

other


@de_gis