Історія декількох проектів та що в них пішло не так - UA Mobile 2019UA Mobile
У середовищі розробників існує думка про те, що сучасні проекти, зокрема - Android проекти, - всього лише пазл з бібліотек та невеликої кількості бізнес-логіки. В рамках моєї презентації ми розглянемо кілька проектів, на прикладі яких я покажу деякі проблеми та приховану вартість використання деяких бібліотек, про яку мало хто замислюється.
В якості бонуса ми подивимося на деякі приклади очевидного (і не дуже) поганого коду та поганої архітектури.
Під час презентації ми розглядаємо як деякі відомі бібліотеки (RxAndroid, Dagger, Android Architecture Components) використовуються в занадто широкому сенсі або на занадто ранній стадії, і як це заважає проекту, викликаючи вельми неочевидні проблеми як для розробника, так і для кінцевого користувача.
http://uamobile.org/uk/topics/istoriya-dekilkoh-proektiv-ta-shcho-v-nyh-pishlo-ne-tak
В основе сервиса заложена популярная парадигма управления канбан: при правильно заданных исходных данных и правильном распределении ресурсов работа будет выполнена вовремя, “точно в срок”.
Історія декількох проектів та що в них пішло не так - UA Mobile 2019UA Mobile
У середовищі розробників існує думка про те, що сучасні проекти, зокрема - Android проекти, - всього лише пазл з бібліотек та невеликої кількості бізнес-логіки. В рамках моєї презентації ми розглянемо кілька проектів, на прикладі яких я покажу деякі проблеми та приховану вартість використання деяких бібліотек, про яку мало хто замислюється.
В якості бонуса ми подивимося на деякі приклади очевидного (і не дуже) поганого коду та поганої архітектури.
Під час презентації ми розглядаємо як деякі відомі бібліотеки (RxAndroid, Dagger, Android Architecture Components) використовуються в занадто широкому сенсі або на занадто ранній стадії, і як це заважає проекту, викликаючи вельми неочевидні проблеми як для розробника, так і для кінцевого користувача.
http://uamobile.org/uk/topics/istoriya-dekilkoh-proektiv-ta-shcho-v-nyh-pishlo-ne-tak
В основе сервиса заложена популярная парадигма управления канбан: при правильно заданных исходных данных и правильном распределении ресурсов работа будет выполнена вовремя, “точно в срок”.
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Oleg Poludnenko
Доклад с PUG#4 https://www.facebook.com/events/350783888446030/
Презентует:
- Асинхронность в веб-приложениях.
- Систему очередей Gearman.
- Пример Реализации c использование Yii2 + Gearman.
"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.
Материалы с доклада: http://getdev.net/Event/async-javascript
Рассказ о том, как работает асинхронность в JavaScript, кто стоит в очереди выполнения, почему в JavaScript никогда не будет процессорной гонки, как давать отсроченные обещания и что делать, если одна из ваших функций подхватила заразу асинхронности
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
В наши дни веб-разработка усложнилась и разработчик тратит много времени на настройку рабочего окружения. Wodby решает эту проблему и позволяет быстро начать работу над проектом.
Антон Довгоброд: Highload и очереди задач на примере PHP + Gearman + Yii2Oleg Poludnenko
Доклад с PUG#4 https://www.facebook.com/events/350783888446030/
Презентует:
- Асинхронность в веб-приложениях.
- Систему очередей Gearman.
- Пример Реализации c использование Yii2 + Gearman.
"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.
Материалы с доклада: http://getdev.net/Event/async-javascript
Рассказ о том, как работает асинхронность в JavaScript, кто стоит в очереди выполнения, почему в JavaScript никогда не будет процессорной гонки, как давать отсроченные обещания и что делать, если одна из ваших функций подхватила заразу асинхронности
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
Параллелизация тестов, а именно: лучший пхп тулл для автоматизации (Codeception); основы Docker контейнирезации; robo - что это и зачем он нам нужен; profit
В наши дни веб-разработка усложнилась и разработчик тратит много времени на настройку рабочего окружения. Wodby решает эту проблему и позволяет быстро начать работу над проектом.
Павел Прищепа. Drupal как стандарт для образовательных учрежденийi20 Group
Доклад с "Общеуниверситетского научно-методического семинара по информатизации учебного процесса и электронному обучению” в НГУ.
---
DrupalJedi http://drupaljedi.com/
Группа компаний И20 i20.biz
Сайт сибирского сообщества друпаллеров ДрупалСиб drupalsib.ru
Chingis Sandanov. Container virtualizationi20 Group
Я хочу рассказать о том, как хостятся веб-приложения, в т.ч. друпал, об индустрии хостинга в целом и о последних трендах в этой сфере, в частности - это контейнерная виртуализация приложений Docker, которая в настоящее время изменяет всю индустрию хостинга
amoCRM - облачная лид-менеджмент система и партнер ГК i20 (http://i20.biz).
Специально для них мы разработали ряд модулей Drupal и виджет.
В данной презентации рассказано о том, как установить и использовать amoCRM Widget. Это модуль на Drupal и виджет в amoCRM, которые работают в комплексе, чтобы сделать ваши продажи еще эффективнее. Все возможности модуля описаны на его странице на Drupal.org: https://www.drupal.org/project/amocrm_widget
Чтобы использовать виджет, вам нужен сайт на Drupal с настроенным https и аккаунт в amoCRM https://www.amocrm.ru/.
Видеоинструкция: https://youtu.be/JN3USuUzr2o
Инcтрукция Виджет amoCRM на английском языке:
http://www.slideshare.net/DrupalJedi/amocrm-widget-instruction
Инструкция по другим модулям интеграции на русском языке:
http://www.slideshare.net/DrupalJedi/amocrm-60909031
Инструкция по другим модулям интеграции на английском языке:
http://www.slideshare.net/DrupalJedi/drupal-and-amocrm-integration-modules-instruction
Мало кто реально осознает мощь рынка Drupal.
Мы провели гигантскую аналитическую работу собирая факты и делая выводы.
Мы подготовили фильм о мощи друпал, который будет показан во время доклада.
Премьера фильма о рынке Друпал!
Фильм и доклад будут полезны разработчикам, руководителям девелоперских компаний и конечно клиентам.
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
Исторически сложилось так, что одни люди разрабатывают приложения (Dev), а другие эксплуатируют их в продакшне (Ops). И у последних есть немало проблем с тем, что невозможно понять, что происходит.
Причем это касается как собственных разработок, так и популярных open source решений.
Я расскажу, как устроена диагностика у некоторых популярных софтин:
- nginx
- postgresql
- mongodb
Мы попробуем разобраться, что там сделано хорошо, и чего не хватает для полного счастья.
Во второй части доклада мы поговорим про то, как нужно инструментировать собственное приложение для прозрачной работы в продакшне:
- что считать и зачем: ошибки, тайминги, разные состояния приложения,
- инструментарий: your_lang-metrics, your_lang-statsd-client, логи,
- как не перемудрить и не убить прод диагностикой.
Может показаться, что этот доклад про DevOps, но нет - про docker не будет ни слова :)
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
Это настоящий курс молодого бойца по коммерческой разработке ПО в компаниях и распределённых командах.В рамках курса слушатели приобретут навыки по участию в командной разработке, взаимодействию с аналитиками, заказчиком, менеджером и отделом тестирования, совместной работой с кодом, пониманию особенностей построения высоконагруженных систем, анализу качества продукта и автоматизации тестирования.
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.Alexander Frolov
Краткий обзор существующих решений
Что такое web sockets
обеспечение работы web sockets на стороне сервера
основной механизм работы с web sockets в PHP
Нюансы использования
Видео с доклада: http://getdev.net/Event/asp-net-mvc-4
Доклад об ASP.NET MVC, откуда и зачем он появился, какие задачи решает, какой подход к разработке исповедует. Этот доклад больше пригодится тем, кто хочет углубить и структурировать свои знания об ASP.NET MVC
This instruction was used at master-class in Novosibirsk State University at Days of a carrier on April, 10 2015.
Article about that day http://i20.biz/post/srum-lego-game
DrupalJedi corporate site drupaljedi.com
Contact as at hello@i20.biz
Обзор Form API для Drupal 8.
Что нового? Что изменилось? А что осталось по-прежнему?
Множество вопросов интересует разработчиков в связи с приближением Drupal 8.
На сегодня виртуальные машины прочно заняли своё место в серверах реальных. Я в общих чертах напомню, что это за зверь и с чем его едят. Остальная, большая часть доклада посвящена проблемам, с которыми я столкнулся при практическом использовании разных технологий виртуализации - VirtualBox, KVM, LXC и различным оснасткам для них и вируализированным ОС.
Dmitry Kiselev. Super fast api for Drupali20 Group
Cобственная разработка компании Drupal Jedi (http://i20.biz/company/drupaljedi) - модуль Endpoint, который позволяет реализовать супер быстрые запросы со сторонних приложений/сайтов/сервисов в Drupal. Примеры реализации и тесты скорости.
Доклад с "Общеуниверситетского научно-методического семинара по информатизации учебного процесса и электронному обучению” в НГУ.
---
DrupalJedi http://drupaljedi.com/
Группа компаний И20 i20.biz
Сайт сибирского сообщества друпаллеров ДрупалСиб drupalsib.ru
2. High loaded php operations over web interface.
Вопросы о которых далее пойдет доклад:
● О чем речь?
● Зачем это нужно?
● Какие есть проблемы реализации такого решения ?
● Почему php?
● Как это работает?
● Есть ли реальные примеры реализации этого?
3. Данная тема раскрывает способы решения задач связанных с
необходимостью предоставления интерфейса пользователю из вэба для
управления долгими здачами, которые выполняет сервер. Как правило
время таких задач может достигать минуты и более.
О чем речь?
4. ● предоставить обратную связь пользователю, сигнализирующую о
завершении операции без необходимости перезагружать страницу.
● иметь возможность создать удобный, отзывчивый интерфейс
пользователя без оглядки на время которое нужно для завершения
операции сервером.
● уметь делать это внутри Drupal системы без потери трудочасов на
заботу о данных окружения и их инициализации, которые необходимы
для корректной работы подсистемы Drupal’а
Зачем это нужно?
5. ● timeout сервера и timeout времени работы скрипта.
● протокол http не позволяет серверу отвечать клиенту без запроса.
● операция не должна блокировать работу пользователя.
● нужно сохранять контекст Drupal’а при использовании его
функционала.
Какие есть проблемы при реализации?
6. Почему PHP?
● Поддержка существующих крупных проектов, где весь функционал
обычно разрабатывается в контексте языка программирования php.
● На хостинге нет возможности установить необходимый софт для
решения другими способами этой проблемы (например сервер
поддерживающий протокол websocket и т.д.)
● Вопрос цены - дополнительные услуги как правило стоят денег и если
проблему можно решить проще с тем же качеством, то в
долговременной перспективе повышение ежемесячной платы
неоправданно.
7. Как это работает?
1. Запрос на сервер, php клонирует процесс (fork() Linux API).
2. Parent процесс моментально отвечает клиенту
3. Child процесс после завершения parent процесса становится
самостоятельным процессом, а также имеет CLI контекст.
4. Клиент переодически опрашивает сервер о готовности работы.
5. При завершении child помечает работу выполненной и записывает
свой результат в доступное для другого php процесса место.
6. Клиент (js скрипт) получает сигнал о готовности и отдает результат в
удобном виде конечному пользователю.
8. Fork
● Созданный процесс имеет те
же самые переменные и
окружение что и
родительский процесс.
● Новый процес создается
программно, поэтому
находится в CLI окружение
где другие настройки
сервера по timeout’у.
Решенные проблемы:
а) timeout б) Drupal контекст
в) блокировка пользователя
9. Js polling ● Клиент переодически
опрашивает сервер, как
только работа будет готова,
сервер вернет результат
● JS (браузер) сможет вернуть
ответ в удобном виде
конечному пользователю.
Решенные проблемы:
а) Обратная связь
б) http протокол (деньги)
10. Система годовых отчетов, с множеством фильтров и динамическим
расчетом данных из браузера. CSV файлы размером более 20 мегабайт.
Примеры реализации данной техники