13 апреля в Екатеринбурге прошла конференция для программистов, дизайнеров, тестировщиков и менеджеров DUMP. Под катом — много видео, презентации и фотографии. А еще посмотрите отчетный ролик — в нем коротко о том, как прошел DUMP-2018.
Секция FrontTalks
Senior Frontend Developer в Uploadcare, основательница и активистка Санкт-Петербургского фронтенд сообщества SPB Frontend Зарема Халилова рассказала, как они полностью отделили фронтенд от старого бэкенда, как предложили такое решение, какие были опасения со стороны бэкенда и менеджмента и как они это решили.
За последние годы CSS развивается очень хорошо и очень быстро. Многие начинают задумываться, а зачем использовать лишнюю прослойку между препроцессором и нативным CSS, если можно использовать все возможности препроцессоров в нативном CSS. Руководитель аутсорса по вёрстке сайтов от HTML Academy, организатор pitercss_conf, pitercss_meetup, moscowcss и WSD Серёжа Попов (Санкт-Петербург) рассказал, в каком состоянии сейчас CSS, что именно в нём уже поддержали от препроцессоров, и попытался убедить слушателей, что препроцессоры больше не нужны.
Headless-браузеры уже давно стали незаменимым инструментом разработчиков. С их помощью можно проводить тестирование кода, проверять качество и соответствие верстки и другое. Сооснователь Elonsoft и Ростовского IT-сообщества Виталий Слободин рассказал, как устроены и работают Headless-браузеры.
Разработчик в Яндекс.Деньги, ведущий подкастов «Девшахта» и «Ночной фронтенд» Андрей Мелихов на примере движка V8 рассмотрел, что происходит с нашим кодом, как он оптимизируется и исполняется. Рассказал, из чего состоит движок V8, зачем нужна компиляция в интерпретируемом языке, где тут появляется байткод и как работают спекулятивные оптимизации.
Алексей Мигутский из Microsoft (Берлин) рассказал о практике использования «независимо присоединяемых компонентов» в веб-версии Microsoft To-Do в связке React + Redux + Reselect и о том, почему передавать данные через все компоненты — выстрел себе и команде во все ноги. А ещё из доклада вы узнаете о не самом распространенном способе работы с react и redux, который позволяет сильно упростить поддержку и внесение изменений в фронтенд-код.
Разрабатывая сайты, фронтенд-разработчикам приходится учитывать свойства скролла, особенно если они пытаются изменять его поведение. Иногда требования дизайнера к интерфейсу могут превратиться в настоящее наказание. Анна Селезнёва (Evil Martians, Минск) рассказала про известные и не очень особенности скролла и способы его применения.
Александр Сушко (СКБ Контур) рассказал, как после летней стажировки по фронтенду и пары месяцев работы джуном перевел устаревший фронт с ASP.NET на React.js: с чего начать, что вас ждёт и как с этим справиться.
Александр Коротаев (Санкт-Петербург) рассказал историю становления программиста через разработку «игры мечты». Этот доклад приоткроет окно в мир фанатов своего дела и укажет верный путь в разработку больших игр в браузере.
Секция Serverside
Олег Анастасьев (Одноклассники, Рига) обсудил архитектуру и интересные детали устройства one-cloud — новой системы управления датацентром, позволяющей эффективнее загрузить технику, облегчить управление доступами, автоматизировать (пере)распределение вычислительных ресурсов, ускорить запуск новых сервисов и ускорить реакции на масштабные аварии.
Борис Кузнецов, backend-разработчик в Evrone, в докладе рассмотрел основную идею блокчейна и технические детали ее реализации, рассказал про основные идеи и алгоритмы, реализованные в Bitcoin и Ethereum, и сравнил модели хранения данных о транзакциях. Этот доклад объяснит основы, на которых можно строить новые блокчейн-проекты.
Помимо общей информации о том, что такое swagger и как его использовать в качестве средства формального описания API, Антон Прохоров (Очень интересно, Красноярск) предложил способ снижения количества ошибок при написании спецификации и построения процесса поддержки документации в актуальном состоянии.
CEO & Founder в NetAngels Антон Халиков (Екатеринбург) рассказал, какие преимущества есть у grpc по сравнению с традиционным rest api, как решаются вопросы совместимости protobuf файлов между python и golang, как организовывать иерархию protobuf файлов в приложении, состоящем из многих микросервисов и о многом другом, что далеко не всегда можно найти в документации.
Александр Сербул (1С-Битрикс, Москва) рассказал про опыт проектирования, реализации и эксплуатации технологий и алгоритмов искусственного интеллекта для решения бизнес-задач онлайн-поддержки клиентов. Доклад будет полезен не только разработчикам, но и аналитикам, и менеджерам, решающим профильные бизнес-задачи по внедрению ИИ в процессы поддержки клиентов.
Михаил Ткачев (Tinkoff.ru, Екатеринбург) рассмотрел концепцию reactive streams и её реализацию в составе Akka — Akka Streams. Рассказал, зачем нужны Akka Streams, почему не устраивают просто Akka Actors, как стримы ложатся на акторы, как выполняются. Описал основные строительные блоки стримов от примитивных до сложных графов, dsl для работы с ними. Показал, как создавать собственные блоки, и привел примеры использования.
Teamlead и back-end разработчик в «Мерката» Алексей Сотов рассказал про Fast AI — высокоуровневый фреймворк для работы с нейронными сетями. Вы узнаете, что такое «вычислительный бэкэнд» и «граф вычислений», зачем нужно использовать «высокоуровневые фреймворки», почему Fast AI + PyTorch лучше, чем Keras + Tensorflow, как писать меньше кода и получать лучший результат за меньшее время. А еще Алексей показал, как с помощью Fast AI всего в 3 строчки кода научить нейронную сеть отличать кошечек от собачек с точность 99%.
Backend разработчик ВКонтакте Алексей Акулович рассказал про язык Go и массу «хайпа» вокруг него. В докладе: в чем основные причины негатива в его адрес, и что с ними можно сделать (или нельзя); плюсы языка для тех задач, где он наиболее широко используется; взвешенные и обоснованные сравнения с другими языками, не скатываясь в холивар.
Секция Mobile
Вы слышали много раз такие слова, как: IBinder, Zygote, Dex и Dalvik? Хотели узнать подробнее, но не знали у кого спросить? Думаете, Android устроен из одних активити и сервисов? Владимир Теблоев (Сбербанк, Москва) объяснил, что происходит с момента нажатия на иконку приложения до запуска первого экрана. Рассказал о таких понятиях, как Zygote и IBinder, и их связях с процессами в Android.
В конце прошлого года Google запустил Cloud Firestore — новую NoSQL базу данных для мобильных и веб-приложений. Lead Software Engineer в NetCracker, организатор Google Developer Group Nizhny Novgorod Александр Денисов рассказал, как построить базу данных с Cloud Firestore, сравнил ее с Realtime Database и MongoDB, научил, как перейти с Realtime Database на Cloud Firestore, и подсказал, как выбрать облачную базу данных для своего проекта.
Что получит разработчик, если прочитает «The Book of VIPER» и будет следовать её советам? Он получит много кода, написанного в процедурном стиле, анемичную модель предметной области и другие проблемы. С этими проблемами можно мириться, а можно полностью устранить, если разобраться в причинах их возникновения и отделить хорошее от плохого. Павел Кольцов (Tinkoff.ru, Екатеринбург) объяснил, как это сделать.
Денис Малых (Яндекс, Екатеринбург) рассказал про некоторые архитектурные эксперименты, которые они провели в своей работе, рассмотрел, что получилось и не получилось и какие выводы они сделали из своих экспериментов с VIPER, архитектурами на базе промисов, обсерверов и операций.
Каково жить с Android-проектом, которому 8 лет? Что там внутри? Там вообще есть жизнь? :) Евгений Мацюк (Kaspersky Lab, Москва) рассказал, как такие проекты переводить на новые рельсы и стоит ли их вообще переводить, какие этапы можно выделить, какие приемы и технологии работают, а какие нет. И главная интрига — реальна ли там чистая архитектура?
Семён Белоковский (SkyEng, Пермь) рассказал о том, какую пользу может принести автоматизация процессов разработки для мобильного разработчика. Семён разобрал основные моменты настройки системы автоматизации на базе Jenkins и Fastlane, трудности, с которыми можно столкнуться, а также то, что получилось в итоге у автора.
С сентября 2016 компания JetBrains разрабатывает компилятор Kotlin в машинный код с использованием инфраструктуры LLVM. Игорь Чевдарь (JetBrains, Санкт-Петербург) рассказал о причинах появления Kotlin/Native, о текущем положении дел, планах на будущее. Затронул внутреннее устройство компилятора, рантайм, управление памятью, взаимодействие с языками C и Objective C.
Секция DevOps
Александр Тарасов (Одноклассники, Москва) рассказал, почему им пришлось написать свой кастомный DSL, а не взять классические инструменты управления конфигурацией (такие, как Ansible), почему хороший DSL и инструментарий критически важны для этой задачи и какие проблемы пришлось преодолеть, чтобы всё работало так, как изначально задумано.
Александр Лукьянченко (Авито, Москва) рассказал о переходе Авито на локальную разработку с использованием Kubernetes, с помощью которого они ускорили производительность вчетверо. Александр поговорил о настройке и деплое локального окружения, рассказал, как они готовят сэмплы баз, разворачивают монолит, микросервисы, ведут мониторинг, и поделился приёмами для автоматизации развертывания на сотне машин разработчиков.
Артём Зиненко (Kaspersky Lab, Екатеринбург) рассказал про 5 доступных в Ansible способах аутентификации на Windows-машинах. Показал, как каждый их этих способов устроен внутри и почему большинство из них — небезопасные. Также Артём рассказал о решении, которое они применяют у себя в Kaspersky Lab.
Все хотят иметь безопасное подключение к Linux серверам и не тратить много времени на управление пользователями или беспокоится о безопасности реквизитов для подключения. Есть разные способы, как достичь желаемого, используя LDAP/AD и другие решения. Алексей Золотухин и Роман Чередников (Очень Интересно, Екатеринбург) рассказали об одном из способов — использовании подписанных сертификатов. Что в результате дало им простоту подключения к окружениям в «облаках», уверенность, что реквизиты доступа не попадут в чужие руки, и возможность проведения аудита.
Секция Science
Директор по распространению технологий Яндекса, популяризатор программирования, один из создателей и постоянный ведущий подкаста Радио-Т Григорий Бакунов рассказал о перспективах Data Science в медицине и фармацевтике.
Доцент кафедры математических методов в экономике, научный сотрудник в ЦЭМИ РАН, известный популяризатор математики Алексей Савватеев рассказал, как теория игр применяется для моделирования предоставления общественных благ и каковы возможные последствия «голосования ногами», когда люди выбирают города или районы согласно своим предпочтениям, средствам и способностям.
CTO в Insilico Medicine Александр Жебрак рассказал, что такое генеративные модели, какие существуют подходы к созданию новых объектов и моделированию распределений реальных данных, как на самом деле работают эти модели и где они применяются уже сейчас. Во второй части доклада Александр объяснил, как они применяют генеративные модели для создания новых лекарств с требуемыми свойствами.
Илария Тарасова (УрФУ) разобрала принцип работы «генетического скальпеля» на основании системы CRISPR, обсудила её ограничения и проведённые исследования. Рассказала о возможности применения нашумевшей технологии: от новых ГМ-культур до лечения генетических заболеваний и дизайна эмбрионов (привет, GATTACA).
Хэш-таблица — своего рода «теорема Пифагора» в мире программирования. И если в геометрии есть сто способов доказать теорему, то в программировании есть много способов написать хэш-таблицу. Андрей Бородин (Яндекс, Октоника, УрФУ, Екатеринбург) на примерах рассказал про реализации в свободном программном обеспечении, а также про науку, костыли, велосипеды, страх и ненависть вокруг хэш-таблиц.
Нейросети выглядят привлекательной технологией для создания систем поддержки принятия решений, но у них есть недостаток: с их помощью нельзя объяснить, почему предлагается то или иное решение. Сергей Горшков (ТриниДата, Екатеринбург) рассказал о том, как использовать идею машинного обучения даже в тех ситуациях, когда система должна уметь обосновать каждый сделанный вывод.
Параметрическое проектирование, data-driven design, персонализация и кастомизация — эти термины сегодня массово входят в словарь архитекторов и дизайнеров во всём мире. Новые технологии трансформируют наше представление о том, как нужно создавать предметы, здания и среду вокруг нас. Руководитель компании Simplex Noise Антон Клюкин (Москва) рассмотрел основные тренды, мифы (да-да) и подходы внутри этого движения, рассказал про наиболее яркие примеры и поделился опытом из своей практики.
Программист-баллистик в Dauria Aerospace, автор проекта «Море Ясности», постоянный ведущий трансляций запусков SpaceX, популяризатор космонавтики Антон Громов рассказал, какие спутники будут запускаться в ближайшем будущем, кто будет их производить и какие ракеты и технологии разрабатываются для их запуска на орбиту.
Перед ДАМП-ом мы взяли у Антона небольшое интервью о программировании спутников, о состоянии частной космонавтики в России и о том, какая работа для программистов есть в космонавтике.
Секция Менеджмент
Сергей Рогачев (ScrumTrek, Москва) в докладе рассмотрел типичные ошибки целеполагания работников умственного труда и инструменты, позволяющие их решить. Как работает управление по целям в Agile: команды в Scrum или множества команд в Scaled Agile Framework? Как согласовать бизнес и разработку? Что предлагает нам на уровне всей компании OKR (Objectives and Key Results)?
Юлия Ефимова (S Media Link, Краснодар) рассказала, как они создали у себя систему оценки и развития сотрудников, в основе которой лежит геймификация. В результате они повысили вовлеченность и лояльность сотрудников, снизили текучку и стали более привлекательными для соискателей.
Игорь Устюжанин (СКБ Контур) рассказал про живой опыт Контура, где удалось внедрить систему подходов к оценке и развитию разработчиков, которая прижилась и приносит свои плоды. Послушав доклад, вы станете ближе к ответам на такие вопросы:
*от разработчика: «Что мне надо сделать, чтобы получать больше?»
*от руководителя: «Как надо выстроить систему оценки так, чтобы она признавалась сотрудниками справедливой и мотивировала их на развитие в нужном для компании направлении?»
Сергей Дмитриев (Unusual Concepts, Осло) рассказал про ужасы локальной оптимизации, о том, как многие компании позабыли о смысле своего существования и заодно позабыли здравый смысл, и объяснил, что же на самом деле означает Аджайл для его отцов-основателей и какая связь между бирюзовыми организациями и аджайл/скрам/канбан.
Максим Ахмадинуров и Семён Молотков (Кнопка, Екатеринбург) рассказали про дендро-фекальный подход: зачем нужны быстрые прототипы и при чём здесь гугл-докс.
Директор в JetStyle и директор по продукту в Ridero Алексей Кулаков смотрит на дизайн-процесс с обеих сторон баррикады — и со стороны человека, который развивает продукт, и со стороны человека, который продаёт результаты дизайна в проектном бизнесе клиентам. В докладе Алексей рассказал о разнице в дизайн-процессе между продуктовым и проектным бизнесом.
Владимир Бугай (Пермь) рассказал про свой опыт построения продуктового бизнеса и про набитые шишки на этом пути: что такое, чем хороши и плохи спецназ-команды при разработке софта; можно ли сделать продукт без продактов; коммуникации в распределенной, мультикультурной команде; о важности и полезности непрерывного развертывания для SaaS-решений; о мотивации сотрудников опционами.
Александр Картавцев (2ГИС, Новосибирск) рассказал, как они в 2ГИС намеренно уходят от сосредоточения знаний и ответственности по фичам исключительно в головах руководителей и растят локальных менеджеров из всех желающих. Объяснил, как они пришли к идеи фичекрайних, почему это круто, какие бонусы получили люди и отдел RnD в целом.
Александр Карабасов (Лаборатория E9) рассказал, как они в течение 2,5 лет применяли различные подходы к повышению производительности разработки и оценке менеджеров.
Секция Дизайн
Директор по маркетингу в компании «Мосигра», автор книг «Бизнес как игра» и «Евангелист бизнеса», Сергей Абдульманов (Москва) на куче примеров объяснил, чем конкретно отличается понятный текст для интерфейса, и рассказал, как написать понятную инструкцию, технический текст или официальное письмо.
Дизайнер, UX-проектировщик, разработчик, выпускник Академии Искусств в Сан-Франциско, ex-главный проектировщик UX в Parallels Александр Бурт объяснил в докладе, как пройтись по колорпикеру заново взглядом современного юзабилиста, подбирая по ходу упущенные возможности. А еще Александр рассказал, о работе и жизни в Бельгии.
Руководитель департамента дизайна Рамблера, спикер в школе дизайна высшей школы экономики, куратор курса по UI/UX в Moscow coding school Александра Ермоленко рассказала про культуру дизайна в большой компании, про системные решения в интерфейсах как новом стандарте работы и о том, как они проектировали дизайн-систему Рамблера.
Инструменты дизайнера не ограничиваются графическим редактором. Арт-директор Byndyusoft Андрей Шапиро (Челябинск) поделился опытом применения инструментов для программной визуализации и Data Science, пригодных для современного дизайнера цифровых продуктов, и подсказал, как начать их использовать.
Рушана Каюмова (IT-People) и Сергей Соловьев (СКБ Контур) рассказали, как сделать так, чтобы вы точно получили место своей мечты: ошибки в резюме и портфолио, которые допускают даже самые опытные дизайнеры; тестовое; как пройти собеседование и не довести до слез рекрутера и арт-директора; каких дизайнеров ищут работодатели и каких работодателей нужно хотеть дизайнерам.
Основатель и руководитель студии Tengo Григорий Родионов (Екатеринбург) рассказал про типы VR-устройств и объяснил плюсы и минусы каждого. Показал, как они проектируют Natural, HUD, Augmented VR интерфейсы и интерфейсы в AR. Бонусом Григорий рассказал про нейроинтерфейс и его применение в VR & AR.
Дмитрий Чернов (WDI Design School, Новосибирск) рассказал о том, как дизайнерам всегда оставаться в тренде.
Антон Якубов-Цариков (Екатеринбург) сделал очень необычный доклад, в котором обобщил свой 30-летний опыт за 30 минут.
Дмитрий Трофимов из Дикого филина (Екатеринбург) рассказал, как они делали знаменитую карту Екатеринбурга: что это за карта, зарождение идеи и реализация, подводные камни и локальные мемы, как команда провела краудфандинг.
Секция Тестирование
Трудно ли автоматизировать мобильные приложения с нуля? Нужно разобраться в инструментах, выбрать из них подходящие, подобрать правильные версии утилит, настроить их работу, а потом ещё и написать код. Арсений Батыров (Badoo, Москва) постарался облегчить выбор нужных инструментов — рассказал об их типах, возможностях, достоинствах и недостатках.
Эксперт в автоматизации тестирования и тренер по инженерным практикам в Альфа-Лаборатории Анастасия Асеева (Москва) рассказала, как и каким образом разные роли в разработке продукта могут влиять на качество продукта. После доклада вы узнаете, нужен ли вашему продукту тестировщик и почему разработка становится дешевле, если за качество будут отвечать все.
Какую часть процесса разработки можно делегировать пользователям и что из этого получится? И зачем это нужно самим пользователям? Мария Глухова (Targem Games, Екатеринбург) рассказала свою историю работы с добровольными помощниками и о том, можно ли сделать это сотрудничество взаимовыгодным.
Иван Румак (СКБ Контур) рассказал историю ручного тестировщика без технического бэкграунда, который поставил цель научиться хакать сервисы. Иван рассказал о подводных камнях и о том, как их преодолел, про то, какие профиты тестирование безопасности дало ему, показал на примере, как можно взломать крупный сервис, эксплуатируя только логику приложения, которая лежит на поверхности. После доклада, если у вас не было плана обучения тестированию безопасности, вы поймете, в каком направлении можно двигаться и какие могут быть первые шаги.
4 года назад Plesk запустили каталог приложений для их продукта. В результате перед тестировщиками встала абсолютно новая задача: тестирование приложений, написанных не ими. Владимир Лихтанский (Plesk, Новосибирск) поделился опытом, как они строили этот процесс, и как он трансформировался за последние пару лет. Рассказал о техниках, которые им помогают держать высокую планку качества при низких затратах ресурсов.
Материалы
Все доклады можно посмотреть на канале IT-People на YouTube.
Почти все презентации докладов с ДАМП собраны на Яндекс.Диске.
Фотографии с конференции смотрите в группе ВКонтакте, в Фейсбуке и на Яндекс.Фотках.
До встречи на DUMP-2019!
Спасибо нашим спонсорам, которые делают конференцию возможной: генеральному спонсору — компании Сбербанк-Технологии, партнёрам конференции: СКБ Контур, Naumen, Tinkoff.ru, ProSoft Sistems, Очень Интересно, Skb_Lab.
Автор: shulyndina