Контейнер сервисовRuslan HanovSymfony Moscow Meetup Symfoniacs #8
«Контейнер сервисов — Что? Где? Когда?»
В докладе будут рассмотрены типичные примеры и антипаттерны того, что обычно помещают в контейнеры, зачем это делают и каким образом.
What’s New in PHP7?GlobalLogic UkraineThis presentation is about PHP7, its innovations’ overview with practical examples. You will learn how to move to PHP7 and see performance сomparison between PHP 5.6 and PHP7.
This presentation by Dmytro Nazarenko (Senior PHP Developer / Tech Lead) was delivered at GlobalLogic Kharkiv PHP Meetup #1 on September 14, 2016.
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...Mail.ru Group
Анализ кода — один из эффективных подходов к выявлению дефектов на этапе разработки программного обеспечения. Это позволяет избежать тривиальных и не очень ошибок, которые могут приводить к появлению уязвимостей. Существует ряд подходов, применяемых в анализаторах, на основании которых производится анализ, позволяющий снижать риски. Однако возникает ряд предубеждений, ведь не всегда предупреждение анализатора является реальным дефектом, тем более, что не всякий дефект является уязвимостью.
«MVVM в Swift», Александр Зимин, независимый iOS-разработчикMail.ru GroupАлександр рассказал про использование паттерна MVVM в языке Swift. Были рассмотрены его отличия от MVC, что можно использовать уникального из Swift. И напоследок было продемонстрировано небольшое демо.
Статический анализ кода проектов, построенных на движке Unreal EngineAndrey KarpovСтатический анализ кода крайне важен для проектов, разрабатываемых на языке C и C++. В докладе Ильи Гайнулина, C# Developer из PVS-Studio, идёт речь о процессе интеграции статического анализа кода в проекты, разрабатываемые на базе игрового движка Unreal Engine. Он рассматривает особенности сборочной системы UBT и вопросы внедрения методологии статического анализа в большую legacy-базу кода.
Александр Лисаченко, Alpari, «Решение вопросов сквозной функциональности в пр...Mail.ru GroupКаждый из нас любит писать чистый объектно-ориентированный код, но всегда есть сквозная функциональность, которая не может быть решена с помощью объектного кода, такая как логирование, кэширование, авторизация и многое другое. Существуют ли пути для решения этих вопросов со сквозной функциональностью? Устали ли вы от постоянного повторения одних и тех же строчек кода во всех методах классов? Из доклада вы узнаете эффективные способы борьбы с таким кодом.
Максим Попов, Mail.Ru Group, «Асинхронные запросы в MySQL или когда PDO стано...Mail.ru GroupВ докладе было рассмотрено, зачем нужны и в чем преимущества асинхронных выборок из MySQL, а также как мы используем MySQLi и PDO вместе.
Aлексей Медведев, Alpari, «Enterprise-инфраструктура менеджмента PHP-пакетов ...Mail.ru GroupВ докладе было рассказано, как в Альпари разворачивали локальную систему менеджмента пакетов на базе Composer, Packagist и git-фронтенда Gitweb; а также как работают с приватными пакетами и почему при сборке приложений зависимости никогда не выкачиваются напрямую с GitHub.
Кроме того, будет несколько слов о том, что находится под капотом у Packagist, когда, как и зачем его разворачивать у себя в компании, какие есть альтернативные Composer-репозитории пакетов и в каких случаях их удобно использовать.
«Пиринговый веб на JavaScript», Денис ГлазковMail.ru GroupДоклад был посвящен проекту base.network. Благодаря криптовалюте Bitcoin, микроблогам Twister и мессенджеру Tox становится всё популярней тема пиринговых технологий. Теперь пришло время и распределенных сайтов. В своём выступлении Денис рассказал о создании децентрализованных клиентских приложений на JavaScript, общей схеме работы сети и криптографии c JS.
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...Mail.ru GroupСуществуют три наисложнейшие проблемы в программировании: именование, кэширование и выход за границу массива. Проверка пограничных случаев поведения кода наиболее важна, но эта зона также наименее тестируема. Придумать и предугадать все возможные ситуации человеку тяжело, и порой мы что-то упускаем из виду. Вот было бы здорово, если бы тесты сами находили такие случаи, при которых код падает… Мечты? О том, как превратить их в реальность, и рассказал Александр.
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&CoMail.ru GroupДоклад посвящен Jupyter Notebook. Лев описал примеры его использования и рассказал, чем этот инструмент может быть полезен разработчику.
«Advanced {product_name} configuring», Алексей Макеев, Mail.Ru GroupMail.ru GroupАлексей рассказал об организации конфигурирования программного продукта с помощью конфигурационных файлов и привел примеры из практики. Речь шла о том, как сделать код работы с конфигурацией вашим верным помощником.
«Свой PhoneGap за 15 минут», Алексей Охрименко (IPONWEB)Mail.ru GroupWrite once, use everywhere. Все мы прекрасно знаем, что это не про Java. :) Доклад Алексея посвящён кроссплатформенным мобильным приложениям на JavaScript: как работает PhoneGap и как создать его клон. Докладчик также озвучил уникальное заявление Стива Джобса, которое многие просто не слышали.
«Компонентная верстка с AngularJS», Андрей Яманов (CTO TeamHunt)Mail.ru GroupОбычно компонентный подход используют в крупных проектах из-за издержек по поддержке такого кода. Андрей рассказал, как даже в небольших проектах с помощью AngularJS и компонентного подхода можно улучшить качество кода, ускорить и упростить разработку. Доклад актуален для AngularJS 1 и 2. Он также будет полезен тем, кто вообще не используют данный фреймворк.
Profiling and optimizing go programsBadoo DevelopmentИз презентации вы узнаете:
про большинство утилит из арсенала Go, предназначенных для оптимизации производительности;
— как и когда их (утилиты) использовать, а также мы посмотрим как они устроены внутри;
— про применимость linux утилиты perf для оптимизации программ на Go.
Кроме того, устроим небольшой crash course, в рамках которого поэтапно соптимизируем несколько небольших программ на Go с использованием вышеперечисленных утилит.
Парсим CSSBadoo Development«Парсим CSS», Роман Дворнов (Avito)
В ходе работы над CSSO мне пришлось погрузиться в процесс парсинга CSS. В результате парсер (тот, что в CSSO) был не раз переписан. Пришло время сделать его отдельным инструментом. Новый быстрый детальный парсер CSS, его AST, области применения и кое-что ещё.
Александр Щусь, Mail.Ru Group, Детектирование взломов почтовых аккаунтовMail.ru GroupВыступление Александра было посвящено решению актуальных проблем в сфере взлома аккаунтов различных сетевых сервисов
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...Mail.ru GroupВ этом выступлении рассказывается о роли машинного обучения и больших данных в решениях актуальных задач в астрофизике.
Ростислав Яворский, Высшая Школа Экономики, «Как использовать анализ сетевых ...Mail.ru GroupВыступление Ростислава состоит из двух частей: «Визуализация реальной структуры организации» и «Анализ и визуализация профессиональных сообществ».
Сергей Николенко, Deloitte Analytics Institute, Высшая Школа Экономики, «От н...Mail.ru GroupВыступление Сергея было посвящено введению в тематическое моделирование.
Иван Лобов, Data-Centric Alliance, «Текущие тенденции в сфере исследования гл...Mail.ru GroupThis document summarizes recent trends in deep learning research presented at AAAI 2016, including advances in attention and memory models that use direct weighted connections to improve long-term memory for sequences. It also discusses adversarial networks that use a two-player game between a generative and discriminative model to take samples from the original distribution and distinguish between them, resulting in smooth transitions in latent space and vector arithmetic for visual concepts. Finally, it outlines work on character-level text comprehension using CNNs on n-grams to handle out-of-vocabulary words and new word forms without relearning embeddings.
Что надо знать о HTTP/2Badoo Development«Что надо знать о HTTP/2», Александр Майоров (Tutu.ru)
Протокол HTTP/2 обещает ускорение загрузки страниц и очень активно продвигается. Так ли это и какую пользу от протокола могут получить Frontend разработчики? Стоит ли переходить на новый протокол? В качестве киллер фичи заявлена поддержка Server push. Что это и как этим пользоваться? Эти и другие вопросы будут освещены в докладе.
Определение качества сетевого соединения в iOS-почте, Даниил Румянцев, разраб...Mail.ru GroupВ докладе речь пойдет о комбинации нескольких подходов к измерению качества соединения. Общепринятого подхода к решению такой задачи не существует. Спикер расскажет, как определить качество сети на примере приложения Почты Mail.Ru.
Введение в паттерн Schedulable object, Павел Осипов, руководитель разработки ...Mail.ru GroupЧасто при создании приложений разработчики ограничиваются выделением бизнес-логики в отдельный слой. Но когда бизнес-логики становится много, она своей активностью начинает негативно влиять на плавность пользовательского интерфейса.
Спикер поделится разработанным им подходом, позволяющим аккуратно выделить бизнес-логику из главного потока, не требуя при этом от объектов данного слоя быть потокобезопасными.
«Pocker - GUI для Docker», Владимир Василькин (ALMWorks, Санкт-Петербург)Mail.ru GroupВладимир рассказал о том, как с помощью OpenSource-инструмента Pocker можно просто и быстро поднимать подобные конфигурации, выбирая разные СУБД, версии, плагины, базы, а затем управлять ими — запускать/выключать, просматривать логи и так далее.
Александр Лисаченко, Alpari, «Решение вопросов сквозной функциональности в пр...Mail.ru GroupКаждый из нас любит писать чистый объектно-ориентированный код, но всегда есть сквозная функциональность, которая не может быть решена с помощью объектного кода, такая как логирование, кэширование, авторизация и многое другое. Существуют ли пути для решения этих вопросов со сквозной функциональностью? Устали ли вы от постоянного повторения одних и тех же строчек кода во всех методах классов? Из доклада вы узнаете эффективные способы борьбы с таким кодом.
Максим Попов, Mail.Ru Group, «Асинхронные запросы в MySQL или когда PDO стано...Mail.ru GroupВ докладе было рассмотрено, зачем нужны и в чем преимущества асинхронных выборок из MySQL, а также как мы используем MySQLi и PDO вместе.
Aлексей Медведев, Alpari, «Enterprise-инфраструктура менеджмента PHP-пакетов ...Mail.ru GroupВ докладе было рассказано, как в Альпари разворачивали локальную систему менеджмента пакетов на базе Composer, Packagist и git-фронтенда Gitweb; а также как работают с приватными пакетами и почему при сборке приложений зависимости никогда не выкачиваются напрямую с GitHub.
Кроме того, будет несколько слов о том, что находится под капотом у Packagist, когда, как и зачем его разворачивать у себя в компании, какие есть альтернативные Composer-репозитории пакетов и в каких случаях их удобно использовать.
«Пиринговый веб на JavaScript», Денис ГлазковMail.ru GroupДоклад был посвящен проекту base.network. Благодаря криптовалюте Bitcoin, микроблогам Twister и мессенджеру Tox становится всё популярней тема пиринговых технологий. Теперь пришло время и распределенных сайтов. В своём выступлении Денис рассказал о создании децентрализованных клиентских приложений на JavaScript, общей схеме работы сети и криптографии c JS.
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...Mail.ru GroupСуществуют три наисложнейшие проблемы в программировании: именование, кэширование и выход за границу массива. Проверка пограничных случаев поведения кода наиболее важна, но эта зона также наименее тестируема. Придумать и предугадать все возможные ситуации человеку тяжело, и порой мы что-то упускаем из виду. Вот было бы здорово, если бы тесты сами находили такие случаи, при которых код падает… Мечты? О том, как превратить их в реальность, и рассказал Александр.
«iPython & Jupyter: 4 fun & profit», Лев Тонких, Rambler&CoMail.ru GroupДоклад посвящен Jupyter Notebook. Лев описал примеры его использования и рассказал, чем этот инструмент может быть полезен разработчику.
«Advanced {product_name} configuring», Алексей Макеев, Mail.Ru GroupMail.ru GroupАлексей рассказал об организации конфигурирования программного продукта с помощью конфигурационных файлов и привел примеры из практики. Речь шла о том, как сделать код работы с конфигурацией вашим верным помощником.
«Свой PhoneGap за 15 минут», Алексей Охрименко (IPONWEB)Mail.ru GroupWrite once, use everywhere. Все мы прекрасно знаем, что это не про Java. :) Доклад Алексея посвящён кроссплатформенным мобильным приложениям на JavaScript: как работает PhoneGap и как создать его клон. Докладчик также озвучил уникальное заявление Стива Джобса, которое многие просто не слышали.
«Компонентная верстка с AngularJS», Андрей Яманов (CTO TeamHunt)Mail.ru GroupОбычно компонентный подход используют в крупных проектах из-за издержек по поддержке такого кода. Андрей рассказал, как даже в небольших проектах с помощью AngularJS и компонентного подхода можно улучшить качество кода, ускорить и упростить разработку. Доклад актуален для AngularJS 1 и 2. Он также будет полезен тем, кто вообще не используют данный фреймворк.
Profiling and optimizing go programsBadoo DevelopmentИз презентации вы узнаете:
про большинство утилит из арсенала Go, предназначенных для оптимизации производительности;
— как и когда их (утилиты) использовать, а также мы посмотрим как они устроены внутри;
— про применимость linux утилиты perf для оптимизации программ на Go.
Кроме того, устроим небольшой crash course, в рамках которого поэтапно соптимизируем несколько небольших программ на Go с использованием вышеперечисленных утилит.
Парсим CSSBadoo Development«Парсим CSS», Роман Дворнов (Avito)
В ходе работы над CSSO мне пришлось погрузиться в процесс парсинга CSS. В результате парсер (тот, что в CSSO) был не раз переписан. Пришло время сделать его отдельным инструментом. Новый быстрый детальный парсер CSS, его AST, области применения и кое-что ещё.
Александр Щусь, Mail.Ru Group, Детектирование взломов почтовых аккаунтовMail.ru GroupВыступление Александра было посвящено решению актуальных проблем в сфере взлома аккаунтов различных сетевых сервисов
Сергей Герасимов (ВМК МГУ), Александр Мещеряков (Институт космических исследо...Mail.ru GroupВ этом выступлении рассказывается о роли машинного обучения и больших данных в решениях актуальных задач в астрофизике.
Ростислав Яворский, Высшая Школа Экономики, «Как использовать анализ сетевых ...Mail.ru GroupВыступление Ростислава состоит из двух частей: «Визуализация реальной структуры организации» и «Анализ и визуализация профессиональных сообществ».
Сергей Николенко, Deloitte Analytics Institute, Высшая Школа Экономики, «От н...Mail.ru GroupВыступление Сергея было посвящено введению в тематическое моделирование.
Иван Лобов, Data-Centric Alliance, «Текущие тенденции в сфере исследования гл...Mail.ru GroupThis document summarizes recent trends in deep learning research presented at AAAI 2016, including advances in attention and memory models that use direct weighted connections to improve long-term memory for sequences. It also discusses adversarial networks that use a two-player game between a generative and discriminative model to take samples from the original distribution and distinguish between them, resulting in smooth transitions in latent space and vector arithmetic for visual concepts. Finally, it outlines work on character-level text comprehension using CNNs on n-grams to handle out-of-vocabulary words and new word forms without relearning embeddings.
Что надо знать о HTTP/2Badoo Development«Что надо знать о HTTP/2», Александр Майоров (Tutu.ru)
Протокол HTTP/2 обещает ускорение загрузки страниц и очень активно продвигается. Так ли это и какую пользу от протокола могут получить Frontend разработчики? Стоит ли переходить на новый протокол? В качестве киллер фичи заявлена поддержка Server push. Что это и как этим пользоваться? Эти и другие вопросы будут освещены в докладе.
Определение качества сетевого соединения в iOS-почте, Даниил Румянцев, разраб...Mail.ru GroupВ докладе речь пойдет о комбинации нескольких подходов к измерению качества соединения. Общепринятого подхода к решению такой задачи не существует. Спикер расскажет, как определить качество сети на примере приложения Почты Mail.Ru.
Введение в паттерн Schedulable object, Павел Осипов, руководитель разработки ...Mail.ru GroupЧасто при создании приложений разработчики ограничиваются выделением бизнес-логики в отдельный слой. Но когда бизнес-логики становится много, она своей активностью начинает негативно влиять на плавность пользовательского интерфейса.
Спикер поделится разработанным им подходом, позволяющим аккуратно выделить бизнес-логику из главного потока, не требуя при этом от объектов данного слоя быть потокобезопасными.
«Pocker - GUI для Docker», Владимир Василькин (ALMWorks, Санкт-Петербург)Mail.ru GroupВладимир рассказал о том, как с помощью OpenSource-инструмента Pocker можно просто и быстро поднимать подобные конфигурации, выбирая разные СУБД, версии, плагины, базы, а затем управлять ими — запускать/выключать, просматривать логи и так далее.
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill ChebuninSome thoughts about IoC, annotations and AOP in PHP & ZF for ZFConf Ukraine 2010.
Language: Russian.
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_PartyВалерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — проблемы и решения.
Конференция Dev Party (http://devparty.ru).
Вологда, 02.04.2016.
Инструментируй этоRoman DvornovЕсть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр ЕгурцовПрезентация к вебинару об устройстве фреймворка symfony 2.
Видеозапись вебинара находится в моём блоге по адресу http://frontend-dev.ru/2012/12/12/symfony2-основы
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDayСергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Превышаем скоростные лимиты с Angular 2Oleksii Okhrymenko* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Как приручить реактивное программированиеDenis TsvettsihПрезентация к докладу на конференции DotNetConf 12 (Челябинск, 15 мая 2016) http://dotnetconf.ru/materialy/reactiveprogramming
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Mail.ru GroupВ рамках доклада мы поделимся примерами проектов, на которых есть автоматизация, но нет ни одного специально выделенного инженера для выполнения задач, связанных с автоматизацией тестирования. Затронем такие вопросы как:
что нас привело к такому решению (отказаться от test automation инженеров);
сложности, с которыми мы столкнулись;
бонусы, которые мы в итоге получили.
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...Mail.ru GroupАвтоматизация тестирования UI — это всегда непростая задача, особенно в условиях активной разработки и постоянного изменения требований. Как мы решали эту проблему в mall.my.com. Как и почему пришли к BDD. Какие инструменты выбрали. И что из этого вышло.
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир ДубровинMail.ru GroupЗачем нужна и не нужна баг-баунти, что происходит после того, как вы отправляете баг-репорт и как все это вписывается во внутренние процессы.
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Mail.ru GroupИспользование Fiddler и Charles при тестировании фронтенда проекта pulse.mail.ru;
Свежий взгляд на Fiddler и его сравнение с Clumsy и Charles;
Небольшой обзор и сравнение функционала Fiddler и Charles.
Управление инцидентами в Почте Mail.ru, Антон ВикторовMail.ru Groupчто такое инциденты и почему это важно;
как из непонятного сделать «рутину»;
про автоматизацию: OTRS, Jira, чат-боты;
про диагностику: логирование, как работает Bomgar;
про сообщество: специальная программа тестирования почты для сотрудников.
DAST в CI/CD, Ольга СвиридоваMail.ru GroupНа сегодняшний день такие популярные анализаторы, как OWASP ZAP и Burp Suite, не всегда хорошо справляются с задачей автоматического сканирования приложений. Нередко они не могут найти какие-то специфические директории, автоматически отправить запрос без участия человека. И чаще данные инструменты запускаются локально. При этом, если в компании хорошо работает команда по автоматизации тестирования, их работу можно взять за основу динамического анализа и фазинга.
Как бонус, обсудим разницу Burp Suite Professional и Burp Suite Enterprise с точки зрения CI/CD и подключения автоматизированных тестов.
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...Mail.ru GroupПочему каждый DL-инженер должен написать свою либу для обучения сеток, а потом отказаться от неё.
Расскажу про опыт написания kekas-а, и почему в своей команде мы пользуемся pytorch-lightning как более зрелым решением.
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...Mail.ru GroupРасскажу про различные полезные библиотеки и функции Python: от простых и известных, до специфичных и редких. Поделюсь тем, какие технологии мы используем при разработке, обучении и деплое наших моделей: что помогало улучшить качество, а что тормозило разработку.
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidiaMail.ru GroupВсе мы знаем, что наш любимый Pandas исключительно однопоточный, а модели из scikit-learn часто учатся не очень быстро даже в несколько процессов. Поэтому в докладе я расскажу о проекте RAPIDS - наборе библиотек для анализа данных и построения предиктивных моделей с использованием NVIDIA GPU. В докладе я предложу подискутировать о том, что закон Мура больше не выполняется, рассмотрю принципы работы архитектуры CUDA. Разберу библиотеки cuDF и cuML, а также постараюсь предельно честно рассказать о том, ждать ли чуда от перехода на GPU и в каких случаях чудо неизбежно.
WebAuthn в реальной жизни, Анатолий ОстапенкоMail.ru GroupЯ расскажу, как мы поддержали вход через WebAuthn в самом крупном почтовом сервисе рунета и какие сложности скрываются за красивыми презентациями о том, какой WebAuthn простой и безопасный:
как сделать WebAuthn понятным и доступным для пользователей;
как поддержать его во всех браузерах и устройствах;
как тестировать WebAuthn, в том числе автоматизированно;
куда двигаться дальше после его запуска и включения.
AMP для электронной почты, Сергей ПешковMail.ru GroupБиблиотека AMP — это не только современный инструмент создания богатых функциональностью и производительных web-сайтов, адаптированных для работы на мобильных устройствах. AMP для электронной почты радикально обновляет традиционный формат электронных писем, позволяя создавать более привлекательные и полезные для пользователя рассылки.
В Почте Mail.ru очень вдохновляют новые возможности, которые может предоставить нашим пользователям и партнерам AMP для электронной почты. Этот доклад о том:
почему стандарт для по-настоящему интерактивных электронных писем не получалось создать раньше;
что из себя представляет стандарт AMP4Email, какие новые способы взаимодействия с письмом он дает;
как с его помощью повысить ценность рассылки для пользователя;
как мы реализовали поддержку AMP4Email в своих продуктах и обеспечили его безопасность;
как AMP4Email может повысить конверсию на примере внедрения AMP-рассылок в партнерстве с крупнейшим сервисом электронной коммерции в России.
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила СтрелковMail.ru GroupPWA - хорошо, но есть подвох;
Как побороть страх отсутствия мобильной разработки?
TWA – это легко и просто
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Mail.ru GroupDelivery Club — крупнейшая фудтех-платформа в России, которая объединяет более 12 000 ресторанов разной ценовой категории в более чем 120 городах.
Мы разработали приложение для наших партнеров, в котором они могут управлять заказами, меню, ингредиентами, статистикой в удобном интерфейсе. В докладе пойдет речь о том, как внедрение практик PWA помогло нам улучшить пользовательский опыт, решить вопросы, связанные с работой приложения на разных платформах. И как поддержка offline-режима избавила нас от проблем с вечными перепадами сети у наших партнеров.
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиMail.ru GroupРазбор приемов метапрограммирования на примере написания библиотеки конечного автомата, где DSL реализован с помощью приемов метапрограммирования.
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupMail.ru GroupНа примере библиотеки rapidjson станет понятно, как модульность проекта может влиять на результаты оптимизации кода.
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Mail.ru GroupAI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Mail.ru GroupAI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Mail.ru GroupAI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Mail.ru GroupAI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Mail.ru GroupAI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
7. 7
# Factory.php
class Factory
{
public function getRepository()
{
return new Repository();
}
}
# Controller.php
class Controller
{
public function executeAction()
{
$factory = new Factory();
$repository = $factory->getRepository();
# do some action ...
}
}
9. 9
# ServiceLocator.php
class ServiceLocator
{
public function get($name)
{
return $this->services[$name];
}
}
# Controller.php
class Controller
{
public function executeAction()
{
$repository = $this->serviceLocator->get(‘repository’);
# do some action ...
}
}
42. 42
# Controller.php
class Controller
{
public function setFormFactory(FormFactory $formFactory)
{
$this->formFactory = $formFactory;
}
public function executePostAction()
{
$formPost = $this->formFactory->create(‘form_type_post’);
# do post action ...
}
public function executePutAction()
{
$formPut = $this->formFactory->create(‘form_type_put’);
# do put action ...
}
}
# services.yml
services:
controller:
class: Controller
calls:
- [setFormFactory, [“@form.factory”]]
44. 44
# CompilerPass.php
class CompilerPass extends CompilerPassInterface
{
public function process(ContainerBuilder $containerBuilder)
{
$definition = $container->getDefinition(‘service’);
$definition->setLazy(true);
}
}
# services.yml
services:
service:
class: Service
# lazy: true
45. # CompilerPass.php
class CompilerPass extends CompilerPassInterface
{
public function process(ContainerBuilder $containerBuilder)
{
$parameters = $container->getParameter(‘vendor’);
foreach ($parameters as $key => $value) {
$container->setParameter(‘vendor_’ . $key, $value);
}
}
}
# services.yml
parameters:
vendor:
key_1: value_1
key_2: value_2
services:
service:
class: Service
arguments:
- “%vendor_key_1%”
- “%vendor_key_2%”
45
46. Антипаттерны (для закрепления)
● Использование service locator (вне инфраструктурного
кода)
● Использование micro service locator
● Семантическая конфигурация
46
48. Заключение
● Многое становится проще
● Есть несколько реализаций
● Если не читать документацию, можно “заиграться”
● Можно самостоятельно реализовать
48