Обновить
512K+

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

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

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

Производительность фронтенда: разбираем важные метрики

Время на прочтение12 мин
Охват и читатели37K
Обычно под производительностью понимают количество операций за определенный интервал времени и чем их больше, тем лучше. Но такое определение, да и подход в целом, мало применим к фронтенду, потому что у каждого пользователя будет свой «фронтенд». Именно об этом я и хочу поговорить, что же происходит «там», у пользователя, на другой стороне, в реальности, а не на вашем топовом MacBook.

Кроме это, я постараюсь вскользь рассмотреть общие правила оптимизации кода и некоторые ошибки на которые стоит обратить внимание. Ещё расскажу про инструмент, который помогает не только в профилировании, но и «из коробки» собирает кучу базовых метрик о производительности вашего приложения (и надеюсь, вы дочитаете этот пост до конца).
Читать дальше →

Понимание джойнов сломано. Продолжение. Попытка альтернативной визуализации

Время на прочтение2 мин
Охват и читатели122K
Многие из вас читали предыдущую статью про то, как неправильная визуализация для объяснения работы JOIN-ов в некоторых случаях может запутать. Круги Венна не могут полноценно проиллюстрировать некоторые моменты, например, если значения в таблице повторяются.

При подготовке к записи шестого выпуска подкаста "Цинковый прод" (где мы договорились обсудить статью) кажется удалось нащупать один интересный вариант визуализации. Кроме того, в комментариях к изначальной статье тоже предлагали похожий вариант.


Все желающие приглашаются под кат

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

Создаём максимально недоступный сайт с идеальной оценкой Lighthouse

Время на прочтение6 мин
Охват и читатели50K
Встроенный инструмент тестирования Google Lighthouse оценивает доступность (accessibility) сайтов по шкале от 0 до 100. Похвально стремиться к максимальной читаемости контента, но оценка 100 не означает, что сайт идеально доступен. Для доказательства я провёл небольшой эксперимент.

Всегда приятно видеть, как люди хвастаются в твиттере своими оценками Lighthouse: это значит, что они заботятся о качестве.



Lighthouse награждает лучшие сайты зелёным кружочком с цифрой 100, которую вы с гордостью показываете клиентам и друзьям.
Читать дальше →

Node.js: управление памятью, доступной приложениям, выполняемым в контейнерах

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


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

Дайджест Joomla за май 2019

Время на прочтение3 мин
Охват и читатели3.5K
Предлагаю вашему вниманию подборку ссылок на новые материалы по Joomla! CMS за май 2019. В дайджесте: информация о Joomla 4, новости о Joomla, подборка ссылок на инструменты для разработчиков и вебмастеров.


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

Как оживить документацию?

Время на прочтение3 мин
Охват и читатели8.3K
Наверное, каждой команде знакома эта боль — неактуальная документация. Как бы команда ни старалась, в современных проектах мы релизимся так часто, что описывать все изменения практически нереально. Наша команда тестирования совместно с системными аналитиками решили попробовать оживить нашу проектную документацию.



На web-проектах Альфа-Банка используется фреймворк для автоматизации тестирования Akita, который использует для BDD-сценарии. К настоящему моменту фреймворк набрал большую популярность благодаря низкому порогу входа, удобству использования и возможности тестировать верстку. Но мы решили пойти дальше — на основе описанных тестовых сценариев формировать документацию, тем самым сильно сокращая время которое аналитики тратят на на извечную проблему актуализации документации.

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

  • скриншоты;
  • значения переменных (config File, учетные записи пользователей и т.д.);
  • статусы и параметры запросов.

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

Новое в PHP 7.4

Время на прочтение5 мин
Охват и читатели80K
Новая версия PHP хоть и является минорной, но уже несёт множество новых, без преувеличения, крутых возможностей как для синтаксиса языка, так и для его производительности. Список новшеств не окончательный, но основные изменения уже внесены и приняты. Релиз планируется на декабрь 2019 года.
 

 
Ключевые изменения грядущей версии:

  • Типизированные свойства классов
  • Предзагрузка для улучшения производительности
  • Стрелочные функции для короткой записи анонимных функций
  • Присваивающий оператор объединения с null (??=)
  • Ковариантность/контравариантность в сигнатурах унаследованных методов
  • Интерфейс внешних функций, открывающий новые возможности для разработки расширений на PHP
  • Оператор распаковки в массивах

Подробнее об этих и других изменениях читайте под катом.
Узнать обо всех изменениях

Создаем свой компонент с микро-шаблонами

Время на прочтение6 мин
Охват и читатели6.1K
Всем привет.
Все кто писал на фреймворке Angular, так или иначе сталкивался (или даже работал) с библиотекой Angular Material. Это очень хорошо написанная библиотека компонентов способная к гибкой стилизации, которая реализована через возможность создания различных тем вашего приложения, с большим набором компонентов на все случаи жизни.

В моей повседневной работе ни один проект без нее не обходится.

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

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

Wasmer: самая быстрая Go-библиотека для выполнения WebAssembly-кода

Время на прочтение6 мин
Охват и читатели9.7K
WebAssembly (wasm) — это переносимый бинарный формат инструкций. Один и тот же код wasm-код может выполняться в любой среде. Для того чтобы поддержать данное утверждение, каждый язык, платформа и система должны быть в состоянии выполнять такой код, делая это как можно быстрее и безопаснее.

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

Доступ в интернет открыт: технология LUWRAIN помогает слепым пользователям

Время на прочтение4 мин
Охват и читатели3.5K
Шагая в будущее и расширяя границы своих возможностей, человечество не только совершенствует технологии, но и делает их доступнее. Современные смартфоны и компьютеры – сложнейшие устройства, но ими легко пользуется большинство людей, благодаря простым интуитивным системам управления, таким как Windows или Android.



К сожалению, ещё не всё информационные системы адаптированы для людей, чьи возможности здоровья не позволяют использовать все 5 способов восприятия.

Слепые и слепоглухие люди до недавнего времени не могли полноценно пользоваться большинством коммуникационных инструментов. По статистике, лишь один из 20 людей с инвалидностью по зрению умеет пользоваться компьютером.
Читать дальше →

Удаленная отладка микросервиса через SSH под VPN в 4 хода

Время на прочтение3 мин
Охват и читатели5.2K
Бывает ситуация, когда нужно отдебажить сложный кейс на удаленной машине, но доступ к серверу есть только под VPN с ограничениями по открытым портам. В статье хочу поделиться с коллегами небольшим «ресерчем» на тему удаленной отладки через SSH под VPN, дабы сэкономить драгоценное время на настройке. Сочту миссию выполненной, если кому-то пригодится данный ман.
Читать дальше →

Особенности атрибута inputmode для мобильных ОС и браузеров

Время на прочтение4 мин
Охват и читатели22K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Everything You Ever Wanted to Know About inputmode» Christian Oliff.

Примечание переводчика: Первоначальное название статьи «Всё, что вы когда-либо хотели знать об inputmode» изменено на «Особенности атрибута inputmode для мобильных ОС и браузеров», так как второе точнее передаёт суть.

Глобальный атрибут inputmode подсказывает браузерам для устройств с экранной клавиатурой, какой вариант демонстрировать, когда пользователь выбрал элемент input или textarea.

<input type="text" inputmode="" />
<textarea inputmode="" />

В отличие от изменения type формы, inputmode не меняет способа, которым браузер интерпретирует input – он даёт браузеру инструкцию, какую клавиатуру вывести на экран.

У атрибута inputmode долгая история, но лишь совсем недавно он был принят ведущими мобильными браузерами: Сафари для iOS и Хром для Android. Раньше он был воплощён в жизнь в Firefox для Андроида в 2012 году, но впоследствии, через несколько месяцев, удалён (хотя всё ещё доступен через флаг). Спустя почти шесть лет, Хром для Андроида встроил это свойство, и с последним релизом iOS 12.2, Сафари его тоже поддерживает.
Читать дальше →

Node.js-проекты, в которых лучше не использовать lock-файлы

Время на прочтение8 мин
Охват и читатели12K
Автор материала, перевод которого мы сегодня публикуем, говорит, что одна из проблем, с которыми приходится сталкиваться программистам, заключается в том, что у них их код работает, а у кого-то другого выдаёт ошибки. Эта проблема, возможно, одна из самых распространённых, возникает из-за того, что в системах создателя и пользователя программы установлены разные зависимости, которые использует программа. Для борьбы с этим явлением в менеджерах пакетов yarn и npm существуют так называемые lock-файлы. Они содержат сведения о точных версиях зависимостей. Механизм это полезный, но если некто занимается разработкой пакета, который планируется опубликовать в npm, lock-файлы ему лучше не использовать. Этот материал посвящён рассказу о том, почему это так.


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

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

Mozilla назвала «вредным» предложение Google о распространении веб-пакетов с цифровой подписью

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

Механизм Signed HTTP Exchanges (SXG)

Месяц назад на конференции для разработчиков компания Google предложила технологию «порталов», которая призвана обеспечить новый способ загрузки и навигации по веб-страницам. По сути, <portal> — это более продвинутая и современная версия <iframe>. Главная разница в том, что <portal> позволяет перемещаться внутри контента, который внедрён на страницу извне, а <iframe> не позволяет этого по соображениям безопасности. Более того, <portal> может изменять URL в адресной строке браузера, то есть этот тег полезнее в качестве инструмента навигации.

Для Google это очень важная технология, потому что позволяет удержать пользователей на поисковом сайте, загружая запрошенный контент с других сайтов через «порталы» в виде веб-пакетов.
Читать дальше →

PHP-Дайджест № 157 (20 мая – 3 июня 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления безопасности PHP, коммерческая компания Doctrine, PhpStorm 2019.2 EAP, Symfony 4.3, порция полезных инструментов, видеозаписи, и многое другое.

Приятного чтения!

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №367 (27 мая — 2 июня 2019)

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


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

Entropic — новый распределенный реестр пакетов для Node.js

Время на прочтение1 мин
Охват и читатели5.1K
Перейду сразу к главному. Си Джей Сильверио (C J Silverio), бывшая CTO компании NPM Inc., анносировала вчера новый распределенный реестр для пакетов Node.js

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

Есть мнение: технология DANE для браузеров провалилась

Время на прочтение4 мин
Охват и читатели10K
Говорим о том, что собой представляет технология DANE для аутентификации доменных имен по DNS и почему она не получила широкого распространения в браузерах.

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

Управление стейтом с помощью React Hooks – без Redux и Context API

Время на прочтение7 мин
Охват и читатели31K
Всем привет! Меня зовут Артур, я работаю ВКонтакте в команде мобильного веба, занимаюсь проектом VKUI — библиотекой React-компонентов, с помощью которой написаны некоторые наши интерфейсы в мобильных приложениях. Вопрос работы с глобальным стейтом у нас пока открыт. Существует несколько известных подходов: Redux, MobX, Context API. Недавно я наткнулся на статью André Gardi State Management with React Hooks — No Redux or Context API, в которой автор предлагает использовать React Hooks для управления стейтом приложения.

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

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

Клиент: — Сколько стоит копия Facebook?

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


«Сколько стоит сделать копию Facebook (Avito, Яндекс.Такси, fl.ru...)?» — один из самых популярных вопросов клиентов, на который мы сегодня дадим развернутый ответ и расскажем, как это выглядит со стороны людей, которым предстоит это делать.
Читать дальше →