Как стать автором
Поиск
Написать публикацию
Обновить
529.1

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

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

Сначала показывать
Период
Уровень сложности

Пишем одностраничное приложение с помощью htmx

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров19K

JS-библиотеку htmx воспринимают как средство, которое спасает интернет от одностраничных приложений. Всё дело в том, что React поглотил разработчиков своей сложностью (так говорят), а htmx предлагает столь желанное спасение.
Читать дальше →

Укрепление Nginx с помощью Fail2ban: тестируем и оцениваем «профит»

Время на прочтение10 мин
Количество просмотров28K

«Только запустил Nginx-приложение, а в access.log уже десятки записей с непонятными запросами, переборами паролей и другого» — типичная ситуация для незащищенного сервера. Это следствие работы «ботов» для сканирования белых сетей, поиска открытых портов, сбора информации о версиях запущенных служб и подбора паролей к сервисам.

В статье расскажу, как с помощью open source-инструмента Fail2ban укрепить Nginx и защитить сервисы от взлома. А также продемонстрирую способы блокирования DDoS-атак. Подробности под катом.
Читать дальше →

11 хитростей Chrome DevTools, которые помогут Вам стать Senior FrontEnd-разработчиком

Время на прочтение4 мин
Количество просмотров78K

Я полагаю, вы знакомы с инструментами разработчика браузера Chrome. Мы можем использовать его для просмотра сетевых запросов, анализа производительности веб-страницы и отладки последних функций JavaScript.

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

Давайте посмотрим

TypeScript: худший лучший язык программирования

Время на прочтение13 мин
Количество просмотров85K

На конференции FrontedConf 2021 Андрей Старовойт показал плюсы и минусы TypeScript. Если вы сомневаетесь, стоит ли его использовать — эта статья для вас, чтобы вы смогли для себя всё решить. Если вы уже любите и используете TypeScript, то надеюсь, вам тоже будет интересно.

Все преимущества и недостатки языка описаны, конечно, через призму опыта Андрея. Несмотря на то, что последние 7 лет он работает в компании JetBrains над продуктом WebStorm на Java Kotlin, пишет он и на TypeScript. Попутно много смотрит на код других людей, пытаясь понять, что с ним можно сделать внутри WebStorm и почему типы выбились неправильно. А также — какие инспекции можно применить так, чтобы люди стали счастливы, а их код — лучше.

Читать далее

PHP Дайджест № 215 (1 – 15 ноября 2021)

Время на прочтение4 мин
Количество просмотров11K
Картинка: Gabriel Nunes.

Подборка свежих новостей и материалов из мира PHP.
В выпуске: последний релиз кандидат PHP 8.1 перед финальным релизом, бенчмарки PHP 8.1; в PHP 8.2 планируется задепрекейтить динамические свойства — добро или зло?; про перенос багов с bugs.php.net на GitHub; немного обновлен PSR-16.
Также в выпуске полезные статьи, видео и другие новости сообщества.

Приятного чтения!
Читать дальше →

Разбираемся в сортах реактивности

Время на прочтение27 мин
Количество просмотров39K

Здравствуйте, меня зовут Дмитрий Карловский и я… прилетел к вам на турбо-реактивном самолёте. Основная суть реактивного двигателя изображена на картинке.



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


Это — текстовая расшифровка выступления на SECON.Weekend Frontend'21. Вы можете посмотреть видео запись, прочитать как статью, либо открыть в интерфейсе проведения презентаций.

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

Шпаргалка по метрикам производительности cURL: как измерить задержку сервера

Время на прочтение8 мин
Количество просмотров25K


Эту шпаргалку я написал в первую очередь, потому что был несколько озадачен, когда в течение более, чем 10 минут пытался найти в Google значение time_pretransfer. Попробуйте сами, я подожду. Это настоящая загадка!
Читать дальше →

Интересные CSS-находки в новом дизайне Facebook

Время на прочтение11 мин
Количество просмотров25K
Я любопытен. Мне всегда интересно открывать инструменты разработчика браузера и разбираться с тем, как сделан какой-нибудь сайт, на который я заглянул. Этот материал представляет собой мой первый рассказ о таких вот изысканиях. Дело в том, что я обнаружил некоторые интересные примеры использования CSS (по крайней мере, они показались интересными мне), о которых мне захотелось рассказать.



Речь идёт о CSS-находках в новом дизайне Facebook. Этот дизайн появился сравнительно недавно. Я его увидел пару недель назад. Сначала все элементы интерфейса казались мне необычно большими, но я привык к ним буквально за несколько дней. Здесь я расскажу обо всём том интересном, что я нашёл в дизайне Facebook.
Читать дальше →

PHP-Дайджест № 176 (11 – 23 марта 2020)

Время на прочтение4 мин
Количество просмотров14K

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP и Composer 1.10, переносы конференций, 3 новых RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.

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


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

Руководство по Discovery.js: быстрый старт

Время на прочтение10 мин
Количество просмотров8.1K

Это и последующие руководства проведут вас через процесс создания решения на основе проекта Discovery.js. Наша цель — создать инспектор NPM-зависимостей, то есть интерфейс для исследования структуры node_modules.



Примечание: Discovery.js находится на ранней стадии разработки, поэтому со временем что-то будет упрощаться и становиться полезнее. Если у вас есть идеи, как можно что-то улучшить, напишите нам.

Аннотация


Ниже вы найдёте обзор ключевых концепций Discovery.js. Изучить весь код руководства можно в репозитории на GitHub, или можете попробовать как это работает онлайн.

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

PHP-Дайджест № 161 (15 – 29 июля 2019)

Время на прочтение4 мин
Количество просмотров16K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 beta 1, PhpStorm 2019.2, PSR-12, обзор RFC предложений из PHP Internals, новости с Laracon US, подкасты, порция полезных инструментов, и многое другое.

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


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

The state of CSS

Время на прочтение15 мин
Количество просмотров23K
В ежегодном опросе «The state of JavaScript» разработчики рассказывают о том, что они используют здесь и сейчас. Вопросы там знакомы и привычны фронтенд-сообществу. В 2019 году появился опрос «The state of CSS», который ввёл разработчиков в ступор. Оказывается, многие технологии разработчикам не знакомы, хотя большинство из них уже активно используются. Возможно, разработчики используют привычные инструменты и технологии, и не стремятся применять что-то новое? Возможно, просто нет задач под новые технологии? Зачем использовать CSS Grid, CSS Multi columns, там, где проще построить все на Flexbox? Возможно, это все касается старичков, а джуны уже и не знают про Flexbox и Float и в опросах не участвуют?



Сергей Попов (popovsergey), руководитель Лиги А, спикер и организатор конференций задался этими вопросами, провел свой мини-опрос и даже получил результаты от организаторов «The state of CSS». Всю информацию Сергей обработал, структурировал и получил срез фронтенд-сообщества: кто что знает и использует, где учатся верстальщики и сколько зарабатывают, какие технологии актуальны, а какие пора сдавать в переработку, и что изучать, чтобы применять всю мощь CSS. Расшифровка доклада — один из вариантов отчета по актуальному состоянию CSS, вместе с оригинальным отчетом «The state of CSS» подскажет, куда двигаться и какие технологии применять.

Осторожно, под катом много диаграмм и картинок, действительно много, но они все по делу. В хорошем качестве они тут.

Мониторинг мёртв? — Да здравствует мониторинг

Время на прочтение15 мин
Количество просмотров35K


Наша компания с 2008 года занимается преимущественно управлением инфраструктурами и круглосуточной технической поддержкой веб-проектов: у нас более 400 клиентов, это порядка 15% электронной коммерции России. Соответственно, на поддержке очень разнообразная архитектура. Если что-то падает, мы обязаны в течение 15 минут это починить. Но чтобы понять, что авария произошла, нужно мониторить проект и реагировать на инциденты. А как это делать?

Я считаю, что в организации правильной системы мониторинга происходит беда. Если бы беды не было, то мой спич состоял из одного тезиса: «Установите, пожалуйста, Prometheus + Grafana и плагины 1, 2, 3». К сожалению, теперь так не работает. И главная проблема заключается в том, что все продолжают верить во что-то такое, что существовало в 2008 году, с точки зрения программных компонентов.

В отношении организации системы мониторинга я рискну сказать, что… проектов с грамотным мониторингом не существует. И ситуация настолько плохая, если что-то упадёт, есть риск, что это останется незамеченным — все ведь уверены, что «всё мониторится».
Возможно, всё мониторится. Но как?

Все мы сталкивались с историей наподобие следующей: работает некий девопс, некий админ, к ним приходит команда разработчиков и говорит — «мы зарелизились, теперь замониторь». Что замониторь? Как это работает?

Ок. Мониторим по старинке. А оно уже изменяется, и выясняется, что ты мониторил сервис А, который стал сервисом B, который взаимодействует с сервисом C. Но команда разработчиков тебе говорит: «Поставь софт, он же должен все замониторить!»

Так что изменилось? — Всё изменилось!
Читать дальше →

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

Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 2: оптимизация байт-кода в PHP 7.1

Время на прочтение7 мин
Количество просмотров14K
В первой части рассказа по мотивам выступления Дмитрия Стогова из Zend Technologies на HighLoad++ мы разбирались во внутреннем устройстве PHP. Детально и из первых уст узнали, какие изменениях в базовых структурах данных позволили ускорить PHP 7 более чем в два раза. На этом можно было бы и остановиться, но уже в версии 7.1 разработчики пошли существенно дальше, так как идей по оптимизации у них было еще много.

Накопленный опыт работы над JIT до семёрки теперь можно интерпретировать, смотря на результаты в 7.0 без JIT и на результаты HHVM с JIT. В PHP 7.1 было решено c JIT не работать, а опять обратиться к интерпретатору. Если раньше оптимизации касались интрепретатора, то в этой статье посмотрим на оптимизацию байт-кода, с использованием вывода типов, который реализовали для нашего JIT.



Под катом Дмитрий Стогов покажет, как это все работает, на простом примере.
Читать дальше →

NoVerify: линтер для PHP от Команды ВКонтакте теперь в открытом доступе

Время на прочтение8 мин
Количество просмотров22K


Расскажу, как нам удалось написать линтер, который получился достаточно быстрым, чтобы проверять изменения во время каждого git push и делать это за 5−10 секунд при кодовой базе в 5 миллионов строк на PHP. Мы назвали его NoVerify.

NoVerify поддерживает базовые вещи вроде перехода к определению и поиску использований и умеет работать в режиме Language Server. В первую очередь наш инструмент ориентирован на поиск потенциальных ошибок, но умеет проверять и стилистику. Сегодня его исходные коды появились в open-source на GitHub. Ищите ссылку в конце статьи.
Читать дальше →

Как интернет-магазины теряют деньги из-за адреса в форме заказа

Время на прочтение3 мин
Количество просмотров44K


Давненько мы не разбирали формы заказа. В этом выпуске — две ошибки, из-за которых интернет-магазины и службы доставки постоянно теряют деньги. А клиенты при этом вообще раскаляются.
Читать дальше →

Пусть они вставляют пароли

Время на прочтение4 мин
Количество просмотров28K
Примечание переводчика: Автор статьи — эксперт по социотехнической безопасности (Sociotechnical Security Researcher) в Национальном центре кибербезопасности Великобритании (NCSC), подразделении Центра правительственной связи (GCHQ), который отвечает за ведение радиоэлектронной разведки и обеспечение защиты информации органов правительства и армии.



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

Так зачем организации это делают? Часто они не дают никаких объяснений, но если всё-таки дают, то говорят о «безопасности». NCSC не думает, что эти опасения обоснованы. Мы считаем, что блокировка вставки паролей (БВП) — это плохая практика, которая ухудшает безопасность. Мы считаем, что пользователям следует разрешить вставлять пароли.
Читать дальше →

PHP-Дайджест № 110 – свежие новости, материалы и инструменты (28 мая – 11 июня 2017)

Время на прочтение4 мин
Количество просмотров22K


Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 Alpha 1, свежие предложения из PHP Internals, Symfony 3.3.0, Yii 1.1.19 и 2.0.12, нововведния Laravel 5.5, спор о Visual Debt и многое другое. Приятного чтения!


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

PHP-Дайджест № 107 – свежие новости, материалы и инструменты (9 – 23 апреля 2017)

Время на прочтение3 мин
Количество просмотров19K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Читать дальше →

Видеозаписи: февральский TechLeads-митап в офисе Badoo

Время на прочтение2 мин
Количество просмотров10K

enter image description here


В феврале мы провели наш второй митап для лидов, руководителей отделов, СТО и неравнодушных. Для всех, кто не смог прийти и посмотреть выступления живьем, публикуем видео (и, конечно, слайды). Тема всего митапа: как создать и сохранить динамичную разработку в условиях постоянного роста команды и изменений в компании.

Вклад авторов