Несомненно, 2018 - это год, когда Progressive Web Apps получат действительно широкое признание всех вовлеченных сторон: разработчиков браузеров, разработчиков веб-приложений, пользователей. Скорость и гладкость этого процесса в значительной степени зависят от того, насколько правильно мы, разработчики, используем возможности новых API. Основа всей идеи PWA - это Service Worker API, который отвечает за всю магию работы оффлайн, оптимизацию сетевых запросов, push-уведомления и массу других интересных и полезных вещей. В моей сессии, основанной на накопленном опыте разработки и поддержки PWA, мы пройдемся по списку: лучшие практики с примерами кода как избежать множества подводных камней последние новости с фронта поддержки PWA браузерами известные ограничения и как с ними жить масса полезной и практической информации о PWA
Онлайн-версия: https://slides.com/webmax/serviceworker-frontdays/
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
Performance is one of the key factors in determining a product's user experience. It is very important that the site loads quickly, is responsive and interactive, and the content remains stable.
I want to share why you need to monitor application performance, talk about Web Vitals metrics and tools for measuring them.
I also want to tell you about examples of optimizations that can positively affect performance and what results it can bring.
Как мы запустили offline-версию сайта RG.RU / Алексей Чернышев, Максим Чагин ...Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 15:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2575.html
Мы расскажем о построении работы действующей offline версии сайта на примере СМИ с миллионной аудиторией. О выборе стека технологий для решении поставленной задачи. О результатах эксплуатации с момента запуска.
В том числе: * Стратегия обновления данных в Service Worker * Проблемы и их решение при работе с оффлайн-средой * Сбор аналитики при отсутствии интернета
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
Сергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
Недавно запустили новый сайт Тинькофф.
У нас есть желание поделиться с аудиторией подходом и опытом разработки большого изоморфного приложения на React.js и Flux. Меньше чем за год мы разработали новый сайт и интернет-банк, заложив платформу на ближайшие несколько лет для быстрой разработки фронтенда новых продуктов.
Сейчас tinkoff.ru насчитывает более 3000 компонентов и сотни страниц.
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Ontico
Расскажу, как сделана статистика и аналитика скорости работы (UX) приложений badoo (web, mobile-web, ios, android, windows).
Общие концепции и примеры, что и как измерять.
Как собирать данные со 100% пользователей проекта и выдержать нагрузку.
Как из open-source решений собрать систему сбора и визуализации статистики для своего проекта.
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QAFest
Как известно, то, что не может быть измерено, не может быть улучшено.
В своем докладе я расскажу вам о том, как с помощью open source инструментов можно построить систему мониторинга производительности приложения, а также представить полученные данные в доступной и наглядной форме. А технология контейнеров Docker поможет сделать это максимально быстро и просто.
"Web Vitals monitoring & optimizations", Erik HimiranovFwdays
Performance is one of the key factors in determining a product's user experience. It is very important that the site loads quickly, is responsive and interactive, and the content remains stable.
I want to share why you need to monitor application performance, talk about Web Vitals metrics and tools for measuring them.
I also want to tell you about examples of optimizations that can positively affect performance and what results it can bring.
Как мы запустили offline-версию сайта RG.RU / Алексей Чернышев, Максим Чагин ...Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 6 июня, 15:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2575.html
Мы расскажем о построении работы действующей offline версии сайта на примере СМИ с миллионной аудиторией. О выборе стека технологий для решении поставленной задачи. О результатах эксплуатации с момента запуска.
В том числе: * Стратегия обновления данных в Service Worker * Проблемы и их решение при работе с оффлайн-средой * Сбор аналитики при отсутствии интернета
Архитектура кода нового 2ГИС Web API или куда мы дели MVCDevDay
Сергей Коржнев
Архитектор версии 1.4 2ГИС Web API
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
Тезисы:
● Как организован код в старой версии.
● Вдумчиво смотрим, как мы используем Yii, хватаемся за голову и клавиатуру. Там отрезаем, тут пришиваем, и вуаля!
● Ну и делаем выводы, как мы забороли две классические проблемы программирования: борьба с дублированием кода и сложностью системы.
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
Недавно запустили новый сайт Тинькофф.
У нас есть желание поделиться с аудиторией подходом и опытом разработки большого изоморфного приложения на React.js и Flux. Меньше чем за год мы разработали новый сайт и интернет-банк, заложив платформу на ближайшие несколько лет для быстрой разработки фронтенда новых продуктов.
Сейчас tinkoff.ru насчитывает более 3000 компонентов и сотни страниц.
Реалтайм статистика скорости работы нативных и веб-приложений у реальных поль...Ontico
Расскажу, как сделана статистика и аналитика скорости работы (UX) приложений badoo (web, mobile-web, ios, android, windows).
Общие концепции и примеры, что и как измерять.
Как собирать данные со 100% пользователей проекта и выдержать нагрузку.
Как из open-source решений собрать систему сбора и визуализации статистики для своего проекта.
QA Fes 2016. Александр Неделяев. Система мониторинга производительности своим...QAFest
Как известно, то, что не может быть измерено, не может быть улучшено.
В своем докладе я расскажу вам о том, как с помощью open source инструментов можно построить систему мониторинга производительности приложения, а также представить полученные данные в доступной и наглядной форме. А технология контейнеров Docker поможет сделать это максимально быстро и просто.
Система мониторинга производительности своими руками (QA Fest 2016)Alexander Nedeliaev
Как известно, то, что не может быть измерено, не может быть улучшено.
В своем докладе я расскажу вам о том, как с помощью open source инструментов можно построить систему мониторинга производительности приложения, а также представить полученные данные в доступной и наглядной форме. А технология контейнеров Docker поможет сделать это максимально быстро и просто.
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
Роман Дворнов (Avito)
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
После докладов мы проведём дискуссионную панель на тему "Организация системы компонент", в которой примут участие докладчики, а также приглашенные эксперты.
About Spring in pictures.
Spring is the most popular application development framework for enterprise Java. Millions of developers around the world use Spring Framework to create high performing, easily testable, reusable code.
Spring framework is an open source Java platform and it was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003.
Spring is lightweight when it comes to size and transparency. The basic version of spring framework is around 2MB.
JPoint 2017 - Where is my service, dude?Viet Nguyen
How to replace the wheel of a car on the go? How to change the gear in the mechanism, so that everything does not break? And if at the same time the remaining gears are constantly falling off? And the mechanism is on fire? And you in hell?
In this talk, I will show how to update Java-microservices without unavailability for customers.
We will touch many different tools, such as HAProxy, Ansible, Vegeta, Mesos / Marathon, Ribbon / Eureka; there will be loads of configs and a bottomless ocean of pain of distributed systems, into which we will consistently sink.
Владимир Еремин. Extending Openstack. PyCon Belarus 2015Alina Dolgikh
OpenStack назван одним из лучших open source проектов (по версии http://opensource.com/business/14/12/top-10-open-source-projects-2014) и написан полностью на Python. OpenStack уже включает в себя целую кучу готовых к использованию батареек, но если есть необходимость добавить что-то свое -- вы можете это сделать без изменения базового кода, просто написав собственное расширение. Я расскажу, что такое OpenStack и что он умеет из коробки, какие возможности расширения своей функциональности предоставляет эта платформа и как мы это используем у себя в уютненьком Яндексе.
Аналитика мобильного проекта — проверяй и доверяй / Александр Лукин (Yandex A...Ontico
"А во Flurry пользователей больше!"... Пожалуй, каждый проект сталкивался с отличающимися значениями метрик в разных платформах аналитики. А что, если эти метрики являются для нас ключевыми? По каким отчетам ориентироваться, принимая решение?
- Поделимся опытом AppMetrica — за полтора года разработки собственной системы аналитики мы прошли все стадии принятия неизбежного.
- Расскажем про отличия в расчетах разных платформ аналитики и чем они обусловлены.
- Поделимся опытом сотрудничества с продуктовыми командами разных Яндекс.Приложений, благодаря которым мы выработали собственный подход к расчету основных метрик и можем сказать, что такое "сессия" и кто такой "пользователь".
- Разберем сценарии, когда ни один из готовых подходов не подходит.
Deep Dive в онтологию систем мобильной аналитики — как сделать свою и начать ей доверять.
Рано или поздно возникает необходимость в собственных инструментах по разным причинам: либо не хватает готовых, либо есть какая-то особенность в проекте. Разработка инструментов, работающих в браузере, является непростой задачей. Самое сложное — чтобы они умели работать удаленно, вне страницы. Это многих пугает — нужно много сделать и во многом разобраться. Но если большая часть проблем уже решена, и можно сосредоточиться лишь на основной функции инструмента? Что если такие инструменты смогут работать в произвольном WebView, будь оно встроено в браузер, редактор или другое приложение на любом устройстве? Доклад про удалённые инструменты: какие есть сложности и как их обойти, как перестать бояться и начать делать инструменты под свои задачи и технологический стек.
Evolution of web-project requires scalable architecture and scalable development process. In my presentation (in Russian): different techniques, how to achieve this if talking about Perl-based web project.
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
It's quite ironic that to interact with the most advanced AI in our history - Large Language Models: ChatGPT, etc. - we must use human language, not programming one. But how to get the most out of this dialogue i.e. how to create robust and efficient prompts so AI returns exactly what's needed for your solution on the first try? After my session, you can add the Junior (at least) Prompt Engineer skill to your CV: I will introduce Prompt Engineering as an emerging discipline with its own methodologies, tools, and best practices. Expect lots of examples that will help you to write ideal prompts for all occasions.
This session is based on my research and experiments in Prompt Engineering and is 100% relevant for cloud developers who investigate adding some LLM-powered features to their solutions. It's a guide to building proper prompts for AI to get desired results fast and cost-efficient.
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...Maxim Salnikov
Have you been in the situation where you need to remember what is this code written by you some time ago about? Not even saying about you trying to understand someone else's code? GitHub Copilot Chat is a new way to code, where you can write code, fix bugs, write tests, and explain code to yourself and others in a chat window in a sidebar or inline. In this session, I'll demonstrate how GitHub Copilot Chat takes developer experience to the next level and how it can help you be more productive in your day-to-day work.
More Related Content
Similar to [Russian] Сервис-воркеры: используем накопленные знания для светлого будущего PWA
Система мониторинга производительности своими руками (QA Fest 2016)Alexander Nedeliaev
Как известно, то, что не может быть измерено, не может быть улучшено.
В своем докладе я расскажу вам о том, как с помощью open source инструментов можно построить систему мониторинга производительности приложения, а также представить полученные данные в доступной и наглядной форме. А технология контейнеров Docker поможет сделать это максимально быстро и просто.
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Превышаем скоростные лимиты с Angular 2 / Алексей Охрименко (IPONWEB)Ontico
* Почему Angular 2 такой быстрый и как его ускорить еще сильнее?
* Как работает Change Detection механизм и как им управлять?
* Зачем нам Zone.js и Функциональное Реактивное Программирование?
* Как работать с Redux и Mobx в Angular 2 и что можно от этого выиграть?
Об этом и ряде других вещей вы узнаете из этого доклада.
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
Роман Дворнов (Avito)
Фронтенд усложняется с каждым днем, и уже не представить жизнь разработчика без инструментов. Инструментов становится все больше, но нельзя сказать, что их достаточно. Если у вас собственный стек или технологическое решение, вам рано или поздно потребуется сделать свой инструмент. Это не так просто! Особенно если вы захотите интегрировать его интерфейс в браузерные Developer Tools, IDE, редакторы или открыть их на другом устройстве. Добавьте сюда проблему версионирования и другие сложности, и вам покажется, что задача неподъемная.
Но есть хорошая новость! Большинство из этих проблем решает Rempl — платформа для создания и использования удаленных инструментов (на самом деле не только инструментов). Сделаем небольшой обзор Rempl: что это, зачем нужно, какие проблемы решает. А также посмотрим примеры готовых решений, построенных на Rempl.
После докладов мы проведём дискуссионную панель на тему "Организация системы компонент", в которой примут участие докладчики, а также приглашенные эксперты.
About Spring in pictures.
Spring is the most popular application development framework for enterprise Java. Millions of developers around the world use Spring Framework to create high performing, easily testable, reusable code.
Spring framework is an open source Java platform and it was initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003.
Spring is lightweight when it comes to size and transparency. The basic version of spring framework is around 2MB.
JPoint 2017 - Where is my service, dude?Viet Nguyen
How to replace the wheel of a car on the go? How to change the gear in the mechanism, so that everything does not break? And if at the same time the remaining gears are constantly falling off? And the mechanism is on fire? And you in hell?
In this talk, I will show how to update Java-microservices without unavailability for customers.
We will touch many different tools, such as HAProxy, Ansible, Vegeta, Mesos / Marathon, Ribbon / Eureka; there will be loads of configs and a bottomless ocean of pain of distributed systems, into which we will consistently sink.
Владимир Еремин. Extending Openstack. PyCon Belarus 2015Alina Dolgikh
OpenStack назван одним из лучших open source проектов (по версии http://opensource.com/business/14/12/top-10-open-source-projects-2014) и написан полностью на Python. OpenStack уже включает в себя целую кучу готовых к использованию батареек, но если есть необходимость добавить что-то свое -- вы можете это сделать без изменения базового кода, просто написав собственное расширение. Я расскажу, что такое OpenStack и что он умеет из коробки, какие возможности расширения своей функциональности предоставляет эта платформа и как мы это используем у себя в уютненьком Яндексе.
Аналитика мобильного проекта — проверяй и доверяй / Александр Лукин (Yandex A...Ontico
"А во Flurry пользователей больше!"... Пожалуй, каждый проект сталкивался с отличающимися значениями метрик в разных платформах аналитики. А что, если эти метрики являются для нас ключевыми? По каким отчетам ориентироваться, принимая решение?
- Поделимся опытом AppMetrica — за полтора года разработки собственной системы аналитики мы прошли все стадии принятия неизбежного.
- Расскажем про отличия в расчетах разных платформ аналитики и чем они обусловлены.
- Поделимся опытом сотрудничества с продуктовыми командами разных Яндекс.Приложений, благодаря которым мы выработали собственный подход к расчету основных метрик и можем сказать, что такое "сессия" и кто такой "пользователь".
- Разберем сценарии, когда ни один из готовых подходов не подходит.
Deep Dive в онтологию систем мобильной аналитики — как сделать свою и начать ей доверять.
Рано или поздно возникает необходимость в собственных инструментах по разным причинам: либо не хватает готовых, либо есть какая-то особенность в проекте. Разработка инструментов, работающих в браузере, является непростой задачей. Самое сложное — чтобы они умели работать удаленно, вне страницы. Это многих пугает — нужно много сделать и во многом разобраться. Но если большая часть проблем уже решена, и можно сосредоточиться лишь на основной функции инструмента? Что если такие инструменты смогут работать в произвольном WebView, будь оно встроено в браузер, редактор или другое приложение на любом устройстве? Доклад про удалённые инструменты: какие есть сложности и как их обойти, как перестать бояться и начать делать инструменты под свои задачи и технологический стек.
Evolution of web-project requires scalable architecture and scalable development process. In my presentation (in Russian): different techniques, how to achieve this if talking about Perl-based web project.
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
It's quite ironic that to interact with the most advanced AI in our history - Large Language Models: ChatGPT, etc. - we must use human language, not programming one. But how to get the most out of this dialogue i.e. how to create robust and efficient prompts so AI returns exactly what's needed for your solution on the first try? After my session, you can add the Junior (at least) Prompt Engineer skill to your CV: I will introduce Prompt Engineering as an emerging discipline with its own methodologies, tools, and best practices. Expect lots of examples that will help you to write ideal prompts for all occasions.
This session is based on my research and experiments in Prompt Engineering and is 100% relevant for cloud developers who investigate adding some LLM-powered features to their solutions. It's a guide to building proper prompts for AI to get desired results fast and cost-efficient.
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...Maxim Salnikov
Have you been in the situation where you need to remember what is this code written by you some time ago about? Not even saying about you trying to understand someone else's code? GitHub Copilot Chat is a new way to code, where you can write code, fix bugs, write tests, and explain code to yourself and others in a chat window in a sidebar or inline. In this session, I'll demonstrate how GitHub Copilot Chat takes developer experience to the next level and how it can help you be more productive in your day-to-day work.
Building Generative AI-infused apps: what's possible and how to startMaxim Salnikov
In this session, we'll explore different scenarios where the features of Generative AI can provide added value to an IT solution. We'll also learn how to begin developing your own application powered by AI. Using Azure OpenAI service as an illustration, we'll examine the various APIs it offers, review the best practices of Prompt Engineering, explore different ways to incorporate your own data into the process, and take a glance at several tools and resources that make the developer experience more seamless.
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
It's quite ironic that to interact with the most advanced AI in our history - Large Language Models: ChatGPT, etc. - we must use human language, not programming one. But how to get the most out of this dialogue i.e. how to create robust and efficient prompts so AI returns exactly what's needed for your solution on the first try? After my session, you can add the Junior (at least) Prompt Engineer skill to your CV: I will introduce Prompt Engineering as an emerging discipline with its own methodologies, tools, and best practices. Expect lots of examples that will help you to write ideal prompts for all occasions.
ChatGPT and not only: how can you use the power of Generative AI at scaleMaxim Salnikov
Join this session to get all the answers about how ChatGPT and other LLM models can be applied to your current or future project. We'll start by putting in order all the terms - OpenAI, GPT-3, ChatGPT, Codex, Dall-E, etc. - and explain why Microsoft and Azure are often mentioned in this context. Then, we'll go through the main capabilities of the Azure OpenAI and respective usecases that might inspire you to either optimize your product or build a completely new one.
Using the power of OpenAI with your own data: what's possible and how to start?Maxim Salnikov
The top questions we get about ChatGPT-powered enterprise scenarios are all about using the company's own data as the basis for the responses. In this session, we'll explore various options starting from simply injecting data into the prompt to the advanced architectures with multiple Cognitive Services chained together and fine-tuning models - all for you to choose the flexible, scalable, and cost-efficient solution that works the best for you.
If your code could speak, what would it tell you? Let GitHub Copilot Chat hel...Maxim Salnikov
Have you been in the situation where you need to remember what is this code written by you some time ago about? Not even saying about you trying to understand someone else's code? GitHub Copilot Chat is a new way to code, where you can write code, fix bugs, write tests, and explain code to yourself and others in a chat window in a sidebar or inline. In this session, I'll demonstrate how GitHub Copilot Chat takes developer experience to the next level and how it can help you be more productive in your day-to-day work.
Prompt Engineering - an Art, a Science, or your next Job Title?Maxim Salnikov
It's quite ironic that to interact with the most advanced AI in our history - Large Language Models: ChatGPT, etc. - we must use human language, not programming one. But how to get the most out of this dialogue i.e. how to create robust and efficient prompts so AI returns exactly what's needed for your solution on the first try? After my session, you can add the Junior (at least) Prompt Engineer skill to your CV: I will introduce Prompt Engineering as an emerging discipline with its own methodologies, tools, and best practices. Expect lots of examples that will help you to write ideal prompts for all occasions.
This session is based on my research and experiments in Prompt Engineering and is 100% relevant for cloud developers who investigate adding some LLM-powered features to their solutions. It's a guide to building proper prompts for AI to get desired results fast and cost-efficient.
ChatGPT and not only: How to use the power of GPT-X models at scaleMaxim Salnikov
Join this session to get all the answers about how ChatGPT and other GPT-X models can be applied to your current or future project. First, we’ll put in order all the terms – OpenAI, GPT-X, ChatGPT, Codex, Dall-E, etc., and explain why Microsoft and Azure are often mentioned in this context. Then, we’ll go through the main capabilities of the Azure OpenAI and respective usecases that might inspire you to either optimize your product or build a completely new one. During this session, we’ll keep our playground – Azure OpenAI Studio – open to illustrate these capabilities with live demos!
How Azure helps to build better business processes and customer experiences w...Maxim Salnikov
Artificial Intelligence is not the future, it is NOW. Cloud technology empowers developers and technology leaders to benefit from AI effectively and responsibly with the models and tools they need. In this session, we go through the portfolio of Azure AI services and run some demos to showcase how AI can improve daily life, safety, productivity, accessibility, and business outcomes.
In this session, you'll get all the answers about how ChatGPT and other GPT-X models can be applied to your current or future project. First, we'll put in order all the terms – OpenAI, GPT-3, ChatGPT, Codex, Dall-E, etc., and explain why Microsoft and Azure are often mentioned in this context. Then, we'll go through the main capabilities of the Azure OpenAI and respective usecases that might inspire you to either optimize your product or build a completely new one.
Finally, Web Push API is available in all major browsers and platforms. It's a feature that can take your users' experience to the next level or... ruin it! In my session, after a tech intro about how Web Push works, we'll explore implementing smart permission request dialogues, various types of notifications themselves, and communicating with your app for more sophisticated scenarios - all done right, with the best possible UX.
What is the current state of the Angular framework? What new features are there in the latest version and on the roadmap? Let's have a bird-eye view of the framework to make informed technical decisions, to make sure that we use the latest best practices, and to look into the future of our Angular projects with confidence.
Azure cloud for the web frontend developersMaxim Salnikov
It’s impossible to reason about modern web application without mentioning its front-end part – extensive, feature-rich, performant, sometimes with quite sophisticated structure and build process, but after all not requiring server-side code to construct it in the runtime, i.e. static. In the Azure cloud, we now have a special service for this kind of apps (including both classic SPAs and statically generated ones), empowering developers to focus on the business logic rather than the infrastructure that builds and hosts them.
In my technical session & demo, let's go through the full development flow: we scaffold a web front-end app, push it to the GitHub, set up Azure Static Web App service, enjoy the fully automatic build, and deploy to global high-availability hosting - all in a few minutes!
- Веб доказал свою применимость в качестве платформы для создания приложений и сервисов практически любого масштаба и направленности. - Новые веб-API позволяют полноценно использовать функциональность устройств, так что клиентской части веб-приложений больше незачем себя ограничивать рамками браузера. - Набор API, спецификаций и подходов к разработке, позволяющий создавать практически “нативные” приложения для любой платформы, используя навыки веб-разработчика, получил название PWA (Progressive Web Applications). - Сегодняшняя поддержка PWA всеми основными разработчиками браузеров говорит о том, что это может быть одним из главных векторов развития и распространения веб-технологий. - В выигрыше оказываются и разработчики (единая кодовая база), и пользователи (легкие, быстрые, функциональные приложения).
Онлайн-версия: https://slides.com/webmax/pwa-rif/
Securing Connected Cars Requires Digital IdentityMaxim Salnikov
A modern connected vehicle is no longer just a car with a built-in wireless access point - each connected car is a rolling IoT ecosystem. So how do you ensure security and privacy for customers and manufacturers of the connected car?
How to Make Your IoT Devices Secure, Act Autonomously & Trusted SubjectsMaxim Salnikov
The ForgeRock Identity Platform and Edge security solution can turn any IoT device into a secure, trusted active subject enrolled and on-boarded from a hardware based root of trust to become an autonomous entity in your business relationship eco system represented by a digital twin.
3. “ Что мы узнали за 3 года использования
PWA?
И как жить дальшеИ как жить дальше
4. Максим СальниковМаксим Сальников
@webmaxru@webmaxru
Google Dev Expert, Microsoft MVPGoogle Dev Expert, Microsoft MVP
Организатор Mobile / Web /Организатор Mobile / Web / PWA PWA
митапов в Осло и Лондонемитапов в Осло и Лондоне
Организатор конференцийОрганизатор конференций
Mobile Era и ngVikingsMobile Era и ngVikings
“ Full-stack разработчик "приложений
из будущего" в ForgeRock
8. Еще одно определение PWAЕще одно определение PWA
PWA используютPWA используют современные веб-APIсовременные веб-API вкупевкупе
со стратегией прогрессивного улучшениясо стратегией прогрессивного улучшения
для созданиядля создания кросс-платформенныхкросс-платформенных
приложений.приложений.
9. Еще одно определение PWAЕще одно определение PWA
PWA используютPWA используют современные веб-APIсовременные веб-API вкупевкупе
со стратегией прогрессивного улучшениясо стратегией прогрессивного улучшения
для созданиядля создания кросс-платформенныхкросс-платформенных
приложений.приложений.
Эти приложения запускаются везде и обладают
рядом характеристик, обеспечивающих
пользователей преимуществами, аналогичными
тем, что доступны в нативных решениях.
19. Онлайн больше не обязателенОнлайн больше не обязателен
Новые преимущества?Новые преимущества?
20. Онлайн больше не обязателенОнлайн больше не обязателен
Получение уведомленийПолучение уведомлений
Новые преимущества?Новые преимущества?
21. Онлайн больше не обязателенОнлайн больше не обязателен
Масса других возможностейМасса других возможностей
Получение уведомленийПолучение уведомлений
Новые преимущества?Новые преимущества?
22. Онлайн больше не обязателенОнлайн больше не обязателен
Масса других возможностейМасса других возможностей
Получение уведомленийПолучение уведомлений Service Worker API
Новые преимущества?Новые преимущества?
}}
23. Онлайн больше не обязателенОнлайн больше не обязателен
Масса других возможностейМасса других возможностей
Получение уведомленийПолучение уведомлений Service Worker API
Web App Manifest
Новые преимущества?Новые преимущества?
Полноценное приложениеПолноценное приложение
}}
32. ИнструментарийИнструментарий
Service Worker APIService Worker API
Cache APICache API
IndexedDBIndexedDB
FetchFetch
Clients APIClients API
Broadcast Channel APIBroadcast Channel API
Push APIPush API
Notifications APINotifications API
33. ИнструментарийИнструментарий
Service Worker APIService Worker API
Cache APICache API
IndexedDBIndexedDB
FetchFetch
Clients APIClients API
Broadcast Channel APIBroadcast Channel API
Push APIPush API
Notifications APINotifications API
Local StorageLocal Storage
Session StorageSession Storage
XMLHttpRequestXMLHttpRequest
DOMDOM
34. ИнструментарийИнструментарий
Service Worker APIService Worker API
Cache APICache API
IndexedDBIndexedDB
FetchFetch
Clients APIClients API
Broadcast Channel APIBroadcast Channel API
Push APIPush API
Notifications APINotifications API
Local StorageLocal Storage
Session StorageSession Storage
XMLHttpRequestXMLHttpRequest
DOMDOM
74. Обновление и обход кеша HTTPОбновление и обход кеша HTTP
Cache-Control: no-cache
Сервис-воркерСервис-воркер
Побайтное сравнение, нужно использоватьПобайтное сравнение, нужно использовать
версионностьверсионность
75. Обновление и обход кеша HTTPОбновление и обход кеша HTTP
Cache-Control: no-cache
Ресурсы, импортированные через importScripts() Ресурсы, импортированные через importScripts()
Сервис-воркерСервис-воркер
Побайтное сравнение, нужно использоватьПобайтное сравнение, нужно использовать
версионностьверсионность
navigator.serviceWorker.register(`/sw.js?v=${VERSION}`);
Контент не проверяется, нужно менятьКонтент не проверяется, нужно менять названиеназвание
ресурсаресурса
76. Обновление и обход кеша HTTPОбновление и обход кеша HTTP
Cache-Control: no-cache
Ресурсы, импортированные через importScripts() Ресурсы, импортированные через importScripts()
Сервис-воркерСервис-воркер
https://github.com/w3c/ServiceWorker/issues/893
Побайтное сравнение, нужно использоватьПобайтное сравнение, нужно использовать
версионностьверсионность Спецификация
Спецификация
обновлена
обновлена
navigator.serviceWorker.register(`/sw.js?v=${VERSION}`);
Контент не проверяется, нужно менятьКонтент не проверяется, нужно менять названиеназвание
ресурсаресурса
89. https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
Chrome <6% своб. пространства
Firefox <10% своб. пространства
Safari <50MB
IE10 <250MB
Edge Зависит от размера диска
if ('storage' in navigator && 'estimate' in navigator.storage) {
navigator.storage.estimate().then(({usage, quota}) => {
console.log(`Using ${usage} out of ${quota} bytes.`);
});
}
Объем хранилищ ограниченОбъем хранилищ ограничен
91. Кеширование ресурсов сКеширование ресурсов с
других адресовдругих адресов
ПриготовьтесьПриготовьтесь
к непрозрачностик непрозрачности
Совет #5Совет #5
96. Ограничения opaque ответовОграничения opaque ответов
СвойствоСвойство status всегда равно нулюstatus всегда равно нулю и не зависит от и не зависит от
того, успешен запрос или неттого, успешен запрос или нет
https://stackoverflow.com/questions/39109789/what-limitations-apply-to-opaque-responses/39109790#39109790
97. Ограничения opaque ответовОграничения opaque ответов
СвойствоСвойство status всегда равно нулюstatus всегда равно нулю и не зависит от и не зависит от
того, успешен запрос или неттого, успешен запрос или нет
Методы Cache APIМетоды Cache API add()add()//addAll()addAll() сработают аварийносработают аварийно,,
если статус хотя бы одного из ответов не находится весли статус хотя бы одного из ответов не находится в
диапазоне 2XXдиапазоне 2XX
https://stackoverflow.com/questions/39109789/what-limitations-apply-to-opaque-responses/39109790#39109790
101. Решение для no-corsРешение для no-cors
const noCorsRequest =
new Request('https://workboxjs.org/offline-ga.svg', {
mode: 'no-cors'
});
fetch(noCorsRequest)
.then(response => cache.put(noCorsRequest, response));
117. Генерация и валидация Web App ManifestГенерация и валидация Web App Manifest
Генерация сервис-воркераГенерация сервис-воркера
Генерация графики (иконки)Генерация графики (иконки)
https://www.pwabuilder.com/
118. Генерация и валидация Web App ManifestГенерация и валидация Web App Manifest
Генерация сервис-воркераГенерация сервис-воркера
Генерация графики (иконки)Генерация графики (иконки)
Генерация нативных проектов дляГенерация нативных проектов для
размещения в магазиныразмещения в магазины
приложенийприложений
https://www.pwabuilder.com/
125. Только послеТолько после явногоявного запроса от пользователязапроса от пользователя
ПодпискаПодписка
126. Только послеТолько после явногоявного запроса от пользователязапроса от пользователя
Очевидная и простаяОчевидная и простая отпискаотписка
ПодпискаПодписка
127. Только послеТолько после явногоявного запроса от пользователязапроса от пользователя
Очевидная и простаяОчевидная и простая отпискаотписка
ПодпискаПодписка
133. УведомленияУведомления
Рассмотреть всеРассмотреть все альтернативныеальтернативные варианты. варианты.
Уведомление – крайний случай.Уведомление – крайний случай.
Не для массовых, но дляНе для массовых, но для индивидуальныхиндивидуальных
сообщенийсообщений
143. СодержимоеСодержимое
Не повторяйтесь.Не повторяйтесь. Места и так мало. Места и так мало.
ОтправляйтеОтправляйте непосредственно информацию,непосредственно информацию, а не а не
факт ее поступленияфакт ее поступления
ПродумайтеПродумайте призыв к действиюпризыв к действию
160. Периодическая синхронизацияПериодическая синхронизация
ОграничениеОграничение временным интервалом, состоянием временным интервалом, состоянием
батареи, режимом подключения к сетибатареи, режимом подключения к сети
ТребуетТребует явного разрешенияявного разрешения со сторонысо стороны
пользователяпользователя
Не требуется поддержкиНе требуется поддержки со стороны серверасо стороны сервера
161. Периодическая синхронизацияПериодическая синхронизация
ОграничениеОграничение временным интервалом, состоянием временным интервалом, состоянием
батареи, режимом подключения к сетибатареи, режимом подключения к сети
ТребуетТребует явного разрешенияявного разрешения со сторонысо стороны
пользователяпользователя
Не требуется поддержкиНе требуется поддержки со стороны серверасо стороны сервера
Финальное решение по запуску –Финальное решение по запуску – за браузеромза браузером