Обновить
256K+

Веб-разработка *

Делаем веб лучше

357,88
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

«GDPR 2.0»: чего ждать от ePrivacy Regulation

Время на прочтение4 мин
Охват и читатели6.6K
В нашем блоге мы уже рассказывали об обработке персональных данных в Беларуси, регулировании в США и Европе. Обсудим еще один европейский законопроект, который будет своеобразным дополнением к GDPR и ужесточит правила работы с cookies и ПД.

Читать дальше →

Почему у React элементов есть свойство $$typeof?

Время на прочтение4 мин
Охват и читатели12K

О механизме React по предотвращению возможности инъекции JSON для XSS, и об избегании типовых уязвимостей.

Читать дальше →

Мелкий, но вредный UI интернет-магазина. Как испортить репутацию сразу всем товарам на сайте?

Время на прочтение2 мин
Охват и читатели15K
Представьте, что вы в интернет-магазине. В книжном. Выбираете книгу в подарок. Сами вы ее не читали, так что приходится полагаться на мнение других покупателей. Заходите на страницу, хотите посмотреть отзывы и видите вот такую шкалу.



Вы бы купили такую книгу?

Читать дальше →

Жизнь во Флаконе

Время на прочтение17 мин
Охват и читатели19K
Я работаю в коммерческой организации, но всегда считал, что бизнес должен делать что-то полезное для мира. Конечно, можно сказать, что продукты бизнеса – это и есть польза, но как-то язык не поворачивается.

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

Ну вот, сделали. Испытали на себе, убедились в полезности, выкладываем на всеобщее обозрение и всеобщее пользование. Бесплатно, разумеется. Сервис по управлению собственной жизнью.
Читать дальше →

Оптимизация Angular-приложений

Время на прочтение7 мин
Охват и читатели19K
Angular — это самый популярный фреймворк для разработки одностраничных веб-приложений, хотя это не значит, что Angular-приложения могут содержать в себе лишь одну страницу. С помощью этого фреймворка можно создавать и сайты, состоящие из десятков страниц. Последняя версия Angular, благодаря усилиям команды разработчиков и сообщества энтузиастов, хорошо оптимизирована. Однако когда речь заходит о конкретном приложении, нельзя забывать о некоторых вещах, которые влияют на его производительность.



В материале, перевод которого мы публикуем сегодня, будут раскрыты шесть направлений оптимизации Angular-приложений.
Читать дальше →

Разработка доступных интерфейсов

Время на прочтение16 мин
Охват и читатели10K
По данным Росстата 1 млн. человек имеют проблемы со зрением, начиная от астигматизма и заканчивая слепотой и с трудом могут пользоваться обычными сайтами. Попробуйте протестировать ваш ресурс на доступность: зажмурьте глаза, чтобы экран размылся и кликайте, вводите текст, переходите по страницам. Если привычные действия неудобно выполнять, то можно задуматься над доступностью.

Хорошие примеры доступных сайтов у Пенсионного Фонда и Госуслуг. Чтобы ваш ресурс стал доступным, такой масштабной работы, как для ПФР, не требуется. Достаточно применить три принципа, добавить в закладки два сайта с подробной документацией по разработке доступных сайтов и немного адаптировать рабочий процесс под новую парадигму. В результате ваши ресурсы перейдут на новую ступень: будут доступными и удобными для людей с ограниченными возможностями.

О том, как быстро и эффективно разрабатывать доступные ресурсы сегодняшняя расшифровка доклада Сергея Кригера на Frontend Conf.

Как мы улучшали конверсию платежной формы

Время на прочтение11 мин
Охват и читатели8K
Онлайн-платежи стали чем-то настолько же привычным, как и wi-fi дома и скоростной мобильный интернет. И они продолжают эволюционировать, все больше и больше услуг можно оплатить в пару кликов или из мобильных приложений, а тут еще и автоплатежи, напоминалки, контроль расходов и многое другое.

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



Меня зовут Георгий Коннов, я директор по развитию продуктов для электронной коммерции в QIWI, и сегодня я расскажу, как мы развивали платежную форму, которую любой магазин может оперативно подключить для приема платежей.

Под катом — о конверсии, мотивации пользователей, нашем протоколе, благотворительности и open source.
Читать дальше →

Imba: JavaScript-совместимый язык для быстрой работы с DOM

Время на прочтение7 мин
Охват и читатели13K
Imba — это опенсорсный язык программирования, созданный компанией Scrimba специально для разработки веб-приложений. Он компилируется в JavaScript и способен работать внутри существующей JS-экосистемы. Речь идёт, например, о Node.js, об npm, о Webpack.

Основная сильная сторона Imba заключается в том, что этот язык позволят создавать гораздо более быстрые приложения, чем те, которые основаны на библиотеках, применяющих технологию Virtual DOM, наподобие React и Vue. Рост производительности приложений достигается за счёт того, как Imba работает с обновлениями DOM. Подробности об этом можно почитать здесь.



Автор этого материала, сооснователь проекта Scrimba, говорит, что пользуется Imba уже несколько лет. По его словам, писать на этом языке — сплошное удовольствие, так как он, в сравнении с JavaScript, отличается более чистым синтаксисом, что улучшает читабельность кода.

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

Кратко о redux-saga каналах

Время на прочтение4 мин
Охват и читатели24K

Добрый день, дорогие друзья.


В данной статье хотел бы максимально просто и кратко описать механизм redux-saga каналов, на примерах приближенных к реальным кейсам, надеюсь у меня это вышло.


Итак, начнем.

Читать дальше →

Прямой эфир: инфраструктура фронтенда

Время на прочтение3 мин
Охват и читатели8.7K

Всем привет! Меня зовут Роман Дворнов, я Lead Engineer в команде Frontend Architecture в Авито. Мы занимаемся созданием и развитием технической платформы фронтенда, чтобы другие команды могли быстрее создавать интерфейсы и продукты. Мы с коллегами запланировали серию онлайнов, в которых будем обсуждать актуальные вопросы разработки клиентской части.


11 декабря на нашем ютуб-канале пройдёт первый прямой эфир. Обсудим инфраструктуру фронтенда. В дискуссии будут участвовать эксперты из Яндекса, Tinkoff, Mail.Ru и Авито. Под катом — примерные вопросы, которые планируем обсуждать (дополняйте список), и ссылка на предстоящую трансляцию. Добавляйте пост в закладки: после встречи обновим его и выложим видео.


В погоне за веб стандартами

Время на прочтение3 мин
Охват и читатели6.7K
Мы уже рассказывали с какими проблемами мы сталкиваемся занимаясь фронтенд разработкой в 2018 году. Давайте посмотрим как далеко мы уходим от стандартов когда пишем наш код



и как мы можем решить эту проблему.
Читать дальше →

Руководство по JavaScript, часть 9: обзор возможностей стандартов ES7, ES8 и ES9

Время на прочтение11 мин
Охват и читатели67K

Продвижение интернет-магазина: что придется исправлять

Время на прочтение6 мин
Охват и читатели7.3K
Интернет-магазины на продвижении, по нашему опыту, оказываются одновременно и более перспективными, и более проблемными проектами, чем обычные сайты. И если вам здесь видится противоречие, то добро пожаловать под кат, где я расскажу, о чем идет речь. А заодно подскажу, что можно заранее предусмотреть, чтобы потом не оплачивать дополнительно.
Читать дальше →

Ближайшие события

Frontend Mix — доклады про Node.js, масштабируемость и нативный веб

Время на прочтение2 мин
Охват и читатели5.2K

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


У вас есть фронтенд. Вам нужен BFF, и вы выбираете Node.js. Что-то настраиваете, разрабатываете, профилируете, и получается результат. Вы не понимаете, что делали, но вам объяснят.


У вас есть фронтенд. Еще вам нужно бесплатное масштабирование, поэтому вы берёте Node.js и смешиваете его с Comedy. Вы не понимаете, как с этим работать, но вам объяснят.



Виктор Исаев наглядно показывает, почему фреймворк Comedy — сила


Под катом три полезнейших доклада про внутренности Node.JS, инструменты, нативный веб, а ещё идеальное демо многопоточности в Node.JS с фреймворком Comedy.

Angular 6+ полное руководство по внедрению зависимостей.  providedIn vs providers:[]

Время на прочтение7 мин
Охват и читатели42K
image

В Angular 6 появился новый улучшенный синтаксис для внедрения зависимостей сервисов в приложение (provideIn). Несмотря на то, что уже вышел Angular 7, эта тема до сих пор остается актуальной. Существует много путаницы в комментариях GitHub, Slack и Stack Overflow, так что давайте подробно разберем эту тему.

В данной статье мы рассмотрим:


  1. Внедрение зависимостей (dependency injection);
  2. Старый способ внедрения зависимостей в Angular (providers: []);
  3. Новый способ внедрения зависимостей в Angular (providedIn: 'root' | SomeModule);
  4. Сценарии использования provideIn;
  5. Рекомендации по использованию нового синтаксиса в приложениях;
  6. Подведем итоги.
Читать дальше →

Малоизвестные возможности JavaScript

Время на прочтение11 мин
Охват и читатели61K
JavaScript часто называют самым простым языком для новичков, в программировании на котором сложнее всего достичь мастерства. Автор материала, перевод которого мы публикуем, говорит, что не может не согласиться с этим утверждением. Всё дело в том, что JS — это по-настоящему старый и по-настоящему гибкий язык. Он полон таинственных синтаксических конструкций и устаревших возможностей, всё ещё им поддерживаемых.

image

Сегодня мы поговорим о малоизвестных возможностях JavaScript и о вариантах их практического применения.
Читать дальше →

Тактичный робот: умеет слушать и не перебивает

Время на прочтение5 мин
Охват и читатели4.7K
Распознавание речи (далее – ASR, Automatic Speech Recognition) используется при создании ботов и/или IVR, а также для автоматизированных опросов. Voximplant использует ASR, предоставляемый «корпорацией добра» – гугловское распознавание работает быстро и с высокой точностью, но… Как всегда, есть один нюанс. Человек может делать паузы даже в коротких предложениях, при этом нам нужна гарантия, что ASR не воспримет паузу как окончание ответа. Если ASR думает, что человек закончил говорить, то после «ответа» сценарий может включить синтез голоса со следующим вопросом – в это же самое время человек продолжит говорить и получит плохой пользовательский опыт: бот/IVR перебивает человека. Сегодня мы расскажем, как с этим бороться, чтобы ваши пользователи не огорчались от общения с железными помощниками.

Как правильно работать с исключениями в DDD

Время на прочтение9 мин
Охват и читатели24K
image

В рамках недавно прошедшей конференции DotNext 2018 состоялся BoF по Domain Driven Design. На нем был затронут вопрос работы с исключениями, который вызвал жаркий спор, но не получил развернутой дискуссии, поскольку не являлся основной темой.

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

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

Есть разные мнения о том, стоит ли создавать собственные типы исключений или использовать стандартные, поставляемые в .NET.

Кто-то делает валидацию на исключениях, а кто-то повсеместно использует монаду Result. Справедливо, что Result позволяет по сигнатуре метода понять, возможно ли не только успешное выполнение. Но не менее справедливо, что в императивных языках (к которым относится C#) повсеместное использование Result приводит к плохо читаемому коду, засыпанному конструкциями языка настолько, что с трудом можно разглядеть исходный сценарий.

В данной статье я расскажу о практиках, принятых в нашей команде (если кратко — мы используем все подходы и ни один из них не является догмой).

Речь пойдет об enterprise-приложении, построенном на базе ASP.NET MVC+WebAPI. Приложение построено по луковой архитектуре, общается с базой данных и брокером сообщений. Используется структурированное логирование в ELK-стек и настроен мониторинг при помощи Grafana.
Читать дальше →

Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits

Время на прочтение8 мин
Охват и читатели153K


Привычный хаос в названиях коммитов. Знакомая картина?

Наверняка вы знаете git-flow. Это отличный набор соглашений по упорядочиванию работы с ветками в Git. Он хорошо документирован и широко распространен. Обычно мы знакомы с правильным ветвлением и много говорим об этом, но, к сожалению, уделяем слишком мало внимания вопросу наименования коммитов, поэтому часто сообщения в Git пишутся бессистемно.

Меня зовут Ержан Ташбенбетов, я работаю в одной из команд Яндекс.Маркета. И сегодня я расскажу читателям Хабра, какие инструменты для создания осмысленных коммитов мы используем в команде. Приглашаю присоединиться к обсуждению этой темы.

Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №341 (26 ноября — 2 декабря 2018)

Время на прочтение4 мин
Охват и читатели14K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →