SECON'2018
X международная конференция разработчиков программного обеспечения
Заявки на доклады

Халилова Зарема Uploadcare, Санкт-Петербург
  • Frontend программирование
У нас в Uploadcare есть старый монолитный сайт на Django. С этим были проблемы: три версии дизайна разных времен, верстка в темплейтах джанги, сборка ассетов вместе со сборкой джанги, сложное окружение для сборки и запуска проекта, активная разработка бэкенда, постоянные конфликты при мерджах, долгий деплой, при этом нужно было сделать полный редизайн проекта.

Для удобной разработки нового дизайна мы сделали изоморфное React приложение с серверным рендером на Node.js, оставив на стороне Django только REST API. Таким образом мы полностью отделили фронтенд от старого бэкенда.

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

Спойлер: всё получилось хорошо, бэкендеры и фронтендеры счастливы!

Бонус: расскажу как предложить такое у себя и что нужно учесть.


  • Четвертая промышленная революция
Хочу рассказать о том как мы в Epam на проектах делаем из разработчиков и тестировщиков одну команду.
Как тестировщики могут помочь разработчикам и наоборот (не касаясь дефолтных обязанностей професий)
Расскажу об инструентах и приложениях для тестирования, которые мы сделали вместе с разработчиками


Kalashnikov Pavel SimbirSoft, Ульяновск
  • Образование и бизнес
Борьба за кадры в ИТ набирает обороты. В итоге многие компании принимают решение о том, что сами будут воспитывать ИТ-специалистов. Они идут в ВУЗы, ССУЗы и профильные лицеи в поисках кадров, которые смогут быстро получить нужные навыки и приносить доход компании.
Так как студенты и школьники не являются типичной целевой аудиторией, с которой работает ИТ-компания, во время привлечения учащихся к себе компании допускают, которые отталкивают самых "сильных" ребят, которые станут крутыми специалистами в будущем.
Более того, неправильным проведением мероприятий компания создаёт себе неправильный имидж в сфере молодёжи. А, если у вас нет молодых специалистов в компании, значит, вы что-то делаете не так.

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


  • Четвертая промышленная революция
В этом докладе мы расскажем как используя последние достижения технологий мы запустили проект, кардинально отличающийся от конкурентов.
Рынок заказа такси за последние годы сильно изменился. Вместе с классическими диспетчерскими службами заказа такси уже существует большое количество высокотехнологичных сервисов вызова автомобиля через приложение. Как следствие, конкуренция на рынке пассажирских перевозок чрезвычайно высока. На данный момент вступить в борьбу с лидерами рынка, не имея достаточно оригинальной идеи, практически невозможно.
Алёна - сервис заказа автомобиля по телефону без диспетчера в городах с населением до 300 000 человек.
Телефонные звонки и голосовые сообщения пассажиров обрабатывает виртуальный диспетчер, используя синтез и распознавание речи. Людей возят проверенные водители на собственных автомобилях, получая информацию о поездках через приложение.


Хасанов Дмитрий Avito, Москва
  • DevOps
Мы активно пилим большой монолит с многолетней историей. Инфтраструктура потребовала множетва изменений. Требуется гибкость и масштабируемость. Отказались от привычного LXC в пользу облака на Кубернетесе. Построили CI/CD на Тимсити.

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


  • Frontend программирование
1) Создаем календарь на React
2) Решаем проблемы стандартными способами с помощью React-Router
3) Понимаем почему состояние приложения нельзя хранить в компонентах и преезжаем на Redux
4) Что такое Observable и почему он такой крутой
- RxJs - это lodash
- Redux-Observable
- Простые потоки
- Сложные потоки (HOC - Higher Order Observable)
- Очень умная очередь запросов


Балахонов Павел Mail.Ru Group, Москва
  • Контроль качества
В своем докладе я раскрою проблему поддержки UI автоматизированных тестов и предложу эффективные методики по дизайну инструментов UI автоматизации и тестов в целом. В докладе предлагается рассмотреть введение дополнительной поведенческой сущности, которая позволит на этапе поддержки UI тестов не отвлекаться на общие проверки и действия с элементами, а сосредоточить все внимание инженера по автоматизации на локаторах элементов и адаптации логики теста под изменения в приложении. Здесь рассматривается и предлагается эффективная трехуровневая архитектура организации UI автотестов и использование паттернов проектирования, которые значительно ускоряют поддержку тестов и делают их не просто стабильными, но и адаптивными. Так же будет озвучена проблема валидации, так как очень важно проверять присутствие на странице некоторых элементов на самом раннем этапе прогона теста. Это позволит не только значительно сократить количество обращений к браузеру, что значительно ускорит тесты, но и получить понятные юзер ориентированные ошибки, которые просты для анализа. Будет рассмотрен компонентный валидатор, который позволяет проверять присутствие элемента на странице на этапе инициализации компонентов и решит озвученные выше проблемы. Так же в докладе будет уделено небольшое внимание page валидатору.

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

В своем докладе я немного расскажу о том, как построен процесс поддержки в компании mail.ru и поделюсь секретом, как один автоматизатор может поддерживать и поддерживает UI автоматизированные тесты на 12 проектах одновременно.


Gramin Maksim CROC, Krasnodar
  • Базы данных
В последнее время во все сферы разработки ПО проникает концепция "Everything as a Code" - CI (Jenkins Pipeline), инфраструктура (Ansible Playbooks, Chef Recipes etc),
тестирование (сценарии Cucumber и Spock), документация (AsciiDoc) и многое другое. Весь этот код, на ряду с основным кодом разрабатываемого приложения, так же находится под управлением систем контроля версий, собирается на билд серверах, тестируется и деплоится.
В докладе я расскажу насколько этот подход применим к разработке и сопровождению БД, и что под эту схему подходят не только старые-добрые инкрементальные миграции (liquibase, flyway), но и исходный код объектов (baseline), код манипуляции объектами и самим сервером(инстансом) БД. А так же, как можно в такой консервативной области, как разработка БД, использовать современные технологии и направления (такие как: Docker, Open API(Swagger), CI(Jenkins, Travis), Prometheus, InfluxDB, Grafana, Kibana etc), и как они могут помочь сделать разработку и сопровождение БД более простой и эффективной.


  • Четвертая промышленная революция
Технологии дополненной и виртуальной реальности усилиями Apple, Google, Facebook, Amazon и сотен других компаний стремительно прорубают путь в массовый сектор. Рынок VR/AR-сервисов и приложений растет на сотни процентов в год и к 2021 по мнению аналитиков превысит 40 миллиардов долларов.

В рамках доклада мы поговорим о том:
- Какие предпосылки стремительного роста рынка AR/VR-сервисов очевидны уже сейчас;
- Какие знания и умения разработчиков будут особенно ценны на новом рынке;
- Почему у стартаперов и специалистов из Пензы больше шансов преуспеть в новой реальности, чем у коллег и компаний из столиц;
- Какие AR/VR-сервисы будут актуальны в краткосрочной и долгосрочной перспективе;
- Почему действовать нужно уже сейчас.


Kalashnikov Pavel SimbirSoft, Ульяновск
  • Серверное программирование
В целом большинство вещей зависит от человека, который ставит и принимает задачи в проекте. Назовём его "заказчик": в аутсорсе - это реальный заказчик или его представитель, в продуктовом - PM.
Критерии:
1. В проекте чётко описана структура интерфейсов, например, используются JSON-API, REST-API и т.д.
2. В проекте однотипный подход к реализации интерфейсов, т.е. в целом логика работы и порядок одних и тех же end-point для разных сущностей одинаковы или сильно похожи.
3. Заказчик ставит задачу и описывает в ней интерфейс, который хочет увидеть (например, заказчик технарь и сразу прописывает какие HTTP запросы, с какими параметрами и т.д.) Один из самых важных критериев. Могу объяснить почему.
4. Задачи ставятся в стиле: одна подзадача - один тест. Очень часто встречается такое, что подзадачи - это фактически отдельные тесты (ну или пара тестов на позитивный и негативный сценарий)
5. В языке программирования или технологии есть высокоуровневый тестовый фреймворк с поддержкой интеграционных тестов, либо есть возможность использовать абстрагированный от реализации тестовый фреймворк на другом языке программирования или технологии.
6. В команде нет отдельной команды QA. Один из главных профитов TDD - ментальный. В том, что программист сперва напишет тесты на функционал и несколько раз продумает его перед тем, как начать реализацию. Если тесты будет писать другой человек, то этот профит пропадает.
7. Есть возможность использовать тестовый фреймворк с DSL по типу Cucumber, чтобы тесты заказчику можно было показывать до реализации (называю это утопичным сценарием, в своей практике не достигал, но знаю команды, которые достигали, так что держать в голове это критерий стоит).

Критерий не взаимоисключающие, некоторые даже взаимодополняющие. Необязательно проекту и команде соответствовать всем критериям, чтобы использование TDD стало продуктивным.
А также расскажу, когда TDD использовать не стоит точно!!
Вкратце:
1. Когда в поставленной задаче нет описания структуры интерфейсов (собственно, нет критерия 1 в предыдущем списке)
2. Когда реализуется незаурядная задача
3. Когда бОльшая часть задач в проекте связана с нагрузками или сложными вычислениями, результат которых сложно предсказуем.


Pupyshev Aleksei Wrike Inc., Saint-Petersburg
  • Искусственный интеллект, Машинное обучение, Большие данные (AI,ML, BigData) для бизнеса
На основе, преимущественно, личного опыта и консалтинга в Data Science различных компаний, как крупных, так и совсем стартапов, а также опыта коллег из IT-индустрии рассмотрим основные проблемы в том, что бизнесу на самом деле может быть нужно от Data Science и AI технологий. О том, что не все заканчивается на AI in Product, что бывает AI for Business Ops, а также AI for Engineering.
На какие метрики можно повлиять непосредственно ML-лем, кому и как лучше всего стоит продавать, как формировать ожидания.


  • Серверное программирование
Открытый проект Celesta, разрабатываемый на GitHub, невелик, но уже набрал неплохое портфолио из успешных внедрений. Я расскажу о некоторых идеях, делающих его непохожим на другие системы такого класса: как была достигнута простота миграции структуры базы данных через идемпотентный DDL, возможность прозрачного тестирования процедур, изменяющих данные в базе, и т. п.

Я расскажу, как мы

- Разрабатываем и модифицируем модель данных в рабочей базе с помощью идемпотентного DDL.
- Пишем скрипты на языке Jython для реализации бизнес-логики.
- Боремся с ограничениями ORM-подхода.
- Тестируем процедуры обработки данных в реляционной СУБД.
- Создаем RESTful API, процедуры по расписанию и обработчики очередей.
- Интегрируем Celesta-проект в существующее Java- или JVM-приложение или работаем standalone.

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


  • Серверное программирование
В программировании все меньше математики и все больше социологии. Написать код легко, сложнее сделать из него продукт. Команды становятся крупнее и динамичнее. Границы офисов раздвигаются и вовсе исчезают. Человеческий ресурс дорожает, аппаратные платформы стремительно дешевеют. Как показывает опыт, программисты не готовы к новым условиям и сильно теряют, когда попадают в агрессивную проектную среду. В докладе будут очерчены главные проблемы перехода от кодинга к программированию и показаны наиболее показательные примеры. Частично идеи доклада были изложены ранее в блоге: http://www.yegor256.com/2015/01/15/how-to-cut-corners.html


  • Образование и бизнес
В докладе рассматривюется:
- вопросы применения онлайн-касс в сети Интернет: использование онлайн-касс (проблемы и пути их решения), налогообложение владельцев интернет-магазинов, ответственность в случае неприменения онлайн-касс.
- изменение законодательства о персональных данных: требования для владельцев интернет-сайтов, пути решения проблем с обработкой персональных данных, ответственность за нарушение законодательства о персональных данных.
- правовое регулирование оборота bitcoin в РФ: законодательный запрет и позиция контролирующих органов.
- другие особенности правового регулирования электронной коммерции: законодательство об интеллектуальный собственности, запрет анонимайзеров.


  • Образование и бизнес
1,5 летних месяца (6 недель), 5 дней в неделю в режиме работы реальной IT-компании студенты и молодые специалисты в качестве программистов, менеджеров проектов, дизайнеров, специалистов по маркетингу и PR разрабатывают прототипы веб-сервисов, мобильных приложений и железные проекты релевантные для пензенских работодателей. Сопровождение проектной деятельности каждой специализации осуществляют кураторы из числа опытных профессионалов.
Участники прослушают около 50 лекций от ведущих специалистов IT-отрасли. Это лекции общеинженерного и специацлизированного трека. Темы общеинженерного трека: Методологии разработки, Основы веб-разработки, Паттерное проектирование, Контроль качества и другие. В специализированном треке - лекции и мастер-классы по направлениям: Маркетинг и PR, Дизайн в IT, бизнес-планирование. По пятницам - Демодень - отчётный день, когда команды демонстрируют кураторам и приглашенным экспертам насколько они продвинулись в разработке своих проектов за минувшую неделю.
На 6 конечной неделе проводится выездной интенсив с лекциями, воркшопами и экспертной сессией, награждение лучших студентов и проектов. Они получают приглашения трудоустроиться или пройти стажировку в ведущих компанияхи и попадают в базу перспективных и талантливых IT-специалистов.