In order to develop the IT community of Kazakhstan, Chocofamily Holding organizes ChocoDevCon.

Saturday 12th October 2019

10:30 Доставка качественных фич в Андроид: Хороший пример подражания достоин.
Talk by Данияр Амангельды in Mobile dev (40 minutes)

Доставлять качественные фичи на прод - главная задача для разработчика. Но, на пути к цели много проблем. MVP или MVVM? Rx или корутины? Помимо холиварных вопросов, есть еще бэкенд на микросервисах и тесты надо писать. В докладе я пролью немного света, на доставку фич в нашем проекте. Как мы миримся с микросервисами и генерим dto объекты прямо с бэка. И не забываем, что продуктом пользуются люди с ограниченными возможностями :)

Google Software Engineering Best Practices
Talk by Адилет Жаксыбай in Web Dev #1 (40 minutes)

В этой лекции я поделюсь своим опытом работы разработчиком в компании Google. Вкратце расскажу о том, как разработчики Гугла подходят к таким вещам как постановка целей, тестирование, написание кода, релиз, и многим другим. Большая часть доклада применима для back-end разработчиков, но некоторые фишки могут применять и разработчики других направлений.

Ваше веб-приложение уязвимо!
Talk by Дмитрий Науменко in Web Dev #2 (40 minutes)

Разработка становится все более доступной, множество высокоуровневых инструментов снижают порог входа, уровень проникновения технологий стремительно растёт, и, как следствие, растет количество окружающих нас систем. Уязвимых систем. В 2018 произошла утечка баз данных населения Индии в 1.1 млрд человек, 330 млн паролей пользователей Twitter, 50 млн паролей и 87 млн цепочек переписок на Facebook, при этом десятки тысяч других утечек персональных данных и конфиденциальной информации остались без огласки или вообще не были обнаружены. Большинство инцидентов связано с простыми и хорошо изученными уязвимостями, которым легко противостоять. Доклад ориентирован на разработчиков, которым небезразлична безопасность своих приложений. Я расскажу о популярных векторах атак приложений, способах защиты от них и об общих практиках поддержания уровня безопасности.

11:30 Как справляться со сложными списками в iOS и в Android и не сойти с ума!
Talk by Султан Сейдалин in Mobile dev (40 minutes)

Очень часто в мобильных приложениях нам приходится работать со списком элементы которого не подчиняются одному типу/размеру/виду/функционалу. Что если первым элементом должна быть форма заполнения контактов состоящая из двух полей, затем идет список адресов, далее мы видим список дополнительных продуктов на выбор, а в конце разбивка стоимости. Типичное решение приводит к тому, что у нас вырастает огромный Adapter с большим количеством itemViewType или массивный UITableViewDataSource с не менее массивным cellForRowAt. В докладе расскажу как мы решили проблему работы со сложными списками, как мы разделили ответственность между элементами списка и как теперь можно переиспользовать эти элементы в других частях приложения.

Почему Nuxt.js?
Talk by Алибек Ахметов in Web Dev #1 (40 minutes)

Расскажу историю про то, как мы писали наш корпоративный сайт chocofamily.kz как SPA. Какие проблемы с SEO возникли, как их хотели решить с помощью SSR, Nuxt и плагинов по пререндерингу. Что в итоге выбрали и почему. Плюсы и минусы Nuxt.

Строительство платформы для разработки микросервисов. Опыт Chocofamily.
Talk by Вадим Молдабаев in Web Dev #2 (40 minutes)

Сказ о том, как мы внедряем микросервисную архитектуру в холдинге Chocofamily. Историю нашего пути, плюсы и минусы подходов, которые мы использовали. Вкратце коснемся основных шаблонов построения MSA. Услышите утопию о переходе на единую платформу для разработки микросервисов всех проектов холдинга.

14:00 Приоритезация принципов проектирования
Talk by Амиржан Идрышев in Mobile dev (40 minutes)

Следуйте принципам проектирования прямо и неукоснительно. Они проверены временем и были придуманы людьмы, которые намного умнее нас. Но что делать, если код не становится лучше? Принципов проектирования очень много, и они часто конфликтуют между собой. В таких ситуациях следование одному принципу может решить некоторые проблемы и породить новые. И нет четкой грани между тем, что стоит делать, и тем, что нет. В моем докладе я постараюсь приоритезировать принципы и критерии хорошего проектирования. Выявить то, что действительно важно, а что нужно иногда нарушать.

Единая библиотека компонентов между дизайном и фронтендом.
Talk by Егор Миронь in Web Dev #1 (40 minutes)

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

Про парсинг
Talk by Кирилл Несмеянов in Web Dev #2 (40 minutes)

Когда слышится слово "парсинг" - в голове сразу возникают мысли о регулярных выражениях и задачах про чтение сторонних сайтов с получением из них каких-то значений. Не правда ли? Но разве это дейстительно единственный круг задач, который определён этим простым словом? Я предлагаю взглянуть на этот набор задач с точки зрения полноценного парсинга. Заглянуть под капот языков программирования: Как именно компиляторы и интерпретаторы читают их исходный код? Как именно реализуют посветку IDE, как реализованы инструменты статического анализа кода и препроцессоры.

15:00 Модуляризируй это! Или как мы готовили модульный SDK для наших мобильных проектов
Talk by Мухамед Иса in Mobile dev (40 minutes)

Переиспользование логики в разных мобильных проектах это то, с чем рано или поздно столкнутся компании с разными продуктовыми направлениями. В докладе расскажу какие архитектурные решения рассматривались на пути к разработке текущего решения, почему от них отказались и как мы приготовили модульный SDK для наших проектов. Так что же нужно для готовки SDK? - Android Studio - Щепотка Gradle - Тщательно перемешать в Kotlin … а об остальном узнаете в докладе :)

So why do you need to know Algorithms and Data Structures in Front-end, anyway
Talk by Адам Леос in Web Dev #1 (40 minutes)

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

Вкусные блюда с Redis
Talk by Александр Федорченко in Web Dev #2 (40 minutes)

Большинство разработчиков воспринимают Redis только как инструмент кэширования. В докладе я расскажу, как можно удобно хранить и агрегировать в Redis что-то помимо кэша. Будут затронуты реальные кейсы применения: работа со сложными структурами данных в key-value базе данных. Приведу примеры фильтров, поиска, чата, поиска геопозиций и многое другое... и пару методов как не сойти с ума, пока будете это делать.

16:30 Please, don’t kill my VIPE ®
Talk by Толеген Тулепбергенов in Mobile dev (40 minutes)

О том как поменялась разработка с внедрением архитектуры VIPER, какие сложности возникают у разработчиков и на что обращать внимание при code review

Особенности построения и тестирования высоконагруженных API сервисов на языке Gо
Talk by Анатолий Федоренко in Web Dev #1 (40 minutes)

Цель доклада - ознакомить с инструментами и видами тестирования API вашего сервиса на Go. Разберем: 1. внутреннее тестирование функциональными и unit тестами 2. внешнее тестирование сервиса с помощью инструментов, которые позволяют проверить не только работоспособность вашей API, но и устойчивость к высоким нагрузкам.

Единый подход к разработке и тестированию фронтенда, при помощи VS Code + Remote Containers
Talk by Александр Вишняков in Web Dev #2 (40 minutes)

В этой теме я постараюсь раскрыть следующие моменты: - Единое окружение разработчика не зависимо от операционной системы - Подготовка и настройка рабочего окружения VSCode + Remote-Containers - Как это все работает - Как запускать приемочные тесты из VSCode + Remote-Containers + Puppeter - Как наблюдать за их прохождением внутри контейнера расширения Remote-Containers - Демонстрация реального OSS проекта с применением всех этих фишек

17:30 Важность своевременного рефакторинга
Talk by Темирлан Кунтубаев in Mobile dev (40 minutes)

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

Как мы перестали наступать на избитые грабли при подключении АПИ
Talk by Владислав Балаклейский in Web Dev #1 (40 minutes)

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

Как жить с микросервисным Legacy
Talk by Данияр Супиев in Web Dev #2 (40 minutes)

Вы приходите в компанию, из которой через месяц уходит последний представитель того поколения, которое переписывало ядро системы под микросервисную архитектуру. Документации - кот наплакал. Вам на руки передают 3 джунов, которые имеют хоть какое-то представление о том, как всё устроено, крайне схематичное изображение труб и их взаимодействия, а также ~80 микросервисов, написанных на трёх языках в разное время, от 4 лет до вчера. Помимо этого, нужно слышать запросы бизнеса и реагировать на них, что значит внедрять в плохо изученную с архитектурной точки зрения систему всё новые и новые микросервисы.