# Понедельник 59 твитов
Всем привет! Меня зовут Александр Ломакин. Я директор по веб-разработке в компании Rambler&Co. Буду вам надоедать на этой неделе :)
12:19Эту неделю мы построим так: сегодня я расскажу о себе, а вечером каждого дня мы будем вместе выбирать тему следующего. Будет весело!
12:21@backendsecret привет! Твиттер свой покажи :)12:22
Не стесняйтесь задавать вопросы не по теме дня. Живое общение интереснее монолога :)
12:25@backendsecret расскажи, что твориться у вас. А то Рамблер самая закрытая компания из больших. (В смысле технологий и вообще развития)12:26
Rambler&Co я посвящу целый отдельный день и расскажу как у нас все устроено
12:27Разрабатывать по серьезному я начал в далеком 2006 году в одном малоизвестном проекте ИД Эксперт fincake.ru
12:35Этот проект фактически влюбил меня в Ruby. И я очень рад, что мое погружение в мир веб-разработки началось именно с этого языка
12:38Проект обещал быть очень крутым... В общем-то как и любой другой амбициозный стартап :)
12:42Самой сложной задачей в проекте для меня в то время был фетч реалтайм данных с валютных и фондовых бирж
12:44@backendsecret основной ЯП недели это Ruby или будет что-то еще?12:45
.@michael_borisov будет еще Python, JS, Haskell, инженерные практики и управление процессом разработки
12:46Rails в то время был очень молодым фреймворком, но уже достаточно функциональным, чтобы стать отличным выбором для стартапа
12:47@backendsecret ну расскажи какими технологтями в основном пользуешся?12:52
.@dmitr_y в основном на работе Ruby, Python, JS. Для себя C, Haskell. А так сейчас основная работа в техническом менеджменте
12:55Довольно скоро начался кризис, а за ним естественная миграция разработчиков. Так я попал на собеседование в Look At Me к @andrewzotov
13:03Это было самое короткое собеседование в моей жизни. Почему-то больше всего запомнился вопрос, про то, что я читаю из худ. лита
13:07Да и вообще, в Look At Me был довольно творческий коллектив. Видимо оттуда за Ruby закрепился статус хипстерского языка программирования
13:09Кстати, на работе всегда была любимая шутка про Ruby, смузи и шарфик петелькой :)
13:10Следующей большой вехой в моей работе была компания Inform-Mobil. Там мы с командой занимались разработкой социальной сети на PHP+Yii
13:34Нам тогда нужен был шардинг, а Yii не поддерживал его из коробки. Поэтому реализовали его сами и отправили патч автору (патч, Карл!)
13:36Тогда схема с пуллреквестами еще не набрала популярность
13:37И что самое классное, наш патч приняли. А вот проект не взлетел.
13:59После Inform-Mobil было много интересных проектов, среди которых например интернет-магазин Республики, госпроекты на Django
14:26Был даже проект на сях: бегущая строка для прямого эфира с Путиным. Но это так себе история - было и хорошо.
14:27Про то как запускали новую Ленту.ру рассказать?
14:28@backendsecret да, конечно! Вообще мне рамблер жалко, убили, что было. Например, самые красивые карты.14:34
.@dcromster ну, красота дела субъективное, конечно. А вот то, что потеряли мощный проект из актива - это да
14:35@backendsecret в Rambler&Co используют Go?14:48
@backendsecret что думаешь по поводу Rust?16:31
.@zzetorg Rust более проработанный по многим аспектам, но у Go активнее комьюнити. Если Rust наберет такое же, то будет однозначно фаворитом
16:37@backendsecret а NoSQL используете? Какие и для чего?16:41
.@dcromster используем MongoDB в Ленте, Мосленте, Моторе и Секрете Фирмы - это как минимум :)
16:42@backendsecret почему в Рамблере, да и в любой другой крупной компании в отрасли (МэйлРу, например), такое разгильдяйство в HR? :)16:52
.@mktums бывает местами проебываемся, но мы учимся на своих ошибках. Про остальных представителей отрасли не могу сказать
16:54@backendsecret @zzetorg Rust и Go не конкуренты друг другу. Отличная статья на эту тему от @davecheney dave.cheney.net/2015/07/02/why…16:55
@backendsecret ООО! А какие грабли нашли? :)17:21
.@dcromster в какой-то из версий Mongo было дичайше сложно дебажить использование индексов. Но вроде это уже давно поправили
17:22Как-то раз в апреле 2012 года я как обычно читал Ленту.ру и наткнулся на баннер-вакансию: в Ленту требовался Руби-разработчик
19:51Дело за малым: написал письмо, напросился в гости и спустя два этапа собеседования я оказался в команде Ленты.ру
19:55Как оказалось впоследствии, я был первым Руби-разработчиком в Ленте (и скорее всего в холдинге)
19:57Старая Лента.ру была написана на Перле. И поговаривают, кто заглядывал в тот код, больше никогда не спал спокойно
19:57В старой архитектуре все было примерно так: в редакционной системе создавалась новость, а затем статическая HTML-ка клалась на прод
20:00В новой архитектуре все было чуточку иначе. Было отдельное приложение для редакции: Rails + PostgreSQL
20:01Было отдельное приложение с самим сайтом: Rails (без AR, но с Mongo-драйвером) + MongoDB
20:02Был еще и третий участник этой кутежа, демон который брал по событию свежесохраненную новость и перегонял ее из PostgreSQL в Mongo-документ
20:04Сейчас те наработки, которые были в Ленте еще с тех времен, частично используются в нашем внутреннем фреймворке, который называется Mate
20:07На нем написано несколько изданий холдинга: motor.ru, moslenta.ru, secretmag.ru и это еще не предел ;) Следите за новостями.
20:09Возможно, в течении года мы выложим Mate в опенсорс, но пока фреймворк сыроват для широкой общественности
20:10Кстати про опенсорс, у Rambler&Co есть свой аккаунт на Гитхабе. Там много вкусного. Fork and enjoy! :) github.com/rambler-digita…
20:12@backendsecret A зачем так сложно? Почему не все сразу в монго или постгрес?20:13
.@freiksenet_ru с редакционной системой работало много народу, а на сохранение одной новости уходило много времени :(
20:14@backendsecret Мне надоели всякие дфижки, нагрузки от WP, пересадил бложик на octopress, хостить на роутере можно :)20:14
@backendsecret @freiksenet_ru и как обновлялись данные в монгу, если новость была уже опубликована, а вносились апдейты? Опять демон?20:35
.@bytecheg @freiksenet_ru да, все верно: обновлялись снова через демон
20:36Друзья, предлагаю вам выбрать тему на завтра: разработка в Rambler&Co - RT; про процесс разработки в Agile-командах - FAV.
21:03# Вторник 81 твит
Ну что друзья, судя по тому, что я вижу, сегодня мы поговорим про процесс разработки в Agile
11:21Скажите, а кто использует в своей работы инструменты и практики из Agile? Какие именно?
11:21Довольно часто в командах используют либо Kanban, либо Scrum
13:00Я считаю, что выбор проектного фреймворка зависит от степени хаоса в проекте: хаоса много - Kanban; система более-менее отлажена - Scrum
13:02Важно понимать, что проектные фреймворки не работают без Agile-майндсета agilemanifesto.org
13:12@backendsecret скрам создает жесткие чекпоинты и таким образом упорядочивает хаос13:59
.@Borovikov возможно в вашем случае это сработало. Но Kanban позволяет визуализировать процесс поставки и сфокусировать команду
14:01.@Borovikov в моей практике с помощью такого подхода можно быстрее выйти из хаоса на уровень сложной системы
14:02@backendsecret а если с 0 проект?14:09
.@dcromster в моей практике рабочий кейс такой: канбан с ограничением на WIP -> Scrum (по необходимости) -> XP и др. инженерные практики
14:11.@dcromster такой подход очень хорошо ложится на эволюцию всех участников проекта как команды
14:11@dcromster @backendsecret есть ещё незаслуженно забытые ройсовские водопады14:12
.@PliskoVS @dcromster ох, это вы верно подметили. Я их не очень люблю, но один из коллег считает, что это следующая ступень после Скрама :)
14:13@backendsecret стараемся в Scrum (с переменным успехом), Lean software development, XP14:19
.@kspitfire7 а что из XP у вас прижилось?
14:20@backendsecret канбан ориентируется на долгую перспективу и в нем нет дубины в виде спринтов15:30
.@Borovikov не соглашусь. В Канбане можно быстрее менять поток. Там нет ограничений в виде спринта
15:32.@Borovikov в случае когда проект с высокой степенью неопределенности, нужна возможность оперативно влиять на поток доставки биз. ценности
15:34Друзья, а кто в своей работе использует практику TDD? И почему вы её используете?
15:37Есть два взаимопротивоположных принципа разработки: BDUF и YAGNI
17:02BDUF это история больше про долгое проектирование и высокую степень определенности
17:03YAGNI это история про то, чтобы сделать сейчас быстро, но возможно в будущем отрефакторить
17:04И вот как раз при YAGNI подход TDD жизненно необходим, т. к. без тестов рефакторить мягко говоря проблематично. Хотя бывают герои :)
17:05А вот при BDUF можно даже подзабить на тесты
17:06@backendsecret а как ты борешься с днями "тупняка"?17:06
.@dcromster прокрастинация это повод для рутинных задач: заполнить отчеты, поревьюить код, привести в порядок закладки в браузере и пр.
17:09.@dcromster короче, делайте в такие моменты то, на что жалко тратить время, когда у вас творческий подъем :)
17:10.@dcromster у Бирмана классно про это написано ilyabirman.ru/meanwhile/all/…
17:11@backendsecret используем. Плюсы а) сразу проверенный код, б) тех.задание самому себе, не распыляться на ненужные фичи в) не копить тех.долг17:53
.@kspitfire7 не копить техдолг это очень хорошая практика :) Но не всегда соответствует требованиям бизнеса, к сожалению
17:54Ребята, а вот еще какой момент интересен: есть ли у вас в командах выделенный архитектор?
19:43@backendsecret TDD отлично учит интерфейсам и архитектуре, но применять его на продакшн проектах оверхед19:44
.@Timrael с тем что учит интерфейсам и архитектуре - соглашусь. А как вы без тестов вносите изменения в продакшн систему?
19:45@backendsecret Есть!)19:47
.@KSDaemon а вот любопытно, что конкретно делает этот человек? Я без всякой задней мысли. Просто хочу собрать кейсы :)
19:48@backendsecret @Timrael Мы вот не используем TDD, но тесты активно пишем19:54
@backendsecret ну это я :) и по части архитектуры занимаюсь проектированием системы в целом, сущности, связи, схемы, потоки, данные →19:54
@backendsecret → алгоритмы сложных функц. кейсов, механика процессов, интерфейсов и взаимодействий.19:54
@backendsecret это не считая вопросов тимлида, сборки, коммуникаций, планирования, разделения задач, выпуска релизов и прочего…19:54
К чему это я тут задаю вопросы про архитекторов. У меня вчера и сегодня был день откровений от @ScrumTrek и @aka_ekr
20:03Я сходил на тренинг "Agile Mindset в проектировании систем". И у меня бомбануло. Оказывается архитектура это не только схемки и диаграмки
20:05Архитектура, это результат коллективного обсуждения требований системы со стейкхолдерами; внутренних и внешних ограничений; рисков
20:09А то, что в моей голове раньше называлось архитектурой, фактически является дизайном системы. Архитектура порождает дизайн. Такие дела.
20:11@kotchuprik @backendsecret @Timrael Когда пишешь код, понимая, что через пару часов будешь писать тесты к нему — ничего не меняется20:12
.@Semenov @kotchuprik @Timrael чтобы писать тесты сначала, должен быть определенный mindset. Не все к этому готовы :(
20:13А еще мне понравилось выражение @aka_ekr "Инженерия - продажная девка бизнеса". Это так точно!
20:15@AlekseyCvetkov @kotchuprik @backendsecret @Timrael персонально мне кажется, что писать тесты, которые заведомо не пройдут — идиотизм20:20
.@Semenov @AlekseyCvetkov @kotchuprik @Timrael есть мнение, что тесты помогают проектировать микродизайн компонентов системы
20:21@backendsecret @Semenov @kotchuprik @Timrael этот mindset — адекватная инженерная культура. Вот доклад в тему: twitter.com/programulya/st…20:24
.@Devgru @Semenov @kotchuprik @Timrael имхо, адекватная - которая приносит прибыль. Если вы не пишите тесты, и это двигает бизнес, то это ОК
20:25Ребята, а отсыпать вам немного книг про архитектуру и около этого? Конечно давай - RT. Ну его нахрен - FAV.
20:33Фабрики стоят, одни синглтоны в стране20:36
@backendsecret Евгений Кривошеев про это очень интересно и много рассказывает!20:46
.@KSDaemon вот к нему и хожу. Он прям меняет мой mindset! Отличный тренер и просто замечательный человек :)
20:47@backendsecret Когда набиваешь руку в TDD,становится очень удобно и практично.И это экономит время уже в среднесрочной перспективе (неделя).21:12
@backendsecret 2 недели назад написал кусок кода по TDD, сейчас по нему нужно много перелопатить и тесты очень кстати - не боюсь, что сломаю21:24
@backendsecret tdd способствует подходу с большим кол-вом маленьких объектов, маленьких методов, короче Санди Метц одобряет /221:25
@backendsecret21:43
1 Код проще.
2 снижается стоимость поддержки
3 можно нормально рефактоить
4 тесты вносят доп. Ясность, работают как спека
.@backendsecret @Devgru @kotchuprik @Timrael и тут начинается холивор на тему стомость разработки проекта vs стоимость его поддержки22:04
.@Semenov @Devgru @kotchuprik @Timrael у всех проектов есть стоимость, но не всем нужна поддержка :)
22:04Начнем с известной многим книги: "Refactoring: Improving the Design of Existing Code" Мартина Фаулера amazon.com/Refactoring-Im…
22:07@backendsecret @Devgru @kotchuprik @Timrael Конечно, не всем проектам нужна поддержка. Тем, которые загнулись, она не нужна.22:08
.@Semenov @Devgru @kotchuprik @Timrael а проекты, которые нужны чтобы подтвердить или опровергнуть бизнес гипотезу - вы не рассматриваете?
22:10Следом идет книга о паттернах проектирования "Head First Design Patterns" Эрика Фримана amazon.com/gp/product/059…
22:11Что на самом деле означает чистый код: "Clean Code: A Handbook of Agile Software Craftsmanship" Роберта Мартина amazon.com/Clean-Code-Han…
22:15Про рефакторинг и паттерны вместе: "Refactoring to Patterns" Джошуа Кериевски amazon.com/Refactoring-Pa…
22:17Маст рид! "Domain-Driven Design: Tackling Complexity in the Heart of Software" Эрика Эванса amazon.com/Domain-Driven-…
22:20Разработчикам многопоточных приложений - очень советую! "Java Concurrency in Practice" Брайана Гоэца amazon.com/Java-Concurren…
22:23@backendsecret имхо, говорить о паттернах, без упоминания того, что они могут привести к оверинженирингу, как минимум, не честно22:24
.@ivanenok разумеется любые практики и шаблоны нужно использовать включая голову. Я предупредил :)
22:25@backendsecret если говорить с точки зрения практики, то овердизайн приводит к жопе, когда заказчик хочет "просто добавить кнопочку"22:25
Ну что, я думаю на пару дней вам хватит книжек почитать :)
22:28@backendsecret хех, вместе с паттернами, нужно рассказывать что такое KISS :)22:30
.@ivanenok KISS, YAGNI, Emergent Design - это все одного поля ягоды. Я люблю это все проще называть - нужные вещи в нужное время :)
22:31Ну что, кажется пора откланиваться на сегодня. Пойду смотреть концовку Mr. Robot. Кто смотрел? Достойно закончилось? Только без спойлеров :)
22:35О чем поговорим завтра? Как устроена разработка в Rambler&Co - RT. Окружение, инструменты и вот это все - FAV.
22:40@backendsecret @Semenov @Devgru @kotchuprik @Timrael если такой проект подтверждает бизнес-гипотезу, говнокод обычно так и остается гнить.22:41
.@mkazantsev @Semenov @Devgru @kotchuprik @Timrael ну почему же. Дальше рефакторинг и развитие как правило идут. И здесь они уже оправданы
22:43# Среда 41 твит
Всем привет! Сегодня мы поговорим про окружение, инструменты и смежные темы.
11:37Я уже около 10 лет работаю на Маке. Были поползновения на Linux, но погрызанное яблоко не отпускает: из этого клана не уходят просто так :)
11:39Кстати, те из вас кто сидит на Линуксах, какие дистрибутивы вы используете?
11:44i3 было очень удобно пользоваться, учитывая что мой основной редактор - это vim
14:00Вообще идея тайлинговых менеджеров мне очень нравится: ты фокусируешься на главном и не распыляешь внимание
14:01А еще практически не пользуешься мышкой. Только в тех случаях, когда тебе нужно что покликать в браузере
14:02@backendsecret мак - ок, но brew как пакетный менеджер сильно слабее по сравнению с apt14:03
.@listochkin а что есть в apt, чего нет в brew? В контексте вашей работы с этими пакетными менеджерами :)
14:03Отдельной строкой хочу признаться в любви к vim. Из всего что я пробовал - это самый лучший редактор, IDE и еще бог знает что :)
15:48@backendsecret Xubuntu: у меня, жены, тещи и мамы. Ubuntu Server на "сервере" в кладовке. Debian на плате для разработчиков.15:48
.@dcromster популяризируешь технологии :)
15:49Хочу задать холиварный вопрос дорогим читателям: а что лучше? Давайте выясним? Vim - RT, Emacs - FAV.
15:52@archydragon @backendsecret Холиварят, потому что пользователи vim и emacs уже закончили свои дела? :)16:34
Ребята, а те, кто использует всякие большие IDE, расскажите с чем связан ваш выбор?
16:39@backendsecret @archydragon пользователи Sublime Text и IDEA работают только потому,что пользователи vim и emacs им разрешили им работать ;)16:47
Есть еще один редактор, к которому я не ровно дышу - это Atom. Он отлично смотрится рядом с моим бокалом для смузи :)
18:32@backendsecret не тупит вебкит-то?18:34
.@kotchuprik а это не важно. Он же красивенький и я в нем конфиги правлю :)
18:35@backendsecret не ну я-то солидарен. плагинов куча. сам юзаю и для голанга в том числе. но не тупит ли он у тебя?)))18:36
.@kotchuprik тачка мощная, не замечал :)
18:37@backendsecret юзают IDEA, здорово автоматизирует рутину, особенно удобно что с git, бд и кодом работаешь из одного места, на то оно и IDE18:37
.@Borovikov соглашусь. Основной плюс IDE в том, то что они из коробки аккумулируют все, что нужно для работы
18:39.@Borovikov для не который языков, например Java, бывает без IDE вообще не разберешься. Особенно если проект огромный
18:40Ребята, а расскажите какой у вас любимый шрифт для терминала/редактора? А я потом расскажу, кто мой фаворит :)
18:55@backendsecret Для кода — Input, еще Source Code Pro19:02
@backendsecret Deja Vu Sans Mono в редакторе, в терминале внезапно пофиг, на маке дефолтный Monaco, в линуксе Terminus.19:02
Лучшая иллюстрация объединения io.js и node.js была сегодня у @html5by pic.twitter.com/RjKD8ge3cQ19:04
@backendsecret пересел на атом только из-за эликсира19:09
@backendsecret Hack font19:15
Кстати, будете смотреть сегодня презентацию Apple?
19:33@dcromster @backendsecret никогда не пробовал Emacs. У него есть преимущества перед вимом?19:46
.@raxpost @dcromster я тоже не пробовал Emacs, но судя по результатам голосования - они примерно одинаковые :)
19:47@dcromster @backendsecret при работе клавиатурой производительность повышается раза в полтора, причина по которой все боятся вима - лень19:53
@backendsecret RubyMine волшебно рефакторит код на Ruby21:56
Ребята, спасибо за фидбэк! Интересно было услышать ваши предпочтения. А мой любимый шрифт Anka/Coder programmingfonts.org/post/108439777…
21:57И вообще, вот тут много всяких других моно-шрифтов programmingfonts.org
21:58Эппл сегодня как-то много всего представила. Надо как-то все осмыслить и смириться с этим
22:16А пока выбираем тему на завтра! :) Разработка в Rambler&Co - FAV; языки программирования - RT.
22:16# Четверг 79 твитов
Друзья, всем привет! Сегодня мы поговорим про языки программирования.
11:32Прежде, чем мы начнем нашу беседу, расскажите, какие вы знаете авторитетные рейтинги популярности языков программировния?
11:32@backendsecret периодически смотрю статистику на TIOBE + раньше публиковали на githut.info но за 2015 год нет ничего :(13:13
@backendsecret тут скорее интересен вопрос, какие выводы можно сделать из всякой разной статистики по популярности ЯП13:13
@backendsecret RedMonk делает регулярные срезы GitHub+StackOverflow redmonk.com/sogrady/2015/0… Идея не их, но они подхватили.13:13
@gruz0 @backendsecret у меня вон, в 93 мама писала на foxpro и на паскале, ничего сейчас ей плевать на рейтинге, она просто не пишет код :D13:59
@anton_davydov @backendsecret мой путь таков: Basic, FoxPro, Perl, ASP, PHP, Ruby. Остальные мимолётные языки не считаю. А за эти платили.13:59
@anton_davydov @backendsecret а кто-то пишет на двух самых популярных языках и плюёт на рейтинги :-D14:00
.@gruz0 @anton_davydov но как-то же он понял, что они самые популярные :D
14:00Как вы уже поняли, я очень неровно дышу к Ruby. В последнее время изучаю Haskell и мне очень нравится mindset функциональных яп
14:02@backendsecret @anton_davydov с этиме вашыме рейтенгоме никуда не деццо!!1! :-D14:03
Самый крутой учебник по Haskell здесь learnyouahaskell.com/chapters
14:04Если вы решили выучить функциональный яп, и до этого жили в ООП парадигме - первое время ваша жизнь будет адом! :)
14:07Из того, что хочется попробовать в продакшне и вообще: Elixir elixir-lang.org и Scala scala-lang.org
16:28@backendsecret лучше эрланг, он стабильнее17:42
.@artemeff Elixir и Erlang очень близки. Для меня одна из киллер-фич Эликсира - это организация кода.
17:44@backendsecret мне не очень понравился. есть еще book.realworldhaskell.org, но в итоге сейчас остановился на github.com/bitemyapp/lear…17:44
@Shiroginne @backendsecret если вы про что-то не знаете, то не значит, что этого нет. Haskell используется в реальной жизни.17:44
.@ibxth @Shiroginne соглашусь. Есть класс задачь, где функциональные ЯП выигрывают, в частности Haskell
17:45Вообще, в развитии веб-дева функциональщина уже давно витает где-то совсем близко
17:48Так что бойтесь! Скоро функциональные ЯП будет знать каждая домохозяйка! :)
17:49@backendsecret если он так прекрасен, почему же на нем не пишут повсеместно? Наверняка задач то много17:50
.@Shiroginne на это много причин. Порог вхождения, исторические обстоятельства, сообщество и пр.
17:51@backendsecret вспомнил занятную историю, о сеньоре запилившем компоненту на скале и свалившем. приседали с эти потом долго :)17:52
@backendsecret мне кажется, вот очень показательный пост про веб разработку на haskell bitemyapp.com/posts/2015-08-…17:58
Друзья, а кто с какого языка начинал свой путь разработчика?
17:59@backendsecret Функциональшина давно выиграла. Иммутабильность, функции высшего порядка, вывод типов - мейнстрим.18:06
.@freiksenet_ru к сожалению (или к счастью?) по статистике языков и продакшн систем это пока нет
18:07@backendsecret а что такого хорошего в Ruby ?18:21
.@webusnix в Ruby хорошо: синтаксис, гибкость, выразительность, сообщество, окружение (либы, фреймворки и пр.)
18:21Я смотрю, очень много начинали с Бейсика. Теперь я знаю, что я в этом не одинок :)
18:22.@webusnix есть класс задач и проектов, где скорость разработки решает - в ущерб производительности
18:25@backendsecret и медлительность. если мы никуда не спешим, то это окей.18:25
@backendsecret а что ты думаешь о coffeescript?18:40
.@mamyashev я думаю, что лучше писать на голом JS, чем на CoffeeScript
18:40.@mamyashev хотя опять же, зависит от конкретного проекта и затрат на него
18:41@backendsecret @mamyashev интересно, а кто-нибудь делал серьёзные замеры на боевом продакшене насколько сахар (кофескрипт, джейд) полезен?18:46
.@vladimore @mamyashev друзья, мы же здесь про бэкэнды всякие беседы ведем :)
18:46@backendsecret @vladimore @mamyashev Так это все и на бэкенде может крутиться, так что можно ) Я лично тоже за чистый JS18:50
@vladimore @backendsecret @mamyashev А по какой метрике можно оценит полезность сахара?18:50
.@Andre_487 @vladimore @mamyashev по глубине знания JS. Есть кто знает CoffeeScript, а есть кто JS. Это разные люди зачастую, как ни странно
18:51@vladimore @backendsecret @mamyashev так на проде будет уже JS скомпиленный. Как это замерить? Написать 2 одинаковых вещи и задеплоить?)19:10
.@MosinAndrii @vladimore @mamyashev поменить скорость исполнения конечного варианта; сравнить конечный размер. Зависит от того, что важнее
19:12@backendsecret @MosinAndrii все ещё не понимаю, а зачем замерять? Ну ок, CS медленнее и тяжелее, следующий шаг? @vladimore @mamyashev19:15
.@shuvalov_anton @MosinAndrii @vladimore @mamyashev все зависит, от конкретного проекта и критических метрик. Кому-то и CS ок.
19:15@shuvalov_anton @backendsecret ну со скалой с непривычки тоже поприседать можно, если еще это и как экспиремент было сделано.19:16
.@ivanenok @shuvalov_anton ну так то с чем угодно можно поприседать с непривычки :)
19:16@shuvalov_anton @backendsecret @vladimore @mamyashev поддерживаю. Какой смысл? Кому cs не нужен, тот на нем и не пишет19:17
@backendsecret @shuvalov_anton скала даёт огромные возможности в выражении мыслей, главное что бы психопату в руки не попала :)19:19
git merge pic.twitter.com/PAxRKdkUmf19:24
Ребята, а вот еще вопрос ко всем. У кого сейчас на проекте есть технический долг? И как вы его меряете?
19:30@backendsecret оптимизируйте картинки — компенсируете размер CS. Оптимизируйте работу с DOM — скорость @MosinAndrii @vladimore @mamyashev19:32
@anton_davydov @backendsecret зачем мучаться старым синтаксисом и другими проблемами эрланга когда есть красивый и сахарный эликсир?19:37
@backendsecret что ты имеешь в виду под техническим долгом?19:38
.@shuvalov_anton плохо продуманную структуру, архитектуру, некачественный код
19:39@backendsecret солидарен, да и масштабироваться с функциональщиной гораздо проще. А это многого стоит.19:43
@freiksenet_ru @backendsecret поддержу. Но интерпрайз все ещё пытается сопротивляться )19:45
@shuvalov_anton @backendsecret @MosinAndrii @vladimore @mamyashev JS на бэкэнде - это хайп. Серьезные вещи никто не будет на нем писать.19:50
@backendsecret А когда он появляется? Когда осознаешь, что написал говнокод? @shuvalov_anton19:55
.@dcromster @shuvalov_anton когда на внесение изменений тратишь больше времени, чем мог бы при ином дизайне, например
19:56@backendsecret хм... А если 100 лет не касались,всё забыли=>долго вспоминать... Это считается?@shuvalov_anton19:57
.@dcromster @shuvalov_anton надо тупо сконвертировать в деньги и сравнить, что дороже :)
19:58@backendsecret ты хочешь сказать, что бывают проекты БЕЗ тех долга? %) Кажется, такое возможно первые пару недель)))20:05
@shuvalov_anton @backendsecret @dcromster а вы много знаете разрабов, кто бы не сказал, впервые увидев чужой код, что он — «ок»?20:11
.@KSDaemon @shuvalov_anton @dcromster таких разрабов не существует! :)
20:11@backendsecret @KSDaemon @shuvalov_anton @dcromster да бросьте! Я у меня было 2 проекта, где код был ок. В обоих случаях его писал 1 человек20:13
.@lancedikson @KSDaemon @shuvalov_anton @dcromster это были вы? :)
20:14Я для себя открыл недавно очень крутую штуку SonarQube. Она меряет код по различным метрикам, в том числе тех. долг sonarqube.org
21:38Вот, посмотрите на тестовом проекте. Для тимлида и техдира - это бесценный инструмент! nemo.sonarqube.org
21:39На эту тему есть еще один очень крутой сервис - CodeClimate. Он более хипстерский codeclimate.com
21:47@backendsecret знаю что грешно, но Visual Basic и Delphi :) Потом C++, потом PHP и далее все глубже в веб...21:48
@backendsecret ох, пропаганда хипстеризма среди бэкендеров детектед! :))21:49
@anton_sunrise @backendsecret а может там наоборот ещё на прологе сидят? ) что более прогрессивно, чем фп, к слову21:49
.@__fro @anton_sunrise пролог крутой, но без расширителей сознания я его не понимаю :(
21:50@backendsecret "барышня, поллитру водки вооон за тот столик, для профилактики" :)21:52
И так, выбираем тему на завтра: разработка в Rambler&Co - RT; интересные ссылки и ништяки - FAV.
22:01# Пятница 20 твитов
@backendsecret в свое время фрейиворку Ruby on Rails даже Microsoft позавидовал..Вот.9:27
Что-то мы сегодня припозднились с нашим чадом кутежа и полезных ссылочек!
16:38Итак, лот первый и крайне полезный, книга Ильи Григорика "High Performance Browser Networking" chimera.labs.oreilly.com/books/12300000…
16:40Очень крутой доклад про паттерны проектирования в функциональном программировании skillsmatter.com/skillscasts/61…
17:25Классный доклад Гриши Петрова о том, как называть переменные youtube.com/watch?v=z5WkDQ…
17:40Отличная бесплатная книга по функциональному программированию от Dr. Boolean drboolean.gitbooks.io/mostly-adequat…
17:46Nginx Admin Guide. Иногда бывает полезно перечитать :) nginx.com/resources/admi…
18:02Вячеслав Олиянчук как-то раз классно рассказывал о том, как правильно готовить vim vimeo.com/34201803
18:17@backendsecret лучше уж сразу ссылку на github.com/miripiruni/vimi19:07
Еще про vim есть старая, но весьма полезная статья mislav.uniqpath.com/2011/12/vim-re…
19:16Классная преза Антона Каляева про отладку Ruby-приложений и вообще 2014.devconf.ru/data/2014/pres…
20:38Статья Яна Бродецкого про оптимизацию рендеринга веб-страниц habrahabr.ru/company/ramble…
20:48Ребята, а поделитесь каким-нибудь докладом/статьей/книгой, которые сильно повлияли на вас, как на разработчика?
20:51@backendsecret мне вот эта штука всегда помогала когда руки опускались, потому что все в проекте не то и не так :) ozon.ru/context/detail…21:03
@backendsecret последнее что зацепило и не отпускает - clojure, во многом благодаря ричу хикки.21:46
infoq.com/presentations/…
@backendsecret рассматривание Google analytics. Быстро пришло понимание что "прикольные фичи" нафик никому не сдались21:46
@backendsecret биография Шостаковича. Без шуток.22:09
@backendsecret ты не смотрел доклад Вадима Макишвили «36» ??? bit.ly/1XU5TN322:21
# Суббота 59 твитов
Сегодня и завтра мы поговорим про разработку в Rambler&Co, а оставшееся время пообщаемся на вольные темы :)
10:56В & работает несколько несколько сотен программистов
10:59ЯП мы используем: Python, Ruby, PHP, Perl, C#, C, JS. Короче довольно большой зоопарк. Но mainstream - это все же Python, Ruby и JS.
11:02Из фреймворков используем RoR, Django, Flask. Есть попытки и желание использовать Pyramid
11:08Из асинхронных фреймворков так или иначе используем/использовали Twisted, Tornado, gevent, asyncio, EventMachine и др.
11:10@backendsecret а как делите что делать на Django, а что на Flask?11:10
.@return_none как правило по экспертизе в команде, а так же в зависимости от конкретного проекта
11:11Разработка в & представляет из себя один большой департамент, куда входят практически все команды разработки, за некоторым исключением
11:14Внутри департамента есть деление на направления разработки
11:15Руководитель каждого направления продумывает план развития своего направления: профессиональный рост, конференции, внедрение практик и пр.
11:16С другой стороны, в каждый проект набираются люди - каждый из своего направления. Они объединяются в команду, которая делает проект
11:17Если человек по каким-то причинам не подошел в проект, мы можем предложить ему другой в рамках холдинга
11:19Но только в том случае, если прыжки с проекта на проект не превращаются в паталогию :)
11:19@backendsecret а можно чуть подробнее? Как по мне, со временем Flask на больших проектах становится такой "Django", только самодельный11:19
.@return_none совершенно верно! Тут нужно просто на этапе планирования проекта понимать, сколько он будет жить и насколько сложный будет.
11:20@backendsecret эксплуатация, тестирование, дизайн, аналитики, проектные/продуктовые менеджеры тоже в отдельных департаментах?11:22
Есть два типа компаний: которые тяготеют к матричной структуре; которые тяготеют к feature teams
11:23Так вот, мы занимаем промежуточное положение на этой оси
11:23Такую структуру мы строим уже год и еще в процессе. Не все бывает гладко, но change management он такой :)
11:26Вообще у & был период, когда мы очень сильно просели технологически и по инженерной культуре
11:27В холдинге работало очень много известных ныне людей в IT мире. Взять того же Игоря Сысоева, автора nginx
11:28Или Олега Бартунова, который сейчас активно участвует в разработке PostgreSQL
11:30Сейчас для меня, как для руководителя разработки &, одна из ключевых целей - возродить былую технологичность нашей компании
11:31За предыдущие 12 месяцев на нашей уютной Мансадочке проходило очень много митапов: MoscowJS, RailsClub
11:33Первая Python встреча на которую мы пригласили Benoit Chesneau github.com/benoitc
11:35Его выступление, кстати, можно посмотреть здесь youtube.com/watch?v=3pTL_j…
11:37На той же встрече Паша Клеменков рассказывал про использование R и Python youtube.com/watch?v=bu4viD…
11:40На Moscow Djano один из наших разработчиков, Максим Шаламов, рассказывал очень интересно про генерацию текстов moscowdjango.ru/speakers/maxim…
11:44А доклад Юли Селютиной на том же Moscow Django вообще мой самый любимый :) moscowdjango.ru/speakers/julia…
11:45На предстоящем @railsclub_ru выступят наши Руби-джедаи Семен Багреев и Станислав Герман
11:47Семен Багреев, руководитель направления Ruby разработки, расскажет о том, как это - быть "Писателем ПО"
11:49Станислав Герман, один из наших ведущих разработчиков Ruby, расскажет про Command Query Responsibility Segregation в Rails-приложениях
11:51Так что приходите на RailsClub, там будет интересно. Мы кстати выступаем одними из спонсоров этого мероприятия railsclub.ru
11:53Отдельно хочется отметить конференцию PyCon Russia, которая будет проходить 18-19 сентября
11:55Паша Петлинский, один из наших ведущих разработчиков, расскажет про DSL для Django ORM pycon.ru/2015/program/c…
11:56@backendsecret понял:) а как примерно выглядит взаимодействие разработки, QA и эксплуатции?сколько времени нужно фиче, чтобы попасть в прод?11:57
.@yevvers в нашем случае очень сильно зависит от конкретной команды и процесса/методологии по которой они рабатют + исп. инструментов
11:58@backendsecret не сталкивались с необходимостью переписать что-то в фреймворке под себя, например в Django?11:59
@backendsecret, @return_none, где эта грань между долгим и быстрым проектом? Приведи пример, для чего Django, а для чего Flask?12:41
.@vmakeev @return_none например много сущностей, сложные взаимосвязи, процессы - это про Django. Тут пригодится такой комбайн
12:43@backendsecret понял.ну,хорошо,есть много команд со своими процессами и инструментами.как они синхронизируются?гигантская канбан-доска?:)12:43
.@yevvers у нас не сильно связные команды т. к. проекты разные. Например Лента и Рамблер.Недвижимость
12:44@backendsecret направления по функциональности? или по технологиям? просто выше прочитал про руководителя направления Ruby-разработки13:30
@backendsecret это где так хорошо?13:31
@backendsecret и последний вопрос про структуру: некоторое исключение - это кто? безопасники, инфраструктура и прочие НОКи?:)13:53
@backendsecret у вас же один офис насколько я помню, нет заморочек с распределенными командами?15:57
@backendsecret что повлияло? СЕО?15:57
.@mikeBazhenov совокупность факторов
15:58@backendsecret как правильно делать обмен данными между серверами, допустим если разбили api на несколько смысловых блоков? HTTP запросы?15:59
.@mikeBazhenov как один из вариантов, слишком много неизвестных :)
16:00@backendsecret каковы мотивы для оных исправлений, конкретно в вашем случае?16:00
.@ivanenok чтобы все разработчики были в одном творческом кластере и коммуницировали с коллегами по цеху
16:01@POS_troi думаю это тема для отдельного срачика :) @backendsecret вот еще годная книга, но она для лидов скорее ozon.ru/context/detail…17:42
# Воскресенье 48 твитов
Друзья, всех с днем программиста! Мы делаем этот мир лучше! :)
10:52@backendsecret воскресное: расскажи о музыке, которая помогает работать, как входишь в поток, хобби :)12:54
.@dcromster с музыкой это вообще отдельная история. Я уже давольно давно люблю техно. Под эту музыку я танцую, под эту музыку работаю :)
12:55.@dcromster вот для примера парочка миксов из моей коллекции
12:57.@dcromster Kassem Mosse mixcloud.com/isilver/kassem…
12:57.@dcromster Sergey A.M. soundcloud.com/resonancemsk/r…
13:00.@dcromster Jeroen Search soundcloud.com/s_gnls/jeroen-…
13:00.@dcromster и вообще, я считаю, что лучшее техно в Москве только по пятницам и только в Пропаганде :)
13:01@backendsecret как планируешь свой день?13:01
Свой следующий день я планирую вечером предыдущего. Например сегодня я планирую понедельник
13:02.@dcromster а это вообще, лучший российский подкаст про техно soundcloud.com/warehouse-podc…
13:04Из программ я использую OmniFocus 2 itunes.apple.com/ru/app/omnifoc…
13:06Календарь, разумеется iCal. Хотя пробовал Outlook. Но долго так жить нельзя - душок Microsoft очень скоро становится нестерпимым :(
13:10Про планирование дел многие советуют книгу "Как привести дела в порядок" Аллена. Хотя я думаю, что самое ценное в ней - это схема на форзаце
13:14И вообще, при планировании самое главное - это приоритизация. Дел всегда будет много, но важно сделать самые ценные их них.
13:16Да и вообще, просто включайте голову :) Без нее, все инструменты и книги будут ни о чем
13:17Теперь о хобби: любовь к электронной музыке наложило и на это свой опечаток
13:19Когда я хочу отдохнуть от мирской суеты и всяких программирований, я свожу свои любимые треки. Короче учусь диджеить :)
13:20Дама у меня стоит два виниловых проигрывателя Pioneer PLX-1000 pioneer-rus.ru/ru/newsroom/ne…
13:21Микшер Allen Heath Xone:23 allen-heath.com/ahproducts/xon…
13:22Миксую я пока не так круто, как например тот же @ilyabirman, но специально для сегодняшенго праздника записал микс yadi.sk/d/8_o6AHFuijjCm
13:24Из всяких девайсов про электронную музыку очень хочу попробовать Roland TR-8. Это программируемая драм-машина roland.com/products/tr-8/
13:26А тут еще @dot_worx рассказал про Monomachine, так я вообще влюбился в этот девайс :) eu.elektron.se/synths/monomac…
13:28@backendsecret норм так-то. Очень неплохо к этому делу Serato приобрести :)13:28
.@TheSunwave я Трактор юзаю :)
13:28Друзья, а расскажите, какие у вас хобби. Как вы отвлекаетесь от работы?
13:29@backendsecret а как находишь баланс в жизни?13:30
.@dcromster баланс помогает прочувствовать медитация и йога. Я стараюсь в день медитировать по 20 мин минимум
13:31@backendsecret он тоже хардварный?13:31
.@TheSunwave конечно. Serato, насколько я знаю тоже :)
13:32@backendsecret так и на это время нужно!13:32
.@dcromster в том то и суть. Садишься, медиируешь, рассталяешь приоритеты - и вперед! Вот тебе и баланс :)
13:33@backendsecret ремонт в квартире 😁 очень отвлекает, когда его делаю, скучаю по работе)))13:34
.@dcromster keep it simple :)
13:36@backendsecret карате - выплеснуть эмоции, бег - поразмышлять, пианинко - эмоции, раслабление, жизнь13:40
@backendsecret скалолазание, скейт, пешие прогулки - и род деятельности меняется, и в форме себя держать помогает13:45
@backendsecret долгие прогулки и зал13:52
@backendsecret лонгбординг летом и сноубординг зимой, игра в музыкальной группе, периодический просмотр онемэ13:59
@backendsecret Дети дают?14:05
.@dcromster я холостой и без детей пока :)
14:05@backendsecret летаю на планере. Это как парусник, но по вертикали :)14:18
@backendsecret далеко и долго езжу на велосипеде14:18
@backendsecret рыбалка14:39
Happy Programmers Day! :)14:44
@backendsecret футбол, картинг, походы/рыбалки, ну и всегда прогулки с ребёнком14:48
@backendsecret @dcromster расскажите, как корректно начать медитировать?16:12
.@dronovmm @dcromster мне в свое время очень помог с медитацией вот этот гайд all-yoga.ru/page/igor-berh…
16:13# Ссылки
www.amazon.com
- http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672
- http://www.amazon.com/gp/product/0596007124
- http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
- http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351
- http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/
- http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/
other
- http://dave.cheney.net/2015/07/02/why-go-and-rust-are-not-competitors
- https://github.com/rambler-digital-solutions
- https://github.com/bitemyapp/learnhaskell/blob/master/guide-ru.md
- https://github.com/miripiruni/vimi
- https://github.com/benoitc
- http://www.agilemanifesto.org/
- http://ilyabirman.ru/meanwhile/all/procrastination-plan/
- https://i3wm.org/
- http://programmingfonts.org/post/108439777282/ankacoder-the-ankacoder-family-is-a
- http://programmingfonts.org/
- http://githut.info/
- http://redmonk.com/sogrady/2015/07/01/language-rankings-6-15/
- http://learnyouahaskell.com/chapters
- http://elixir-lang.org/
- http://www.scala-lang.org/
- http://book.realworldhaskell.org/
- http://bitemyapp.com/posts/2015-08-23-why-we-dont-chuck-readers-into-web-apps.html
- http://www.sonarqube.org/
- http://nemo.sonarqube.org/
- https://codeclimate.com/
- http://chimera.labs.oreilly.com/books/1230000000545
- https://skillsmatter.com/skillscasts/6120-functional-programming-design-patterns-with-scott-wlaschin
- https://www.youtube.com/watch?v=z5WkDQVeYU4
- http://www.youtube.com/watch?v=3pTL_jHok88
- http://www.youtube.com/watch?v=bu4viDjT0kY
- http://drboolean.gitbooks.io/mostly-adequate-guide/
- https://www.nginx.com/resources/admin-guide/
- https://vimeo.com/34201803
- http://mislav.uniqpath.com/2011/12/vim-revisited/
- http://2014.devconf.ru/data/2014/presentation/32.pdf
- http://habrahabr.ru/company/rambler-co/blog/258913/
- http://www.ozon.ru/context/detail/id/116988/
- http://www.ozon.ru/context/detail/id/2409500/
- http://www.infoq.com/presentations/Simple-Made-Easy-QCon-London-2012
- http://bit.ly/1XU5TN3
- https://moscowdjango.ru/speakers/maxim-shalamov/
- https://moscowdjango.ru/speakers/julia-selutina/
- http://railsclub.ru/
- http://pycon.ru/2015/program/content/rambler/
- https://www.mixcloud.com/isilver/kassem-mosse-live-mds-podcast-module-tokyo/
- https://soundcloud.com/warehouse-podcast/warehouse-podcast-03-worx
- https://soundcloud.com/resonancemsk/resonance-12-wsergey-am
- https://soundcloud.com/s_gnls/jeroen-search-signals-v07
- https://soundcloud.com/warehouse-podcast
- https://itunes.apple.com/ru/app/omnifocus-2/id867299399
- http://www.pioneer-rus.ru/ru/newsroom/news/PLX-1000/page.html
- http://www.allen-heath.com/ahproducts/xone-23/
- https://yadi.sk/d/8_o6AHFuijjCm
- http://www.roland.com/products/tr-8/
- http://eu.elektron.se/synths/monomachine/
- http://www.all-yoga.ru/page/igor-berhin-28-video-urokov-meditacii