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

И мы тут как тут. За изоляцию мы сделали 6 онлайн-митапов, сегодня делимся материалами с трёх, организованных при участии коллег из EPAM и Контура. На каждом рассматривали по две темы:

Backend

  • Публичные контракты — как обеспечить их согласованность.

  • ElasticSearch, и для чего его НЕ надо использовать.

Мобильная разработка

  • Навигация в Android-приложении, её кроссплатформенная реализация.

  • Как и зачем писать свой фреймворк на iOS. Создали в прямом эфире. (EPAM)

AI Meetup

  • Аугментация текстов: как сделать из мухи слона.

  • Сокращение длительности чатов техподдержки с помощью машинного обучения. (Контур)

Далее ссылки на записи и подробности о каждом.


Backend Meetup

https://youtu.be/3NLzI4L-diA

Публичные контракты — как обеспечить их согласованность:

  • к каким проблемам приводит недостаточное внимание к публичным контрактам; 

  • инструменты (Swagger, OpenAPI, gRPC) и подходы для работы с контрактами на всех этапах разработки ПО; 

  • опыт применения OpenAPI в нашей платформе Sungero; 

  • способы версионирования и тестирования контрактов (CDC).

ElasticSearch, и для чего его НЕ надо использовать:

  • для чего нужен и из чего состоит ES; 

  • про опыт его использования в Directum: сборка и анализ логов, полнотекстовый поиск; 

  • как организовать грамотный полнотекстовый поиск на русском языке и не изобретать грабли.

+ наши наработки на GitHub: плагин морфологии для качественной быстрой лемматизации и модификация библиотеки Tika (что меняли, смотри в докладе). Пригодится, если делаете поиск на русском языке.

Мобильная разработка

Доклад про iOS представил приглашённый разработчик из Минского EPAM Игорь Набоков.

Это скрин для красоты
Это скрин для красоты

Запись лежит в вк и на гугл-диске.

Навигация в Android-приложении:

  • как работает навигация, её кроссплатформенная реализация и проблемы, с которыми столкнулись при рефакторинге навигации в Directum Solo — ECM-приложении;

  • как выделять новые объекты навигации, как строить диплинки, как их вообще реализовать, как сделать версии iOS и Android максимально похожими;

  • посмотрели фреймворки, разобрали решения на С#, Xamarin с дополнительным коротким экскурсом в среду — поймут все.

Свой фреймворк на iOS:

  • Игорь доказал, что написать свой фреймворк может оказаться простым приятным делом и крутой строчкой в резюме: open-source, автоматизация разработки. Да и разработка для разработчиков — это интересно.

  • Рассказал про свой опыт, объяснил, зачем, как, чем может создаваться iOS-фреймворк, какие возникают проблемы, как их решать. Разобрали на примере библиотеки телематики.

  • Для практики взяли такую ситуацию: есть набор классов, который нужно собрать в библиотеку, допустим, какой-то логер. Посмотрели, как из этого сделать бинарный фреймворк, как добавить в fastlane нужные сценарии, как создать репозиторий в CocoaPods, как опубликовать CocoaPods, как залить бинарную часть, например, на s3, как потом создать новое приложение и подключить этот самый свежеопубликованный фреймворк.

AI Meetup

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

На пару минут позже включили запись.

https://youtu.be/DuRVIn1BGAg

Аугментация текстов: как сделать из мухи слона

Работаете с NLP? Отметьте галочкой, где болит:

  • мало размеченных данных; 

  • данные одинаковые, и модель заучивается только на них, не понимая, что делать, когда встречает что-то другое; 

  • мало сил и времени, чтобы разметить больше данных.

Мы столкнулись со всем этим при решении задачи из области NER. И решили их с помощью аугментации.

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

Константин Фролов рассказал, как в Контуре разрабатывали оптимальное ML-решение.

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

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


Судя по ситуации, тема с онлайн-митапами в Directum продолжается. Все следующие события будем освещать на https://meetup.directum.ru/.

Если есть предложения по темам и желание присоединиться в качестве докладчика - пишите по любым каналам @stalyonka или официально на strelkova_aa@directum.ru.

Надеюсь, были вам полезны! И будем.