Обновить
512K+

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

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

359,83
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Привет, Хабр! Меня зовут Мария, я уже достаточно долго проработала менеджером в студии по разработке сайтов, чтобы понять, что потолок для меня здесь достигнут, и решить отправиться в самостоятельное плавание. Под катом — рассказ о том, как я оборудовала собственную студию дома, набирала команду и организовывала её работу.
Читать далее

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

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

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

Почему японский веб-дизайн настолько другой?

Время на прочтение4 мин
Охват и читатели60K
Коничива, Хабр!

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

Теории о том, почему всё именно так, многочисленны, и сегодня, в преддверии старта курса «Профессия Веб-разработчик» попытаемся развить некоторые из наиболее распространенных теорий в этом посте.


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

Концепт — как усилить защиту паролей «12345» от bruteforce атаки (попытка вторая)

Время на прочтение10 мин
Охват и читатели8.3K
Updated: попытка снова неудачна.

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

А как быть, если пользователь сообщил по телефону свой пароль жене, а хакер его услышал?

Что?! Хакер знает пароль? Все, это фиаско. Можно ли помочь такому пользователю усложнить угон его аккаунта? Меня всегда волновал этот вопрос и, кажется, я нашел способ как это сделать. Или переоткрыл его, как это часто бывает. Ведь все уже давно придумано до нас.

Вводная


  • Пользователь хочет на сайте иметь пароль «12345».
  • Хакер может легко подобрать этот пароль.
  • Но пользователь должен войти, а хакер нет. Даже если логин и пароль хакеру известны.
  • и никаких SMS с секретными кодами и посредниками в виде дополнительных сервисов. Только пользователь и ваш сайт со страницей логина.
  • а еще можно будет сравнительно безопасно в троллейбусе сказать своей жене: «Галя, я на сайте site для нашего логина alice поменял пароль на 123456 — говорят, он более популярный, чем наш 12345». И не бояться, что аккаунт взломают за секунду.

Как работает метод? Вся конкретика — под катом.
Читать дальше →

Как мы стандартизировали api для 4 сайтов, созданных разными людьми в разное время

Время на прочтение5 мин
Охват и читатели2.6K
Всем привет! Меня зовут Сергей, я руководитель направления фронтенд-разработки. Во времена, когда профильные офлайн конференции были чем-то обыденным, у нас были бейджики: название компании — «Спортмастер», — имя и фамилия. Если к нам подходили коллеги из других компаний, то при взгляде на эти бейджики они удивлялись: ведь «Спортмастер» — это магазины, продающий спортивный инвентарь, причем тут IT?

Немногие знают, что «Спортмастер» объединяет целую группу компаний, в которую входят Ostin, FunDay и другие. За поддержание работы всей этой машины отвечает подразделение SMLab, где трудится почти полторы тысячи человек. Из них где-то 400 это разработчики и 25-30 фронтендеры. Все остальные занимаются ИТ-поддержкой производства, логистики, финансов, и сюда же входят департаменты веб-разработки, обеспечения качества и многие другие.

Все наши разработчики занимаются примерно тем же самым, чем и коллеги в других больших компаниях: разработкой новых и поддержкой старых систем. У нас очень большой стек технологий, а также большой скоуп приложений, которые мы поддерживаем и разрабатываем. На наших плечах лежит разработка и поддержка таких сайтов: Спортмастер, Ostin, FunDay, Columbia, Fila, Demix, UrbanVibes. Ко всему этому у нас большой плацдарм внутренней автоматизации. В общем, для разработчиков есть где развернутся, на прокачке своих навыков.
Читать дальше →

Безжалостное избавление от Layout Shift на netlify.com

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

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

Читать далее

ТайпСкрип: Ох уж эта весёлая система типов

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

Здравствуйте, меня зовут Дмитрий Карловский и недавно я, вместе с Артуром Мукминовым, проводил воркшоп, где показывал как разрабатывать сложные типофункции через тестирование. Это 2 часа сурового программирования на типах. Так что в качестве тизера, ловите разбор курьёзов тайпскриптовой системы типов.


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

JavaScript исполняется 25 лет: краткая история языка и скидка 50% на WebStorm

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

25 лет назад, 4 декабря 1995 года JavaScript был впервые представлен миру. Мы хотим отметить день рождения языка и поблагодарить вас за его поддержку все эти годы, поэтому мы подготовили для вас небольшой сюрприз!


js-25-picture

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

Web Components и IoC

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

Замечательной особенностью веб-компонентов или скорее даже языка разметки HTML является возможность прозрачно оборачивать существующий контент новым. Благодаря этому, вы можете практически неинвазивно дорабатывать существующий legacy код, а так же изящно структурировать новый.

Говоря конкретно, если вы обернете какую-то верстку своим кастомным элементом (гугл. Custom Elements), в хуке connectedCallback(), то ваш элемент может определить какие у него внутри есть подэлементы и настроить свою и их работу соответствующим образом если надо приспособить их к новым требованиям и это будет вполне себе архитектурно грамотным решением. Также он будет получать всплывающие события от своих подэлементов и если вы включили изоляцию теневого дерево, он станет их безальтернативным брокером (а если не включили - прозрачным прокси), т.к. за его пределы они всплывать не будут и вся ответственность ляжет на него. 

Читать далее

End User Monitoring — контролируем производительность фронтенда с помощью Instana

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

На прошлой неделе мы выложили пост про то, как мы мониторим backend и микросервисную инфраструктуру с помощью Instana, и пообещали написать продолжение про мониторинг frontend.


В итоге мы решили не ограничиваться обзором Instana в качестве инструмента контроля frontend, а копнуть немного глубже и рассказать, для чего вообще нужен End User Monitoring, с какими проблемами производительности фронта мы сталкиваемся чаще всего, какие мы используем сценарии работы с собранными данными, и как Instana помогает нам контролировать пользовательский опыт в целом.


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

Подробное руководство по HTML-инъекциям

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


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


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


Содержание:


  • Что такое HTML?
  • Что такое HTML-инъекция?
  • Угрозы HTML-инъекции
  • HTML-инъекция и XSS
  • Типы инъекций
    • Сохраненный HTML
    • Отраженный HTML
      • GET
      • POST
      • Текущий URL
  • Защита от HTML-инъекции

Что такое HTML?


HTML (HyperText Markup Langauge) — это основной строительный блок сети, который определяет формирование веб-страниц в веб-приложении. HTML используется для разработки веб-сайтов, состоящих из «гипертекста», чтобы включить «текст внутри текста» в качестве гиперссылки и комбинации элементов, которые визуально отображаются в браузере.


Что такое элемент?


Элемент — это основная структурная единица веб-страницы. Он содержит открывающий и закрывающий теги с текстовым содержимым между ними».


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

BFcache

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


BFcache — технология оптимизации работы браузера, обеспечивающая мгновенную отдачу ранее просмотренной страницы при помощи кнопок «Вперед» и «Назад». Этот паттерн значительно улучшает пользовательский опыт, особенно у пользователей, обладающих слабенькими устройствами или просматривающих сайт из-под медленных сетей. Люди пользуются кнопкой возврата, возможно, даже чаще, чем вы думаете. А если так, то зачем сразу выбрасывать страницу из памяти браузера, а спустя мгновение тратить трафик на её повторное открытие?

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

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

«Хамелеон», которого мы создали и приручили

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

Речь, конечно, пойдет не о харизматичных ящерках, а о нашем собственном инструменте автоматизированного тестирования. Представляем вашему вниманию кейс создания фреймворка «Хамелеон» и рассказ о его функциональности.


Его появлению предшествовало 15 лет практики тестирования в компании IBS AppLine* (лидера российского рынка аутсорсинга услуг тестирования по версии TAdviser за 2018 год на минуточку!). На базе этих знаний и экспертизы мы задались целью ускорить старт проектов, повысить качество тестирования, упростить введение в работу новичков. Решение должно позволить автоматизировать функциональное тестирование веб, мобильных, десктоп-приложений и различных видов API.




В общем, исследовательский центр IBS AppLine Innovation** суммировал весь опыт компании и создал «Хамелеон» — инструмент для автоматизации функционального тестирования. Делался с использованием языка программирования Java и инструментов Cucucmber, Selenium, Appium, Winium, Spring. Этот фреймворк:


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

Теперь подробнее о функционале…


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

Переход с reCAPTCHA на hCaptcha

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


Блог Cloudflare

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

Роутинг и рендеринг страниц на стороне клиента с помощью History API и динамического импорта

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


Доброго времени суток, друзья!

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

Исходный код на GitHub.

Поиграть к кодом можно на CodeSandbox.

Прежде чем приступить к реализации приложения, хотелось бы отметить следующее:

  • Мы реализуем один из самых простых вариантов клиентской маршрутизации и рендеринга, парочку более сложных и универсальных (если угодно, масштабируемых) способов можно найти здесь
  • Обойтись совсем без сервера не получится. Мы будет манипулировать историей текущей сессии браузера: при ручной перезагрузке страницы браузер отдает предпочтение серверу, т.е. пытается получить несуществующую страницу, что приводит к печальным последствиям в виде невозможности установить соединение (мои попытки обмануть браузер с помощью сервис-воркера, т.е. проксировать отправляемые им запросы, не увенчались успехом). Единственной задачей нашего примитивного сервера будет ответ в виде index.html на любой запрос. Это позволит браузеру перейти к выполнению клиенского скрипта
  • Везде, где это возможно и уместно, мы будет использовать динамический импорт. Он позволяет загружать только запрашиваемые ресурсы (раньше это можно было реализовать только посредством разделения кода на части (chunks) с помощью сборщиков модулей типа Webpack), что хорошо сказывается на производительности. Использование динамического импорта сделает почти весь наш код асинхронным, что, в целом, тоже неплохо, поскольку позволяет избежать блокировки потока выполнения программы

Итак, поехали.
Читать дальше →

WebStorm 2020.3: обновленный интерфейс, поддержка Tailwind CSS и другие улучшения

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

Всем привет! Мы рады представить вам последнее крупное обновление WebStorm в 2020-м году. В этот раз улучшений очень много. Ниже расскажем про основные из них.


ws-2020-3-release-picture

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

SEO-оптимизация сайта на React или как добиться конверсии от поисковиков если у вас Single Page Application

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

Смоделируем ситуацию: Вы являетесь членом команды веб-разработчиков, занимающихся созданием frontend-части молодого интернет-ресурса на базе React. И вот, когда уже начинает казаться что ваша разработка достигла определенной функциональной, качественной и эстетической кондиции, вы сталкиваетесь с достаточно сложным и не менее интересным вопросом: А что делать с SEO? Как добиться качественной конверсии от поисковых систем? Как сделать так, чтобы о вашем ресурсе узнал весь мир, не вкладывая в это огромного количества денег за платные рекламные компании либо сил в крупномасштабную дополнительную разработку? Как заставить контент вашего Single Page Application работать на вас в поисковых выдачах и приносить клиентов? Интересно? Тогда поехали…

Читать далее

PHP-Дайджест № 193 (16 – 30 ноября 2020)

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

Парад релизов: обновление языка — PHP 8.0, а также Xdebug 3, DBAL 3.0, Bref 1.0, Symfony 5.2, Flysystem 2.0. Первый принятый RFC для PHP 8.1, долгосрочная поддержка PHPUnit, порция полезных инструментов, подкасты, стримы, статьи.

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


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

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

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