Русский
Русский
English
Статистика
Реклама

Веб-приложения

PWA не для всех

20.09.2020 22:11:04 | Автор: admin

В комментах к моей предыдущей статье о service worker'ах была высказана мысль, что PWA на десктопах - вещь малополезная. Примерно полгода назад я разбирался с тем, как прикрутить PWA Vue Storefront к магазинам на платформе Magento и мне понравилось, как шустро крутилось в моём компьютере это приложение по сравнению с оригинальным web-интерфейсом. Мой персональный опыт показывал, что PWA на десктопах имеет неплохую перспективу, но дальнейшее углубление в тему показало, что коллега @sumanai со своим отрицанием PWA на десктопах был прав.

Offline

Какая основная "фишка" прогрессивных web-приложений?

Способность работать в режиме offline.

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

Ввод-вывод

По способу ввода ("сенсорный экран" против "клавиатура + мышь") и отображения информации (размер дисплея в дюймах) устройства можно разделить на две больших группы:

  • смартфоны и планшеты

  • ноутбуки и десктопы

Web-интерфейсы

Современные браузеры предлагают разнообразный API для web-приложений, большая часть которого работает для обеих групп устройств. Тем не менее вот эти три интерфейса актуальны именно для смартфонов/планшетов:

IndexedDB

Для "осознанного" кэширования запросов (например, на уровне service worker'ов) современные браузеры предоставляют Cache API, но основным хранилищем данных при работе в режиме offline является IndexedDB. Серверная база данных общего пользования (MySQL, Postgres, Oracle, MongoDB, ...) в этот момент заменяется базой данных персонального пользования (IndexedDB).

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

SEO

В моей статье "Влияние service worker'ов на web-приложения" я пришёл вот к такой схеме работы PWA:

При общении браузера с сервером возникают два потока информации:

  • статика: это код (HTML/CSS/JS) и медиа-файлы (в основном изображения), которые могут кэшироваться service worker'ом;

  • API: это пользовательские данные, которые так или иначе должны мигрировать между серверным хранилищем (DB) и персональным хранилищем (IndexedDB);

PWA - это прежде всего альтернатива native apps для мобильных устройств. Native apps также можно рассматривать с позиции, что статика (код + медиа) сворачивается в один пакет и распространяется через App Store или Google Play, а данные передаются между приложением и сервером через API (с учётом offline/online состояния подключения). И при этом никто не ожидает, что поисковики должны индексировать API-запросы native apps. От web-приложений же наоборот ждут, что любой адрес (страница) на сервере должен иметь возможность быть собранным на стороне сервера, в том числе и для индексации поисковиками.

Резюме

PWA - это, в первую очередь, альтернатива native apps для мобильных устройств.

PWA должны обеспечивать работу в режиме offline, что сильно усложняет разработку клиентской части, но является бесполезным функционалом для десктопов с их стабильным online-режимом работы сети.

Особенности взаимодействия пользователя со смартфоном/планшетом (ввод-вывод, гео-позиционирование) достаточно сильно отличаются от особенностей взаимодействия пользователя с десктопом/ноутбуком. Создание универсального решения ("амфибии") добавляет сложности по отношению к двум решениям - отдельно для смартфонов/планшетов и отдельно для ноутбуков/десктопов. Причём не столько с точки зрения кодирования, сколько с точки зрения UX.

PWA хорошо подходят для мобильных пользователей, но очень плохо подходят для поисковых роботов, что бы там себе ни думал по этому поводу Google.

Подробнее..

Нужен ли еще один сервис (opensource)? (в конце опрос)

25.08.2020 18:19:47 | Автор: admin
Здравствуйте! Давайте знакомиться.

Я senior frontend developer.
Хотел бы выяснить у читателей, насколько нужен таким же разработчикам, как я, еще один фриланс сервис. Объясню ситуацию: недавно я попробовал взять несколько проектов на заказ для дополнительного заработка. Конечно же, столкнулся с тем, что заказы получается взять только тем пользователям, у которых готовое и красивое портфолио и приличный опыт на фрилансе.

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

Из песочницы Проектирование сайта гарантия успешной его реализации. Личный опыт

29.08.2020 20:22:07 | Автор: admin

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


Был период, когда разрабатывал сайты в небольшой веб-студии в Минске. Верстал и программировал лендинги, интернет-магазины, CRM и ERP системы. Полноценного этапа проектирования сайта в веб-студии не было по понятным причинам дополнительные затраты.


Клиенты обращались со своими техническими заданиями, в которых каждый описывал свой проект как мог. Такого технического задания хватало на то, чтобы понять проект и просчитать затраты. В результате такой подход приводил к ряду проблем, которые сыпались как домино.


Долгие согласования


Зачастую клиент хорошо понимает ожидаемый результат, но подробные детали и четкие требования к готовому варианту описывает недостаточно детально со стороны технической разработки.


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


Срыв графика работ, увеличение багов


Новые уточнения приводили к необходимости править код, проводить рефакторинг отдельных модулей. Появлялись затраты на новые тесты модулей и багфиксинг.


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


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


Пришёл к выводу, что экономия времени и ресурсов на проектировании сайта равно головная боль и стресс в дальнейшем для программиста, срыв сроков и нервы для клиента.


Позже, уже в моей компании EZTec, внедрили стадию проектирования сайта. Регулярно дорабатываем ее и сейчас: собираем обратную связь от программистов и менеджеров, узнаем что было удобно, что нет. Таким образом оптимизируем этап для каждого вида программного продукта, учитывая нюансы и сложности его разработки.


Проектирование сайта


Описание


При заполнении брифинга и общения с менеджером, клиент в удобной форме описывает свой проект с точки зрения пользы и требований. Менеджер формирует полное описание проекта.


Архитектура


Утверждаются инструменты технической реализации: сервер, язык программирования, фреймворки, база данных.


Техническое задание


Архитектор формирует документ на основе описания проекта, целей, требований и технической реализации. Пример технического задания.


Прототипирование


Разрабатываются макеты интерфейса и прототипы страниц сайта.


Контроль


Проект-менеджер контролирует на соответствие требованиям и описанию проекта.


Утверждение


Заказчик проверяет техническое задание, вносятся правки.


В среднем у нас уходит 5-10 дней на полное проектирование сайта. Столь небольшое временное вложение дает клиентам возможность протестировать нас, получить представление о ответственности и организованности до начала основных работ.


Полный этап проектирования сайта критически важен для проектов, где риски и цена ошибки возрастают. Например, маркетплейсы, новостные порталы, агрегаторы, CRM и ERP системы. Такие проекты можно сделать за квартал, но без проектирования они могут делаться почти год или так и не дойти до первого релиза на продакшен.


Для тех, кто хочет больше разобраться в процессе, рекомендую:


  • Информационная архитектура в Интернете. Проектирование масштабных сайтов. Луис Розенфельд, Питер Морвиль
  • Разработка требований к программному обеспечению. Карл Вигерс, Джой Битти
  • Архитектура корпоративных программных приложений. Мартин Фаулер.

Проще с ластиком у чертежной доски, чем с кувалдой на стройке. Фрэнк Ллойд Райт
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru