Как за $5 и несколько вечеров сделать интегрированную новостную платформуAndrew Gubskiy
В докладе рассказывается об опыте создания информационной платформы //devdigest. В частности, поднимаются такие вопросы:
– Где и как размещен сайт?
– Как реализована интеграция с Telegram и Facebook?
– Как происходит определение языка публикации?
Среди рассматриваемых сервисов и технологий будут: GitHub, Digital Ocean, Azure WebApp, LetsEncrypt, Continuous Delivery, Azure Cognitive Services, Telegram и Facebook.
Доклад на семинаре компании Embarcadero.
Андрей Совцов знакомит с поддержкой в RAD Studio Tokyo еще одной платформы - Linux (Server) с демонстрацией разработки и отладки консольных приложений, работы с базами данных и модулей для Web-серверов и сервисов
Как за $5 и несколько вечеров сделать интегрированную новостную платформуAndrew Gubskiy
В докладе рассказывается об опыте создания информационной платформы //devdigest. В частности, поднимаются такие вопросы:
– Где и как размещен сайт?
– Как реализована интеграция с Telegram и Facebook?
– Как происходит определение языка публикации?
Среди рассматриваемых сервисов и технологий будут: GitHub, Digital Ocean, Azure WebApp, LetsEncrypt, Continuous Delivery, Azure Cognitive Services, Telegram и Facebook.
Доклад на семинаре компании Embarcadero.
Андрей Совцов знакомит с поддержкой в RAD Studio Tokyo еще одной платформы - Linux (Server) с демонстрацией разработки и отладки консольных приложений, работы с базами данных и модулей для Web-серверов и сервисов
2 Продуктивность работы в IDE; Разработка для Windows 10 Storesandy97
Доклад на семинаре компании Embarcadero.
Андрей Совцов знакомит с новыми возможностями IDE RAD Studio Tokyo и обновлениях в VCL и других библиотеках для разработки приложений для Windows 10 и Windows Store
RDSDataSource: Автогенерация документации для SDKRAMBLER&Co
Помимо различных приложений в нашей команде разрабатывается несколько SDK, и вопрос с генерацией документации становится всё более актуальным. Михаил рассказал какие системы для создание документации существуют, чем они хороши и какую из них мы выбрали для своих нужд. Кроме этого освещаются вопросы исползования такой документации и ее автоматического деплоя через Jenkins и fastlane.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...solit
Виктор Русакович, Минск, Web-developer c 6-ти летним опытом разработки, компания GP Software.travel
«Реактивный JavaScript. Победа над асинхронностью и вложенностью». Development секция. Для разработчиков. Высокий уровень подготовки.
«Непрерывная интеграция сложного проекта. Кто всё сломал?». IT секция. Agile отделение. Для всех уровней подготовки.
Артур Протько рассказал о различных технологиях семейства App Thinning: bitcode, slicing, on-demand resources. Помимо теории приводятся практические примеры и статистика, полученная в проекте Рамблер/почта.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Fwdays
Важные изменения в Phalcon за последний год
Краткое описание важных изменений и дополнений, которые сделали Phalcon интересным и более стабильным за последний год.
Что ожидается от версии 2.1
О концептуальных изменениях в версии 2.1
LTS версия и система релизов
О выходе LTS версии, сроках её поддержки, а так же намеченной системе релизов Phalcon и сроках их поддержки.
Как Zephir увеличивает численность команды и общую стабильность проекта
О том, что команда Zephir расширяется профессиональными разработчиками на языке Си, делая язык стабильнее и развивая его быстрее. О заморозке основной ветки разработки.
Как принять участие в разработке Phalcon
О том как писать на языке программирования Zephir, тестировать локально свои наработки и правильно отправлять пул реквесты или баг репорты чтоб они были рассмотрены в ближайшее время.
Поддержка PHP7
О том, на какой стадии поддержка PHP7 реализована в Phalcon. Как Phalcon будет работать в PHP7. Будет ли он быстрее чем нативный код для PHP7. О том, какую версию рекомендуется использовать сейчас.
В чём мы нуждаемся
О том, что нам нужны не только программисты — описание того, как можно помогать проекту развиваться, даже не будучи профессиональным программистом.
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Доклад представляет собой обзор различных инструментов для тестирования на питоне, которые можно использовать для создания эффективного тестового end-to-end фреймворка на основе selenium webdriver с минимальным количеством заново изобретенных колес. В частности будут рассмотрены такие компоненты архитектуры как обертка вокруг самого драйвера, page object и page elements паттерны, репортинг и соответствующие инструменты, способные с большим или меньшим успехом выполнять роль этих компонентов
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
Об организации автоматизированного рабочего процесса в InterSystems Caché, Лебедюк /
Implementing modern developement practices with InterSystems Caché, Eduard Lebedyuk
Approach on how make Continuous Integration development cycle with InterSystems Caché.
Caché Object Script solution for CI with Github
https://github.com/intersystems-ru/CacheGitHubCI
Готовим Docker для Автоматизации ТестированияCOMAQA.BY
Docker как технология уже давно и интенсивно используется на некоторых проектах. Этот доклад посвящен вариантам использования Docker-а для автоматизации тестирования на таких проектах, таким как: верификация деплоя микросервисов, построение изолированной среды для тестирования, мониторинг состояния продакшена.
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
Rust позволяет писать быстрые и надёжные программы. Особенно когда они многопоточные. Это делает его хорошим выбором для написания серверной части разнообразных веб-приложений.
Но что для этого нужно? Зачем терпеть все эти длиннющие ошибки от borrow checker'а? Что с продуктивностью разработки? Где взять библиотеки? А что если библиотеки нет? Какой веб-фреймворк выбрать? Как отлаживать и профилировать код?
В своём докладе я отвечу на эти и другие вопросы. Ещё я расскажу, что нужно делать, чтобы обойти проблемные места, которые у Rust, конечно, тоже есть.
Всё это — на примере кода инфраструктурного сервера, обеспечивающего «всегда зелёный master» (commit gatekeeper, аналог homu и zuul).
"Как благодаря композеру использовать сторонние компоненты в Magento 2"
Владимир Полищук, Eltrino
19.12.2015 - Magento 2 Release Event Chernivtsi
#m2cv
2 Продуктивность работы в IDE; Разработка для Windows 10 Storesandy97
Доклад на семинаре компании Embarcadero.
Андрей Совцов знакомит с новыми возможностями IDE RAD Studio Tokyo и обновлениях в VCL и других библиотеках для разработки приложений для Windows 10 и Windows Store
RDSDataSource: Автогенерация документации для SDKRAMBLER&Co
Помимо различных приложений в нашей команде разрабатывается несколько SDK, и вопрос с генерацией документации становится всё более актуальным. Михаил рассказал какие системы для создание документации существуют, чем они хороши и какую из них мы выбрали для своих нужд. Кроме этого освещаются вопросы исползования такой документации и ее автоматического деплоя через Jenkins и fastlane.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...solit
Виктор Русакович, Минск, Web-developer c 6-ти летним опытом разработки, компания GP Software.travel
«Реактивный JavaScript. Победа над асинхронностью и вложенностью». Development секция. Для разработчиков. Высокий уровень подготовки.
«Непрерывная интеграция сложного проекта. Кто всё сломал?». IT секция. Agile отделение. Для всех уровней подготовки.
Артур Протько рассказал о различных технологиях семейства App Thinning: bitcode, slicing, on-demand resources. Помимо теории приводятся практические примеры и статистика, полученная в проекте Рамблер/почта.
RDSDataSource - внутренние пятничные митапы iOS-команды RAMBLER&Co.
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"Fwdays
Важные изменения в Phalcon за последний год
Краткое описание важных изменений и дополнений, которые сделали Phalcon интересным и более стабильным за последний год.
Что ожидается от версии 2.1
О концептуальных изменениях в версии 2.1
LTS версия и система релизов
О выходе LTS версии, сроках её поддержки, а так же намеченной системе релизов Phalcon и сроках их поддержки.
Как Zephir увеличивает численность команды и общую стабильность проекта
О том, что команда Zephir расширяется профессиональными разработчиками на языке Си, делая язык стабильнее и развивая его быстрее. О заморозке основной ветки разработки.
Как принять участие в разработке Phalcon
О том как писать на языке программирования Zephir, тестировать локально свои наработки и правильно отправлять пул реквесты или баг репорты чтоб они были рассмотрены в ближайшее время.
Поддержка PHP7
О том, на какой стадии поддержка PHP7 реализована в Phalcon. Как Phalcon будет работать в PHP7. Будет ли он быстрее чем нативный код для PHP7. О том, какую версию рекомендуется использовать сейчас.
В чём мы нуждаемся
О том, что нам нужны не только программисты — описание того, как можно помогать проекту развиваться, даже не будучи профессиональным программистом.
"Prom.ua shopping cart workflow as a microfrontend", Danylo KazymyrovFwdays
For a long time, the Prom.ua shopping cart was part of a monolith. After migration to SSR there was a need to reuse it and make it a separate application.
In my talk, I will tell about the approach to building interaction between frontend applications and show how we applied it to Prom.ua shopping cart.
Доклад представляет собой обзор различных инструментов для тестирования на питоне, которые можно использовать для создания эффективного тестового end-to-end фреймворка на основе selenium webdriver с минимальным количеством заново изобретенных колес. В частности будут рассмотрены такие компоненты архитектуры как обертка вокруг самого драйвера, page object и page elements паттерны, репортинг и соответствующие инструменты, способные с большим или меньшим успехом выполнять роль этих компонентов
Приемы Сontinuous Integration при разработке приложений на CachéInterSystems CEE
Об организации автоматизированного рабочего процесса в InterSystems Caché, Лебедюк /
Implementing modern developement practices with InterSystems Caché, Eduard Lebedyuk
Approach on how make Continuous Integration development cycle with InterSystems Caché.
Caché Object Script solution for CI with Github
https://github.com/intersystems-ru/CacheGitHubCI
Готовим Docker для Автоматизации ТестированияCOMAQA.BY
Docker как технология уже давно и интенсивно используется на некоторых проектах. Этот доклад посвящен вариантам использования Docker-а для автоматизации тестирования на таких проектах, таким как: верификация деплоя микросервисов, построение изолированной среды для тестирования, мониторинг состояния продакшена.
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
Rust позволяет писать быстрые и надёжные программы. Особенно когда они многопоточные. Это делает его хорошим выбором для написания серверной части разнообразных веб-приложений.
Но что для этого нужно? Зачем терпеть все эти длиннющие ошибки от borrow checker'а? Что с продуктивностью разработки? Где взять библиотеки? А что если библиотеки нет? Какой веб-фреймворк выбрать? Как отлаживать и профилировать код?
В своём докладе я отвечу на эти и другие вопросы. Ещё я расскажу, что нужно делать, чтобы обойти проблемные места, которые у Rust, конечно, тоже есть.
Всё это — на примере кода инфраструктурного сервера, обеспечивающего «всегда зелёный master» (commit gatekeeper, аналог homu и zuul).
"Как благодаря композеру использовать сторонние компоненты в Magento 2"
Владимир Полищук, Eltrino
19.12.2015 - Magento 2 Release Event Chernivtsi
#m2cv
Ігор Карпиленко — PHPStorm for drupal developerLEDC 2016
Розгляд та аналіз інфструментів PHPStorm для drupal розробника: QA tools, Xdebug, Issue Tracking System, Drush, інструменти для роботи з Vagrant, Docker і базами даних. Корисні плагіни.
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
Краткое описание библиотеки анализа кода VivaCoreTatyanazaxarova
Наша команда, занимаясь исследованиями в области статического анализа и работая над созданием инструмента Viva64, пришла к выводу, что большая часть разработанных структур и алгоритмов может быть выделена в библиотеку и использована сторонними разработчиками для создания новых программных продуктов. Эта библиотека получила название VivaCore.
https://seleniumcamp.com/talk/webdriverio-puppeteer-double-gun-double-fun/
In the automation world, W3C Webdriver HTTP protocol has been successfully used for a long time. With its help, many projects and libraries in various languages have been implemented (selenide, protractor, webdriverio and thousands of others). But more and more teams decide to use Chrome Debug Protocol, in particular the Puppeteer tool. It is based on WebSockets, and has its own special features – two-way communication, ability to subscribe to events in the browser, and much more. In this talk, we will look at the capabilities of both protocols, experiment and combine them together in one project to make the browser work at full power, and take the best from both communication channels.
Николай Сивко "Хорошо поддерживаемое в продакшне приложение"Tanya Denisyuk
Исторически сложилось так, что одни люди разрабатывают приложения (Dev), а другие эксплуатируют их в продакшне (Ops). И у последних есть немало проблем с тем, что невозможно понять, что происходит.
Причем это касается как собственных разработок, так и популярных open source решений.
Я расскажу, как устроена диагностика у некоторых популярных софтин:
- nginx
- postgresql
- mongodb
Мы попробуем разобраться, что там сделано хорошо, и чего не хватает для полного счастья.
Во второй части доклада мы поговорим про то, как нужно инструментировать собственное приложение для прозрачной работы в продакшне:
- что считать и зачем: ошибки, тайминги, разные состояния приложения,
- инструментарий: your_lang-metrics, your_lang-statsd-client, логи,
- как не перемудрить и не убить прод диагностикой.
Может показаться, что этот доклад про DevOps, но нет - про docker не будет ни слова :)
Аналитика требований в разрезе управления проектамиГузель Рахимова
В презентации показано о том, как влияет правильно проведенный анализ на успешность проекта, как проводить анализ и как это встраивается в процесс управления проектами.
«Композитный сайт. Ускорение отдачи сайта в 100 раз» Гузель Рахимова
Автор: Валерия Алексеева, веб-разработчик компании "Центр Высоких Технологий".
Уникальная технология производства сайтов объединяет в себе высокую скорость загрузки статического сайта и все возможности динамического сайта. Пользователь мгновенно получает контент страницы.
Автор: Валерия Алексеева, веб-разработчик компании "Центр Высоких Технологий".
Использование Highload-блоков в работе. Highload-блоки - модуль для работы с произвольными наборами данных в условиях высоких нагрузок.
«Сетевые протоколы для веб разработчика — выжимаем максимум» Гузель Рахимова
Автор: Александр Сербул, руководитель направления контроля качества и внедрений компании "1С-Битрикс".
Pасскажет об эффективной работе с сетевыми технологиями (tcp/ip, dns, tls, spdy, websockets, long polling, http 2.0) при разработке
2. Composer
Composer (getcomposer.org) — менеджер
зависимостей для PHP.
В отличие от PEAR Composer устанавливает
зависимости не глобально для всего сервера, а
локально для конкретного проекта.
3. Как это работает
1. Есть проект, который зависит от нескольких библиотек.
2. Некоторые из этих библиотек зависят от других библиотек.
3. Вы описываете только те библиотеки, от которых
непосредственно зависит ваш код.
4. Composer находит нужные версии требуемых библиотек,
скачивает их и устанавливает в папку вашего проекта.
4. Где могут располагаться
зависимости?
• официальный репозиторий packagist.org
• git, mercurial или svn репозиторий
• можно скачать что угодно, лишь бы был url и доступ
5. Что нужно для начала работы?
• composer.phar
• composer.json
{
"require": {
"php":">=5.3.0",
"phpunit/phpunit":"3.7.*",
"twig/twig":">=1.8,<2.0-dev"
}
}
7. Но у нас есть проблема!
Composer устанавливает зависимости в /vendor/
8. Модуль битрикса в /vendor/
никому не нужен!
Что делать?
• composer/installers
• использовать плагин для Composer
9. Плагин для Composer
• https://getcomposer.org/doc/articles/custom-installers.md -
документация
• https://github.com/osotov/bitrix-composer-module-installer
- живой пример на основе документации
10. ModuleInstallerPlugin.php
<?php
namespace BitrixComposer;
use ComposerComposer;
use ComposerIOIOInterface;
use ComposerPluginPluginInterface;
class ModuleInstallerPlugin implements PluginInterface {
public function activate(Composer $composer, IOInterface $io)
{
$installer = new ModuleInstaller($io, $composer);
$composer->getInstallationManager()->addInstaller($installer);
}
}
11. ModuleInstaller.php
class ModuleInstaller extends LibraryInstaller
{
const PACKAGE_TYPE = 'bitrix-module-installer';
public function getPackageBasePath(PackageInterface $package)
{
$extras = $package->getExtra();
if ((array_key_exists('bitrix_module_name', $extras)) && (! empty($extras['bitrix_module_name']))) {
$name = (string) $extras['bitrix_module_name'];
} else {
throw new Exception(
'Unable to install module, composer.json must contain module name declaration like this: ' .
'"extra": { "bitrix_module_name": "somename" } '
);
}
return 'local/modules/' . $name;
}
}