Обновить
512K+

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

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

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №383 (1 — 6 октября 2019)

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

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

Эффективное управление подключениями SignalR

Время на прочтение5 мин
Охват и читатели13K
Здравствуй, Хабрахабр. В настоящий момент я работаю над созданием движка чата в основе которого лежит библиотека SignalR. Помимо увлекательного процесса погружения в мир real-time приложений пришлось столкнуться и с рядом вызовов технического характера. Об одном из них я и хочу с вами поделиться в этой статье.

Введение


Что такое SignalR — это свое рода фасад над технологиями WebSockets, Long polling, Server-send events. Благодаря этому фасаду можно единообразно работать с любой из этих технологий и не беспокоиться о деталях. Кроме того, благодаря технологии Long polling можно поддерживать клиентов, которые по каким-то причинам не могут работать по веб-сокетам, например IE-8. Фасад представлен высокоуровневым API, работающим по принципу RPC. Кроме того, SignalR предлагает выстраивать коммуникации по принципу «publisher-subscriber» что в терминологии API называется группами. Об этом и пойдет речь далее.

Вызовы


Пожалуй самое интересное в программировании это возможность решать нестандартные задачи. И одну из таких задач мы сегодня обозначим и рассмотрим ее решение.
Читать дальше →
Привет, Хабр! Меня зовут Алексей Чеканов, я технический директор ЦИАН. Разработка определяет успехи нашего проекта, и чем дальше, тем заметнее. Чтобы расти, нам нужно больше IT-специалистов — и для решения нетривиальных задач, и для поддержки существующих сервисов. Ниже я расскажу, как устроен отдел разработки в ЦИАН, чем он занимается и что ждет того, кто к нам попадет.
Подробности – под катом

Уменьшение размеров бандлов с помощью Webpack Analyzer и React Lazy/Suspense

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



Автор статьи, перевод которой мы сегодня публикуем, работает в Wix. Он хочет рассказать о том, как смог уменьшить размер одного бандла примерно на 80%, используя Webpack Analyzer и React Lazy/Suspense.
Читать дальше →

Путь к проверке типов 4 миллионов строк Python-кода. Часть 3

Время на прочтение6 мин
Охват и читатели7K
Представляем вашему вниманию третью часть перевода материала о пути, который прошла компания Dropbox, внедряя у себя систему проверки типов Python-кода.



→ Предыдущие части: первая и вторая
Читать дальше →

Англоязычные доклады, CSS, Grid и доступность на FrontendConf

Время на прочтение11 мин
Охват и читатели2.8K
На FrontendConf в этом году будет выступать Leonie Watson — евангелист доступности, и Andy Bell — широко известный в мировом фронтенд-сообществе автор электронной книги «Every Layout». Выступление Leonie будет нестандартным и технически сложным, когда зрение участников будет не самым важным чувством. Andy и Leonie пригласил Павел Ловцевич. Он организует конференции в Минске, приглашает иностранных спикеров на свои конференции и к нам на FrontendConf, курирует доклады и все это, не считая работы техническим директором.



Накануне FrontendConf мы поговорили с Павлом о его роли в программном комитете конференции, о приглашении иностранных докладчиков, доступности, CSS и Grid Layout, usability презентаций, неочевидных мелочах, особенностях работы куратора, а в конце — почему вообще важно посещать конференции.
Читать дальше →

Рассказ о решении проблемы с производительностью Moment.js

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



Материал, перевод которого мы публикуем сегодня, посвящён рассказу решении проблемы с производительностью Moment.js.
Читать дальше →

9 лучших опенсорс находок за сентябрь 2019

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

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


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, C, Rust, Ruby, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.


Прошлый выпуск.

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

Обработка исключений ASP.NET при помощи IRO.Mvc.MvcExceptionHandler

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


Если вы являетесь c# бекенд разработчиком — наверняка у вас рано или поздно появилась необходимость найти унифицированный способ обработки исключительных ситуаций. Хотя, даже если вы довольствуетесь кодом 500 в ответе, эта статья все равно поможет улучшить ваш способ, при этом не заставляя что-либо переписывать.

Речь пойдет об ASP.NET библиотеке, которая позволяет решить эту проблему максимально изящно. Для тех кому лень читать длинную статью — ридми и сама библиотека тут, пример тут. Доступна на nuget.org и я буду только рад если она принесет кому-то пользу. И так, перейдем к коду. Для начала давайте разберем альтернативы.
Читать дальше →

«Алиса, пойдём во фронтенд!»

Время на прочтение26 мин
Охват и читатели15K
Голосовые помощники — не далёкое будущее, а реальная действительность. Alexa, Siri, Google Now, Алиса встроены в «умные» колонки, часы и телефоны. Они постепенно меняют наш способ взаимодействия с приложениями и устройствами. Через ассистента можно узнать прогноз погоды, купить билеты на самолет, заказать такси, послушать музыку и включить чайник на кухне, лежа на диване в другой комнате.



Siri или Alexa говорят с пользователями в основном по-английски, поэтому в России они не так популярны, как Алиса от Яндекса. Для разработчиков Алиса тоже удобнее: её создатели ведут блог, выкладывают удобные инструменты на GitHub и помогают встраивать ассистента в новые устройства.

Никита Дубко (@dark_mefody в Твиттере) — разработчик интерфейсов в Яндекс, организатор митапов MinskCSS и MinskJS и редактор новостей в Web-стандартах. Никита не работает в Яндекс.Диалогах и никак не связан с Яндекс.Алисой. Но ему было интересно разобраться, как Алиса работает, поэтому он попробовал применить её навыки для Web и подготовил об этом доклад на FrontendConf РИТ++. В расшифровке доклада Никиты рассмотрим, что полезного могут принести голосовые помощники и построим навык прямо в процессе чтения этого материала.

Ускорение instagram.com. Часть 2

Время на прочтение6 мин
Охват и читатели5.5K
Сегодня мы представляем вашему вниманию перевод второго материала из серии, посвящённой оптимизации instagram.com. Здесь речь пойдёт об улучшении механизма заблаговременного выполнения GraphQL-запросов и о повышении эффективности передачи HTML-данных клиенту.



→ Читать, затаив дыхание, первую часть
Читать дальше →

Рендеринг текста вас ненавидит

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

Рендеринг текста: насколько сложным он может быть? Оказывается, невероятно сложным! Насколько мне известно, буквально ни одна система не выводит текст «идеально». Где-то лучше, где-то хуже.

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

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

Мы обсудим темы, которые не объединяются в рамках какой-то единой концепции, это просто вопросы, с которыми мне пришлось столкнуться за несколько лет работы над рендерингом текста в Firefox. Например, не будем слишком подробно обсуждать проблемы сегментации текста или управления различными текстовыми библиотеками для конкретной платформы, поскольку этим я не слишком интересуюсь.
Читать дальше →

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

Заметка о void в JavaScript и TypeScript

Время на прочтение3 мин
Охват и читатели57K
Если вы, до того, как заинтересовались JavaScript, писали на традиционных языках с сильной типизацией, то вы, возможно, знакомы с концепцией void. Это — тип, использование которого сообщает программисту о том, что соответствующие функции и методы при их вызове ничего не возвращают.



Сущность void имеется также в JavaScript и TypeScript. В JS это — оператор. В TS это примитивный тип данных. И там и там void ведёт себя не так, как могли бы ожидать многие из тех, кто сталкивался с void в других языках.
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №382 (22 — 29 сентября 2019)

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


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

Где и как использовать мультиколонки (CSS Columns)

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

При всём ажиотаже вокруг технологий CSS Grid и Flexbox, часто упускается из виду другой метод разметки. В этой статье я хочу рассмотреть многоколоночный макет — часто называемый просто «Multicol» или «CSS Columns». Вы узнаете, для каких задач он подходит и какие нюансы следует учитывать при его использовании.
Читать дальше →

Описание подхода к организации и тестированию кода с использованием Redux Thunk

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

Всем привет!


В этой заметке я хотел бы поделиться своим подходом к организации и тестированию кода с использованием Redux Thunk в проекте на React.


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

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

«WARNING: sanitizing HTML stripped some content» и как с ним правильно бороться

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

Всем, кому приходилось вставлять HTML содержимое в DOM в Angular, доводилось видеть это сообщение. Конечно, все мы получаем проверенное содержимое с нашего же сервера и просто хотим застилизовать сообщение об ошибке. Или вставляем HTML из наших же констант, инлайним наши SVG иконки, ведь нам всего лишь нужно покрасить их в цвет текста. Ведь ничего плохого не случится, если мы просто скажем Angular`у — не дрейфь, там всё чисто.


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


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

5G — технология, которая, видимо, замедлит веб

Время на прочтение6 мин
Охват и читатели36K
Технология 5G — это уже реальность. Соответствующий значок начинает появляться в верхних частях экранов телефонов по всему миру. Если вы подключены к 5G-сети, то вы могли заметить, что такая сеть не кажется намного более быстрой, чем 4G-сеть. Я вполне это понимаю. Говорят, что сейчас, в дни становления новых сетей, настоящим 5G-скоростям мешает процесс миграции инфраструктуры. Но после того как технология 5G, во всех смыслах, повзрослеет, ожидается, что скорость сетей очень сильно возрастёт. Так, по некоторым сведениям, средние скорости загрузки данных в 5G-сетях в 2019 году могут составить от 100 Мбит до 1 Гбит в секунду. Это означает, что можно будет загрузить всю дискографию Friends, а потом — торжественно перетащить её мышью в корзину, сделав это примерно за то же время, которое сейчас занимает загрузка обычной веб-страницы. Я не пытаюсь сейчас выходить на какие-то конкретные цифры. Я говорю лишь о том, что, возможно, работа в 5G сетях может выглядеть именно так. Такое будущее иначе как «прекрасным» и не назовёшь.



Да, не стоит забывать о том, что в 5G-сетях улучшится не только полоса пропускания. Ожидается и уменьшение сетевых задержек. А задержки — это одно из давно и печально известных узких мест производительности веба. Снижение задержек означает, что время, которое тратится на подключение к веб-сайту, может, по ощущениям пользователей, упасть практически до нуля. Опять же — выглядит это просто замечательно.

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

Должно-то оно должно, но автор материала, перевод которого мы сегодня публикуем, не ждёт, что 5G действительно ускорит веб. Как минимум — ускорит, но далеко не сразу. Он полагает, что если современные тренды веб-разработки не изменятся, то широкое внедрение 5G-сетей приведёт к тому, что среднестатистическому пользователю будет работаться в вебе не лучше, а хуже.
Читать дальше →

Путь к проверке типов 4 миллионов строк Python-кода. Часть 2

Время на прочтение8 мин
Охват и читатели6.4K
Сегодня публикуем вторую часть перевода материала о том, как в Dropbox организовывали контроль типов нескольких миллионов строк Python-кода.



Читать первую часть
Читать дальше →