Разработка — наше всё. Без грамотно выстроенных процессов разработки не бывает тех простых механизмов и сервисов, которыми мы пользуемся каждый день.

Направление «Разработка» будет интересно специалистам, которые создают программное обеспечение. В этом году мы делаем сбалансированную программу, полезную всем: от junior- до senior-специалистов.


Александр Макаров
Core developer @ Yii
Воронеж
Yii: "Как разрабатывается популярный OpenSource фреймворк"

Доклад принят в программу конференции


из Доклады

    За многие годы разработки одного из самых популярных открытых PHP фреймворков удалось набить много шишек начиная от изобретения плохих велосипедов и заканчивая почти десятилетием принципиального отказа заниматься финансовой частью проекта.

    В докладе особое внимание будет уделено тому, что вас ждёт, если вы решите сделать большой OpenSource-проект.

    1. Что такое OpenSource и что в нём такого?

    2. Общие лучшие практики. Без чего не полетит любой открытый проект.

    3. Важность общего видения и направления. Как решается, что делать а что нет.

    4. Работа с сообществом. Общение, организация. Негативный фидбек.

    5. Как получить первых последователей и что делать для роста сообщества.

    6. Психологические аспекты. Ответственность и выгорание в OpenSource.

    7. Финансовый вопрос.


    Александр Александров
    Эксперт @ RSTQB
    Москва
    Бесконечность тестирования

    Доклад принят в программу конференции


    из Доклады

      — Исчерпывающее тестирование невозможно

      — Значит, надо правильно планировать усилия и рубить концы.

      — И на это можно смотреть как с технологической (приоритеты и риски), так и с экономической (деньги) точек зрения.

      — Детализация этих двух точек зрения, особенно второй


      Михаил Синяков
      React ниндзя ⚛️ Frontend lead @ Рестрим
      Ульяновск
      Архитектура SPA и управление состоянием с помощью MST

      Доклад принят в программу конференции


      из Доклады

        Большинство фронтенд-специалистов самоучки. Умеют хорошо верстать и даже делают сайты на реакте. Но страдают архитектурные решения.

        Я хочу рассказать о том как стоит строить spa, расскажу как нужно делить на слои ответственности. Как это позволит делать отказоустойчивые приложения. Улучшит расширяемость/заменяемость. Упростит тестирование. Расскажу как в качестве сервисного слоя использовать библиотеку MST.


        Денис Сальников
        Scrum Master @ FinReach GmbH
        Берлин
        Отпускаем команду в свободное плавание: Как, Когда и Почему?

        Доклад принят в программу конференции


        из Доклады

          Конечная цель любого Scrum Master или Agile Coach при работе с командами — достижение ими высокого уровня самоорганизации. Но что именно скрывается за этим расплывчатым термином? Как довести команду до этого состояния? На что обращать внимание? Когда не стоит «отпускать вожжи»? В своем докладе я постараюсь ответить на эти вопросы и поделюсь уроками, полученными мной в течении последних 5 лет в ходе запуска «с нуля» и развития более десяти Scrum-команд в России и за рубежом.


          Константин Густов
          Архитектор @ АО "Райффайзенбанк"
          Омск
          DDD в микросервисах: сложность против сложности

          Доклад принят в программу конференции


          из Доклады

            DDD — сложный подход к проектированию ПО. Для его изучения требуется много прочитать и еще больше попробовать. Но когда у вас много бизнес-логики и она еще и запутанная, без подобного подхода создать развиваемое большое приложение трудно. У нас начало применения DDD по времени почти совпало со стартом активного перехода на микросервисную архитектуру. Из этого получился интересный опыт применения двух сложных, но в то же время отлично дополняющих друг друга вещей.

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


            Vladimir Ignatov
            senior software engineer @ Avito
            Moscow
            Feature Toggles: Тогда и сейчас

            Доклад принят в программу конференции


            из Доклады

              Как нескольким командам вносить изменения в один файл и не сойти с ума? Как с лёгкой душой коммитить недоделанные фичи в мастер и релизить с ними новую версию? Как запустить фичу на всех платформах одновременно? Для решения всех этих вопросов мы используем механизм Feature Toggles.

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


              Алексей Васильев
              Agile coach @ BIPULSE
              Санкт-Петербург
              Pulse management и многопроектная среда

              Доклад принят в программу конференции


              из Доклады

                Пока мы существуем в рамках одного простого проекта у нас всё хорошо, и годятся любые методы управления: проектные, адаптивные (Agile) или работа "наскоком". Но всё меняется когда появляются проекты внедрения Продукта с внешними обязательствами перед Заказчиком. Но мы находимся в условиях рынка, и дефицита кадров. Они есть, но их нет. и мы не можем быстро расширить штат и нанять специалистов, так как вход нового специалиста в проект занимает время. Ко всему этому, добавляется неопределенность содержания проекта.

                В таких условиях чистый Agile уже не совсем работает, но как-то работать надо.

                Возникает вопрос: "Что делать?", "Как из выбирать точку приложения усилий в условиях ограниченных ресурсов?"

                Я расскажу про Pulse Management - объединение подходов системного проектного управления, Agile-методов и Теории ограничений для управления портфелем проектов на уровне организации.


                Валерий Бабушкин
                Директор по моделированию и анализу данных / Руководитель группы аналитики @ X5 Retail Group / Yandex
                Москва
                Как ускорить А/Б тесты в 10-100 раз

                Доклад принят в программу конференции


                из Доклады

                  А/Б тестирование весьма каверзная задача, особенно когда количество данных слишком мало, чтобы сделать выводы за адекватное количество времени. Хочу рассказать историю о том, как в одном сервисе переключились на новую, самую важную метрику, в связи с чем количества необходимого для А/Б трафика упало в 2 раза и отом, как мы решили эту проблему с помощью Линеаризации, перевзвешивания, машинного обучения и теоремы Баеса


                  Александр Мышов
                  Разработчик интерфейсов @ Яндекс
                  Новосибирск
                  Автоматический рефакторинг кода с помощью codemodes

                  Доклад принят в программу конференции


                  из Доклады

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

                    Сodemode - это скрипт, работающий с абстрактным синтаксическим деревом (ast) JavaScript. Цель codemode - автоматизировать рефакторинг кода.

                    В своем докладе я расскажу про jscodeshift - тулкит для написания codemodes. Покажу и разберу несколько примеров codemodes, начиная с простых и заканчивая теми, которые могут быть использованы в вашем проекте. Вы увидите, что работа с ast на самом деле не такая уж и сложная задача, как может показаться на первый взгляд, и что овладение этим инструментом может дать очень сильный прирост вашей эффективности.


                    Григорий Кошелев
                    Ведущий инженер-программист @ Контур
                    Екатеринбург
                    Всё пошло по Кафке

                    Доклад принят в программу конференции


                    из Доклады

                      Погрузимся в архитектуру компонентов Кафки. Вместе пройдёмся по граблям, которые заботливо собраны в одну презентацию. Постараемся понять, откуда в Кафке взялись различные ограничения. Всё по-честному, никакого маркетинга.

                      Выбранные для доклада грабли помогут ответить на следующие вопросы:

                      - Что не так с настройками (по умолчанию)?

                      - К каким неожиданностям должны быть готовы клиенты?

                      - Зачем Кафке девопс?

                      - Много настроек — это хорошо или плохо?

                      - О чём забыли написать в документации?


                      Владимир Баяндин
                      Head of Product @ Skyeng
                      Санкт-Петербург
                      Как построить фабрику качественных исследований и ускорить команду роста

                      Доклад принят в программу конференции


                      из Доклады

                        Рецепт успеха команды роста очень прост: генерировать сильные гипотезы по улучшению продукта и очень быстро их проверять.

                        Самый надежный способ проверить гипотезу — провести А/Б-тест. Но подготовка эксперимента требует ресурсов разработки и приличного объема трафика. Это делает проверку гипотез дорогим и долгим удовольствием. Мы в Skyeng очень ценим скорость, поэтому мы задумались, как решить эту проблему, и нашли спасение в качественных исследованиях, поставленных на поток.

                        Из доклада вы узнаете:

                        — как делегировать глубинные интервью и делать Customer Development каждый день

                        — как мы строили команду User Research, и чем она занимается

                        — как выглядит конвейерный процесс качественных исследований

                        — как оптимизировать привлечение респондентов на интервью

                        — реальные примеры исследований команды роста Skyeng

                        — как построить фабрику качественных исследований в своем продукте

                        Бонусом все желающие получат шаблон документации для проведения глубинных интервью.


                        Александр Сербул
                        руководитель отдела направления контроля качества интеграции и внедрений "1С-Битрикс" @ 1С-Битрикс
                        Москва
                        Гибкое управление проектами в области машинного обучения и BigData

                        Доклад принят в программу конференции


                        из Доклады

                          В докладе простыми словами расскажем, как применять популярные гибкие методологии (Agile, Scrum) в сложных проектах, связанных с машинным обучением, математикой, большими данными. Пройдем все этапы от проектирования, анализа, защиты бизнес-идеи и подбора команды, до оценок качества и конверсии сервиса «на бою». Разберем возможности быстрого запуска подобных проектов с использованием готовых облачных сервисов «Amazom Sage Maker», а также поделимся успешным опытом реализации ML-проектов внутри компании.

                          Доклад будет полезен менеджерам, заинтересованным в снижении издержек и рисков запуска проектов по машинному обучению, AI и большим данным в организациях. Также, доклад будет интересен всем, кто хочет привлечь в проект внешние ML-команды, стартапы, научные организации, в т.ч. через организацию конкурсов и хакатонов.


                          Александр Мадьянкин
                          @ Evil Martians
                          Москва
                          Как построить Гексагон: прагматичная архитектура для клиентских приложений

                          Доклад принят в программу конференции


                          из Доклады

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

                            Особенно ярко это проблема проявляется, когда, поддавшись моде, мы стремимся внедрять новые технологии без предыдущего опыта их использования и наработанных практик и надеемся на дальнейший рефакторинг.

                            Вместо ровной и стройной архитектуры у нас получается Tutorial Driven Development — демонстрационный код из документации библиотек становится основой для приложения. Повышается зависимость от конкретных библиотек, нет четких правил написания кода и его стыковки со сторонним, высокоуровневый код переплетается с низкоуровневым.

                            В докладе я расскажу об архитектуре, к которой пришел за четыре года разработки SPA и React Native приложений через свои пробы и ошибки и анализ и рефакторинг чужого кода.


                            Константин Цховребов
                            Android Architect @ Redmadrobot
                            Санкт-Петербург
                            Redux-пагинация в Android приложении

                            Доклад принят в программу конференции


                            из Доклады

                              Я докажу, что "простейший" экран с пагинацией совсем не так прост. Вскрою множество проблем и покажу как их элегантно решить через Redux подход, но без фанатизма, чтобы не кидаться переписывать весь проект. Кроме того, познакомиться с этим подходом будет полезно, так как грядет декларативный UI, а там все будет создано для того, чтобы начать писать Redux подобные архитектуры.


                              Александр Лукьянченко
                              Senior software engineer @ Авито
                              Москва
                              Строим прозрачный discovery механизм для мультикластерной системы

                              Доклад принят в программу конференции


                              из Доклады

                                Расскажу о том, как построить прозрачную систему discovery сервисов для нескольких kubernetes кластеров со всеми возможностями, предоставляемыми service mesh технологиями. Рассмотрим путь, который мы прошли в Авито для построения мульти ДЦ решения. Сравним несколько популярных открытых решений и узнаем их плюсы и минусы.


                                Денис Красновский
                                Технический руководитель разработки @ ДомКлик
                                Москва
                                Как правильно собирать npm-пакет в 2к19 году

                                Доклад принят в программу конференции


                                из Доклады

                                  Я покажу вам нечто прекрасное, как маленький npm-пакет может погрузить ваше приложение в хаос.

                                  А если серьезно, каждый день мы используем множество npm-пакетов в наших приложениях, но что мы о них знаем?

                                  Я расскажу вам: как правильно собирать npm-пакеты, что выбрать webpack или rollup, какой негативный импакт можно занести в приложение используя плохо собранный пакет.


                                  Никита Дубко
                                  Разработчик интерфейсов @ Яндекс
                                  Минск
                                  CSS — язык программирования

                                  Доклад принят в программу конференции


                                  из Доклады

                                    В Интернетах принято ругать CSS, если не понимаешь, как с ним работать. Тем не менее, CSS в связке с HTML — Тьюринг-полный язык программирования, а если к ним добавить Houdini API и CSS Custom Properties — можно творить настоящую магию.


                                    Иван Пономарёв
                                    Tech Lead @ КУРС
                                    Москва
                                    Kafka Streams API: шаг за рамки Hello World

                                    Доклад принят в программу конференции


                                    из Доклады

                                      Kafka как платформа потоковой обработки данных становится всё более популярной. Тем, кто впечатлился обзорными докладами и решит попробовать создать рабочее приложение при помощи Kafka Streams API, предстоит освоить немало новых вещей и соответствующим образом настроить мышление.

                                      С чего начать?

                                      Как работает хранение и репликация локального состояния?

                                      Что такое RocksDB и как её возможности используются в Kafka Streams «под капотом»?

                                      Что за страшные слова: «репартиционирование» и

                                      «копартиционирование»?

                                      Какова семантика джойнов и оконных операций?

                                      Как писать тесты?

                                      Как отлаживать систему «на ходу»?

                                      Что делать с исключениями?

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


                                      Александр Паринов
                                      Ведущий архитектор систем компьютерного зрения @ X5 Retail Group
                                      Москва
                                      Albumentations. Как мы сделали библиотеку для аугментации изображений

                                      Доклад принят в программу конференции


                                      из Доклады

                                        Чтобы обучить сверточную нейронную сеть требуется большое количество данных. Аугментация изображений - простой и быстрый способ увеличить обучающую выборку и получить более качественные модели. Существующие библиотеки для аугментаций нас не устроили: они были слишком медленными, поддерживали ограниченный набор преобразований, не умели работать с данными для разных типов задач, их документация была неполной. Мы хотели, чтобы наша библиотека одновременно предоставляла удобный интерфейс на Python и при этом работала достаточно быстро. Также приходилось решать проблемы, присущие любому Open Source проекту - как писать понятную документацию и примеры использования, как чинить баги и не допускать появления большого числа ошибок в новых релизах, как продвигать библиотеку и как следовать пожеланиям сообщества и дальше развивать проект.


                                        Андрей Смирнов
                                        frontend разработчик @ Wrike
                                        Санкт-Петербург
                                        Работа с графикой во Flutter.

                                        Доклад принят в программу конференции


                                        из Доклады

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

                                          В этом докладе мы заглянем под капот графического движка Flutter.

                                          Разберемся, как устроена анимация.

                                          Напишем custom виджет, используя Dart.

                                          Нарисуем custom виджет, используя Flare.


                                          Андрей Сальников
                                          DBA @ Data Egret
                                          Казань
                                          PostgreSQL, нагрузка и запросы

                                          Доклад принят в программу конференции


                                          из Доклады

                                            PostgreSQL на данный момент одна из самых популярных баз данных для проектов с абсолютно разными профилями нагрузки. Естественно постоянно возникают вопросы откуда в базе данных высокая нагрузка и как с ней бороться. Вариантов возникновения такой нагрузки довольно много, в данном докладе посмотрим на проблемы с запросами, как на наиболее понятную проблему. Первым делом выясним как находить запросы, которые требуют первостепенной обработки, какими инструментами пользоваться для этого. Так же поговорим о том, какие есть типовые проблемы в существующих запросах, какую профилактику им проводить и как исправлять.


                                            Артем Кудряшов
                                            Team lead @ АвтоТрансИнфо
                                            Санкт-Петербург
                                            Свободу тимлидам! Развитие разработчикам!

                                            Доклад принят в программу конференции


                                            из Доклады

                                              Доклад о том, как развить команду и расслабить тимлида так, чтобы всё было сделано и все остались счастливы


                                              Павел Сташевский
                                              Senior QA Engineer @ Lamoda
                                              Москва
                                              Тестирование больших кросс-командных проектов в дедлайн

                                              Доклад принят в программу конференции


                                              из Доклады

                                                Большие проекты, в которые включено сразу много команд и сервисов, интересны тем, что рано или поздно нужно протестировать ВСЁ. И не только протестировать, а пофиксить баги (лучше не на продакшне) и задеплоить сервисы в нужном порядке.

                                                И очень часто этот этап становится неуправляемым. То нельзя поднять нужную инфраструктуру на тестовых стендах, то кто-то постоянно включается/выключается из процесса, то появляются критичные ошибки, то кто-то не успел свою часть разработки. В итоге интеграционное тестирование идет долго и мучительно.

                                                А еще бывает, что помимо интеграции сервисов нужно учесть и операционные процессы. В Lamoda это склады, сборка и доставка посылок, обработка возвратов, пункты самовывоза и вот это вот всё. И от этого становится только сложнее.

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

                                                1) какие есть роли в кросс-командном проекте, и зачем нужен интеграционный QA Lead;

                                                2) как подготовиться к интеграционному тестированию, чтоб не было мучительно больно;

                                                3) тестируем. Где, кем и как долго;

                                                4) протестировали. Что дальше?


                                                Денис Соболев
                                                Product b2b @ Skyeng
                                                Москва

                                                Любое успешное дело делают люди, а значит, основная ценность компании - это команда. В Skyeng все команды - распределенные: мы работаем в разных городах, часовых поясах и даже странах, а видимся очно один-два раза в год. Чтобы команда эффективно справлялась со своими задачами в остальное время, очень важно правильно выстроить систему коммуникаций и подобрать удобные инструменты для удаленной работы. Я работаю как с командой аналитики, так и с командой разработки и расскажу о наших находках, которые, надеюсь, помогут вам:

                                                Как мы выстраиваем общение между распределенной командой аналитиков и разработчиков, чтобы максимизировать “полезное” время сотрудников.

                                                Как мы оцифровываем работу команды и какие инструменты позволяют нам увеличить количество оцененных задач: planning poker и т.д.

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

                                                Как мы выработали “рефлекс на валидацию данных”, используя встречи в игровой форме, и какие методы вовлечения сотрудников мы используем.