Рубрика «Разработка веб-сайтов» - 204

Компактный сериализатор для кэша c использованием System.Reflection.Emit - 1

В современных сервисах без кэша никуда: доступ к данным в персистентной базе – дело долгое и затратное, поэтому добавление промежуточного хранилища для наиболее часто используемых данных значительно его ускоряет. Держать в кэше информацию можно самую разную и в разной форме: и строки, и списки, и состояние сессии, и многое другое. В данной статье речь пойдёт об одном из способов хранении в кэше «плоских» объектов, не имеющих вложенных классов и циклических ссылок.
Читать полностью »

image

Default cтратегия обнаружения изменений

По умолчанию Angular использует ChangeDetectionStrategy.Default стратегию обнаружения изменений.

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

Читать полностью »

Лес чуден, тёмен — глянь в глубину.
Но прежде я все долги верну…
И много миль, пока я усну,
Так много миль, пока я усну...

Роберт Фрост

image

Промисы — это одно из самых замечательных новшеств ES6. JavaScript поддерживает асинхронное программирование посредством функций обратного вызова и с помощью других механизмов. Однако при использовании функций обратного вызова мы сталкиваемся с некоторыми проблемами. Среди них — «ад коллбэков» и «пирамида ужаса». Промисы — это паттерн, который значительно упрощает асинхронное программирование на JS. Асинхронный код, написанный с использованием промисов, выглядит как синхронный и лишён проблем, связанных с коллбэками.

Материал, перевод которого мы сегодня публикуем, посвящён промисам и их практическому использованию. Он рассчитан на начинающих разработчиков, которым хочется разобраться с промисами.
Читать полностью »

До недавнего времени сайт vtb.ru вполне отвечал требованиям банка ВТБ. Но после присоединения Банка Москвы и ВТБ24 он стал охватывать только небольшой сегмент разросшегося массива продуктов и услуг. Собственные сайты Банка Москвы и ВТБ24 должны были со временем прекратить свое существование. Поэтому нам нужно было придумать, как соединить всю информацию, чтобы пользователь четко понимал, что происходит у него на дисплее. В этом посте мы расскажем, как решили эту задачу и пришли к обновленному vtb.ru, запущенному в начале года.

Как упаковать три больших банка в один сайт - 1
Читать полностью »

В этой статье я расскажу о тернистом пути обновления Angular с кастомным Webpack конфигом, который нашей команде пришлось пройти неделю назад. Возможно, наш опыт будет полезен тем, кто использует Angular со своим Webpack конфигом, а остальным — интересен как иллюстрация того, куда может завести современный frontend и как с этим жить.

Обновляем Angular до 6-ой версии в проекте без использования CLI - 1

Наша команда работает над интерфейсом BILLmanager 6. Дабы вы имели общее представление о проекте до обновления, сообщу, что количество файлов в нем уже перевалило за 67 тысяч. Архитектурно можно выделить два подпроекта: модуль регистрации и основной пользовательский интерфейс. По технологиям основу составляют компоненты, директивы и модули Angular, написанные на TypeScript. Есть несколько компонентов на Web components. Для стилизации мы используем SASS/SCSS и применяем CSS variables, чтобы темизировать приложение без перекомпиляции.
Читать полностью »

Последнее время, на фестивале РИТ++ докладов по серверному программированию меньше, чем по клиентскому. Связано ли это с популярностью noBackend подходов, общим смещением фокуса в сторону фронтенда, или просто традициями конференции, сказать трудно.

Тем не менее, в программе Backend Conf целых 25 докладов, и мы решили составить полный гид по ним всем. Потому что это все равно два потока, и все равно придется выбирать, куда податься.

Вся программа Backend Conf: от микросервисов до бесконечных данных - 1
Читать полностью »

Стандарт Web Authentication API: беспарольная аутентификация в вебе - 1

В марте 2018 года Альянс FIDO (Fast IDentity Online) и Консорциум W3C достигли важного рубежа: после двух лет разработки стандарт Web Authentication (WebAuthn) получил статус кандидата в рекомендации (CR) — это стабильная версия документа, в которую больше не планируется вносить принципиальных изменений. Обсуждение CR завершилось 1 мая.

Что дальше? Теперь очередь Google, Mozilla и Microsoft. Когда поддержку Web Authentication API независимо и совместимо реализуют в двух браузерах, стандарт получит статус предложения в рекомендации. К этому моменту будут рассмотрены все предложения от сообщества — и документ представят Консультативному Совету W3C для окончательного утверждения.
Читать полностью »

Сервисом Авито ежемесячно пользуется 32 миллиона человек. У нас публикуется более 400 тысяч новых объявлений в сутки, а обрабатывается 1,5 миллиона их различных версий. Чтобы контент на сайте был качественным и полезным пользователям, нужна модерация объявлений. И, конечно, у посетителей сайта должна быть возможность быстро решить любой возникший в процессе пользования Avito вопрос, обратившись в службу поддержки.

Разработка Авито ведётся в Москве, а сотрудники департамента клиентского сервиса и модерации работают в Санкт-Петербурге. Цель и тех, и других одна — делать использование сайта удобнее и проще для клиентов. Разработчики готовят новый функционал и развивают сервис, а сотрудники поддержки первыми узнают, если что-то идёт не так и принимают удар на себя. Иногда это ужасно тяжело. В этом посте я хочу рассказать о том, как мы в Авито синхронизируем работу команды разработки и службы поддержки и какие результаты это приносит.

Один день в роли сотрудника поддержки пользователей. Что это меняет? - 1

Читать полностью »

Существует новое API JavaScript, предназначенное для организации асинхронного доступа к буферу обмена с использованием спецификации, которая всё ещё находится на этапе разработки. До сих пор в веб-разработке стандартным способом копирования текста в буфер обмена является подход, предусматривающий использование метода document.execCommand. Основной недостаток этого подхода заключается в том, что это — синхронная блокирующая операция. Асинхронное API для работы с буфером обмена основано на промисах, одной из его задач является устранение этого недостатка. Оно призвано дать веб-разработчикам более простое в использовании унифицированное API для работы с буфером обмена. Кроме того, это API спроектировано с учётом возможности поддержки множества типов данных, а не только text/plain.

Работа с буфером обмена в JavaScript с использованием асинхронного API Clipboard - 1


Надо отметить, что сейчас новое API доступно только в Chrome 66+ и поддерживает лишь копирование и вставку обычного текста. Кроме того, работает оно только тогда, когда страница загружена по HTTPS или с localhost, и только в тех случаях, когда страница открыта в текущей активной вкладке браузера.
Читать полностью »

Автор материала, перевод которого мы сегодня публикуем, Нэш Вэйл, говорит, что недавно он занимался исследованием лендинг-страниц. В ходе работы он наткнулся на один сайт. Это был отличный, полезный ресурс. Однако, в ходе работы с ним, Нэш заметил, нечто неприятное.

Применение правил тригонометрии для создания качественной анимации - 1

Неестественная анимация
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js