Code Mining

Трек, посвященный проблематике анализа исходных кодов “Code Mining” как и в предыдущие года, делится знаниями экспертов области Data-Driven Software Engineering. В 2021 году доклады представят эксперты компаний Athenian, JetBrains и Profiscope.io

Расписание трека

13 июня ждем всех в Spacial Chat’е в нашей комнате!

14:00 - 14:20 Открытие трека Code Mining 2021
Алексей Смирнов, организатор трека Code Mining, основатель @profiscope.io & CodeScoring

Открытие трека CodeMining, знакомство со спикерами и аудиторией, представление программы трека.

14:20 - 15:00 Text2Bash: как мы участвовали в соревновании NeurIPS 
Глеб Моргачев, Data Scientist @JetBrains

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

15:00 - 15:40 Аналитика полного цикла разработки в *почти* реальном времени
Вадим Марковцев
, Head of Analytics @Athenian

Я работаю в международном стартапе Athenian в качесте Head of Analytics и управляю командой бэкенда SaaS продукта. Мы продаем зарубежным компаниям облачное веб-приложение которое указывает на узкие места процессов разработки, непрерывной интеграции, деплоев, и JIRA. При этом стараемся придерживаться принципов blameless и non-personal, иначе говоря, делаем все возможное чтобы лиды-пользователи не стали сравнивать пиписьки рядовых разработчиков.

Одна из ключевых фишек Athenian - мы непрерывно анализируем поток событий GitHub и JIRA и обновляем все метрики и предсказания на лету. Это оказалось сложно, и я расскажу почему именно, какие ошибки мы допустили, как их исправляли и добились результата, и чего нам это стоило в $$$.

Что внутри:

  • Краткий обзор продукта Athenian.
  • Да, мы считаем доверительные интервалы по всем метрикам. Но это бесполезно.
  • Как получать события с GitHub. Node ID?
  • Приколы с событиями с GitHub. Они падают с 500, eventual consistency, косяки в их собственной базе.
  • Анализ исходного кода в SaaS.
  • Эпопея с релизами.
  • Тёмный лес непрерывной интеграции в GitHub.
  • Перформанс? Максимум 5с на запрос? На Питоне? Придётся сильно попотеть.
  • А что там с JIRA.
  • JIRA<>GitHub identity matching.
  • Case study. Как мы потеряли клиента на $10к в месяц потому что делали свою работу слишком хорошо.
  • Case study. Pandas в аналитике реального времени.
  • Case study. Обучение клиентов. Все ваши метрики - херня, а то что мне нужно я сам посчитаю скриптом на 100 строк.

15:40 - 16:20 Эволюция подходов Software Composition Analysis (SCA)
Алексей Смирнов
, основатель @CodeScoring

Опыт применения инструментов из области композиционного анализа программного обеспечения (SCA) сравнительно новая для российского рынка тема, несмотря на то, что этой теме уже более 10 лет (как отдельно стоящей).
Если коротко, SCA это решения а-ля "Shazam для кода", которые позволяют рассказать из чего состоит ваш софт, какие Open source компоненты применяются и какие они несут в себе уязвимости (CVE) и проблемы соответствия лицензий (Copyright vs Copyleft, etc.).
Чтобы такие решения работали успешно и всё распознавалось корректно, необходимо анализировать великое множество исходных данных, начиная с сотен пакетных индексов, сборок, исходников в системах контроля версий, заканчивая мета-данными об уязвимостях и лицензиях, тикетами, патчами и общими рекомендациями по их применению.

К примеру, только в NPM-пакетах содержится более 2 млрд файлов, которые могут быть включены в ваши проекты, а на Gihub более 15 млрд. значимых файлов исходников.
В докладе мы рассмотрим существующие подходы в области композиционного анализа и проследим эволюцию методов и акцентов решения задач с момента появления SCA по настоящее время.

16:20 - 17:00 Нейросетевое автодополнение для языка R
Артём Попов
, Data Scientist @JetBrains

Я расскажу про то как:

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

17:00 - 18:00
Нетворкинг. Круглый стол: "Лучший способ предсказать будущее - это изобрести его”
Команда JetBrains и CodeScoring

Рассудим о том, куда же мы движемся. От хайповых вопросов "Когда уже робот за меня всё напишет" до рассмотрения интересных статей с последних конференций: Mining Software Repositories (MSR, 2021), Source Code Analysis and Manipulation (SCAM 2020), ICSME 2020, ML for Systems at NeurIPS 2020, etc.
А также поделимся интересными кейсами, с которыми встречаемся в практике как анализа так и разработки.

Track program