В JavaScript обычные функции возвращают одно значение или вообще ничего, но что, если бы вы могли выдавать несколько значений по запросу? Представляем вам генераторы - мощную функцию, появившуюся в ECMAScript 2015 (ES6), позволяющую функциям выдавать несколько значений, что дает возможность лучше контролировать итерацию.
Генераторы, созданные с помощью специального синтаксиса
function*, ведут себя совершенно иначе, чем традиционные функции. Вместо того чтобы выполняться до конца после вызова, функция-генератор возвращает объект генератор, способный управлять её выполнением. Это позволяет функции приостанавливать и возобновлять выполнение, выдавая значения одно за другим с помощью ключевого слова yield.Если вы создаете потоки данных, управляете асинхронными операциями или выполняете итерации над большими наборами данных, генераторы обеспечивают элегантное решение, позволяя выполнять итерации по требованию. Это введение посвящено принципу работы функций-генераторов, изучению ключевых методов, таких как
next(), и демонстрации того, как они органично сочетаются с циклами for...of в JavaScript.Далее вы узнаете, как использовать возможности генераторов JavaScript для упрощения итерации и оптимизации производительности кода.
#webdev #JavaScript #js #beginners #tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
По мере развития JavaScript появляются новые возможности и предложения, призванные сделать кодирование более эффективным и защищенным от ошибок. Одной из таких функций стал оператор безопасного присваивания (
?=), предложенный в качестве дополнения к языку. Хотя мы всё ещё ждём его официального релиза, реализовать подобную функциональность можно уже сегодня, чтобы обезопасить код от таких распространённых проблем, как null или undefined значения.В статье мы рассмотрим оператор
?=, создадим собственную версию, используя существующий JavaScript, и представим практические способы более изящной обработки промисов в асинхронных операциях.#JavaScript #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Git - это мощная система контроля версий, позволяющая разработчикам управлять изменениями кода в нескольких ветвях. Одна из самых полезных функций Git -
git cherry-pick, позволяющая применять определенные коммиты из одной ветви в другую. Если необходимо сделать бэкпорт исправления ошибки, синхронизировать функцию между ветвями или изолировать изменения, cherry-pick может сэкономить много времени и хлопот.В этом руководстве мы подробно рассмотрим cherry pick в Git. Рассмотрим всё, начиная с базового использования и заканчивая продвинутыми техниками, включая разрешение конфликтов, работу с несколькими коммитами и применение cherry-pick в сложных рабочих процессах. К концу этого руководства вы будете хорошо понимать, когда и как использовать
git cherry-pick для оптимизации рабочего процесса Git.#webdev #git #howto
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет, веб-разработчики Laravel! В этой статье мы рассмотрим, как реализовать валидацию формы на стороне клиента с помощью jQuery в Laravel 11. Мы будем использовать validate.js для обработки проверки формы. При использовании валидации на стороне клиента нет необходимости отправлять форму и ждать, пока сервер вернет ошибки валидации.
Вместо этого ошибки валидации срабатывают мгновенно, без обновления страницы, а сообщения об ошибках отображаются непосредственно в полях ввода.
#laravel #laravel11 #jQuery #form
Please open Telegram to view this post
VIEW IN TELEGRAM
Атаки с использованием CSS-инъекций часто игнорируются при обеспечении веб-безопасности, однако они представляют собой серьезную опасность, если не принять надлежащих мер. Как правило, CSS используется для улучшения визуального представления веб-сайтов, определения макетов, цветов и шрифтов. Однако злоумышленники могут использовать уязвимости в работе с CSS. Это позволяет им внедрять вредоносный код, который манипулирует поведением сайта, крадет конфиденциальные данные или взаимодействует с полями ввода пользователя.
В этом руководстве мы подробно рассмотрим CSS-инъекции. Что это такое, как они работают, какое потенциальное влияние они могут оказать на ваш сайт, а также лучшие методы их предотвращения. Рассмотрим примеры кода от начального до продвинутого уровня.
#webdev #css #html #security
Please open Telegram to view this post
VIEW IN TELEGRAM
Здравствуйте, веб-разработчики Laravel!
В этой статье мы познакомимся с тем, как создавать микросервисы в Laravel 11. В этой версии Laravel микросервисы предоставляют уникальную возможность разделить большое монолитное приложение на множество небольших, слабосвязанных сервисов.
Каждый такой сервис отвечает за конкретную функцию в системе и может масштабироваться независимо. Laravel 11 предлагает прочную основу для создания микросервисов, используя уже существующие функции, такие как очереди, трансляция событий, HTTP-клиенты и обнаружение сервисов.
Архитектура микросервисов позволяет разделить приложение на более мелкие, легко управляемые и независимо развертываемые сервисы. Это, в свою очередь, способствует лучшей масштабируемости, изоляции от сбоев и ускорению процесса разработки.
Давайте рассмотрим, как построить базовую микросервисную архитектуру с помощью Laravel 11, включая методы коммуникации и управление вызовами.
#webdev #laravel #microservice
Please open Telegram to view this post
VIEW IN TELEGRAM
Здравствуйте, веб-разработчики Laravel! В этой статье мы обсудим, как создать событийно-управляемую архитектуру в Laravel 11.
Событийно-управляемая архитектура (EDA) в Laravel позволяет различным частям вашего приложения взаимодействовать асинхронно, используя события и слушателей. Этот архитектурный шаблон помогает разделить сложные рабочие процессы, гарантируя, что каждый компонент может реагировать на изменения состояния или действия пользователя, не будучи напрямую зависимым от других.
В Laravel события представляют собой действия или триггеры, а слушатели обрабатывают логику ответа на них. Широковещательная рассылка событий позволяет клиентам получать информацию в режиме реального времени через WebSockets.
#webdev #laravel #EDA
Please open Telegram to view this post
VIEW IN TELEGRAM
Clickjacking, также известный как модификация UI, - форма атаки, при которой пользователя обманом заставляют нажать не на то, что он воспринимает. Эта вредоносная техника обычно включает в себя наложение скрытых или прозрачных HTML-фреймов поверх легитимных веб-страниц, что заставляет пользователей неосознанно взаимодействовать с невидимыми элементами, вызывающими несанкционированные действия. От перевода средств до изменения настроек или даже раскрытия конфиденциальных данных, clickjacking может иметь серьезные последствия как для пользователей, так и для веб-сайтов.
#webdev #clickjacking #security
Please open Telegram to view this post
VIEW IN TELEGRAM
XML-RPC - протокол удаленного вызова процедур (RPC), использующий XML для кодирования вызовов и HTTP в качестве транспортного механизма. В WordPress XML-RPC обеспечивает удаленный доступ к различным функциям, позволяя пользователям взаимодействовать со своими сайтами без прямого доступа к браузеру. С его помощью работают такие функции, как мобильное приложение, trackback и внешние публикации. Однако эта, казалось бы, полезная функция также может быть использована, что делает её основной целью для брутфорса и DDoS-атак.
#webdev #WordPress #wp #clickjacking #security
Please open Telegram to view this post
VIEW IN TELEGRAM
Здравствуйте, веб-разработчики Laravel! В этой статье мы рассмотрим Laravel-Based Progressive Web App (PWA) с Service Worker. Прогрессивные веб-приложения (PWA) - это веб-приложения, которые сочетают в себе лучшее от веб-приложений и мобильных приложений.
Они предлагают возможность работы в автономном режиме, быстрое время загрузки и push-уведомления, что делает их удобными для пользователей и высокоэффективными. В этом руководстве мы рассмотрим, как создать PWA на Laravel, сосредоточившись на внедрении рабочих служб для стратегии кэширования, обеспечении автономной функциональности и интеграции push-уведомлений.
#webdev #Laravel #PWA
Please open Telegram to view this post
VIEW IN TELEGRAM
Это первая статья из цикла, в котором рассказывается о наиболее важных нововведениях в Symfony 7.2, релиз которого состоится в конце ноября 2024 года.
Symfony включает в себя десятки ограничений для проверки данных в приложениях. В Symfony 7.2 мы добавляем три новых ограничения.
#webdev #Symfony
Please open Telegram to view this post
VIEW IN TELEGRAM
Здравствуйте, веб-разработчики Laravel! В этой статье мы рассмотрим работу eloquent ORM со сложными отношениями. Если вы уже давно используете Laravel, то наверняка знакомы с основами Eloquent ORM - мощного слоя абстракции баз данных в Laravel.
Однако по мере роста приложения может понадобиться обрабатывать более сложные отношения, такие как отношения «многие-ко-многим», полиморфные отношения и глубоко вложенные запросы. Эти отношения могут стать сложными, если их не обрабатывать эффективно, что приведет к проблемам с производительностью.
В этом руководстве я расскажу о некоторых продвинутых методах Eloquent ORM, которые помогут эффективно управлять сложными отношениями и оптимизировать производительность вашего приложения. Мы рассмотрим практические примеры и фрагменты кода, чтобы вам было легко следовать за мной.
#webdev #Laravel #Eloquent
Please open Telegram to view this post
VIEW IN TELEGRAM
На этой неделе была выпущена первая бета-версия Inertia.js v2. Основная библиотека была переписана для поддержки асинхронных запросов, что позволило раскрыть некоторые впечатляющие возможности, которые теперь можно получить в свои руки!
#webdev #Laravel #Logs
Please open Telegram to view this post
VIEW IN TELEGRAM
Здравствуйте, веб-разработчики Laravel! В этом руководстве я пошагово расскажу о том, как создать инструмент совместного редактирования в реальном времени с помощью Laravel WebSockets и Livewire. Эта функция позволяет нескольким пользователям одновременно редактировать один и тот же контент, при этом все изменения отражаются в реальном времени.
Представьте, что вы работаете над проектом, в котором ваша команда может совместно редактировать документы, подобно Google Docs - именно это мы и собираемся создать. Это захватывающий проект, и я все упрощу для вас, чтобы даже новички могли с ним справиться.
#webdev #Laravel #WebSockets
Please open Telegram to view this post
VIEW IN TELEGRAM
Alpine.js - легкий JavaScript-фреймворк, позволяющий добавлять динамическое поведение в HTML с минимальными усилиями. В этом руководстве рассмотрим, как создать простой, но эффективный диалог (также известный как модальный) с помощью Alpine.js.
Эта техника идеально подходит для отображения дополнительной информации, форм или предупреждений без перехода с текущей страницы.
#webdev #Alpine #JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
CSS градиенты существуют так давно, что нет необходимости повторять, что это такое и как их использовать. Вы наверняка сталкивались с ними на каком-то этапе своего фронтенд-путешествия, и если вы следите за мной, то знаете, что я использую их постоянно. Я использую их для CSS-шаблонов, красивых CSS-декораций и даже CSS-загрузчиков. Но даже в этом случае градиенты имеют сложный синтаксис, который может очень быстро усложниться, если вы не будете внимательны.
В этой статье мы не будем создавать сложные вещи с помощью градиентов CSS. Вместо этого мы будем придерживаться простоты, и я расскажу обо всех невероятных вещах, которые мы можем сделать с помощью одного градиента.
#webdev #CSS #tricks
Please open Telegram to view this post
VIEW IN TELEGRAM
#webdev #WordPress #wp #xss #security
Защита WordPress от атак межсайтового скриптинга (XSS)
Атаки межсайтового скриптинга (XSS) - распространенная угроза безопасности, которая может скомпрометировать веб-сайты, украсть данные пользователей и использовать уязвимости веб-приложений. В WordPress XSS-атаки особенно опасны, поскольку они часто направлены на пользовательский контент или формы, такие как комментарии или поля ввода. В этой статье мы рассмотрим, как злоумышленники используют XSS-уязвимости в WordPress, какой ущерб они могут нанести и какие меры вы можете предпринять для защиты своего сайта от этих атак с внедрением контента.
👉 Читать статью (🇬🇧)
@webdev_trends
Защита WordPress от атак межсайтового скриптинга (XSS)
Атаки межсайтового скриптинга (XSS) - распространенная угроза безопасности, которая может скомпрометировать веб-сайты, украсть данные пользователей и использовать уязвимости веб-приложений. В WordPress XSS-атаки особенно опасны, поскольку они часто направлены на пользовательский контент или формы, такие как комментарии или поля ввода. В этой статье мы рассмотрим, как злоумышленники используют XSS-уязвимости в WordPress, какой ущерб они могут нанести и какие меры вы можете предпринять для защиты своего сайта от этих атак с внедрением контента.
👉 Читать статью (🇬🇧)
@webdev_trends
withConsecutive()Метод withConsecutive() был устаревшим в PHPUnit 9 и удален в PHPUnit 10. Это вызвало множество вопросов на StackOverflow, в различных проектах и на GitHub.
Это не было очень популярным нарушением обратной совместимости. Замены 1:1 не существует. Он может быть объединен с методами willReturn*(), что может сделать его еще более сложным для слияния.
При обновлении PHPUnit 95 % времени уходит на обновление этого единственного метода и 5 % - на все остальные. За последние месяцы мы провели несколько обновлений проекта с помощью Rector и узнали много нового.
Сегодня я хочу поделиться с вами знаниями и объяснить, почему это изменение для улучшения кода.
#webdev #PHP #PHPUnit
Please open Telegram to view this post
VIEW IN TELEGRAM
At-правило
@supports было несколько раз расширено с момента его первого выпуска. Когда-то оно позволяло проверять поддержку только пар свойство/значение, теперь оно может проверять наличие селектора с помощью функции-обертки selector() и различных форматов и технологий шрифтов с помощью font-format() и font-tech(), соответственно. Однако сообщество всё ещё жаждет одной возможности - проверки поддержки других at-правил.#webdev #CSS #tricks
Please open Telegram to view this post
VIEW IN TELEGRAM
При создании веб-приложений удобно разбивать сложные процессы на более мелкие и управляемые части, используя отдельные функции или классы. Это помогает сохранить код чистым, удобным для сопровождения и тестирования.
Подход, который можно применить для разделения этих небольших шагов в приложении Laravel, заключается в использовании конвейеров Laravel. Конвейеры позволяют отправлять данные через несколько уровней логики, прежде чем вернуть результат. На самом деле Laravel использует конвейеры для обработки запросов и их прохождения через все промежуточные компоненты приложения.
В этой статье рассмотрим, что такое конвейеры и как Laravel использует их внутри, а также узнаем, как создавать собственные конвейеры. Также мы расскажем о том, как писать тесты, чтобы убедиться, что ваши конвейеры работают так, как ожидается.
К концу статьи вы должны понимать, что такое конвейеры, и быть уверенными в том, что сможете использовать их в своих приложениях Laravel.
#webdev #Laravel #Pipelines
Please open Telegram to view this post
VIEW IN TELEGRAM
Enums появились в PHP 8.1, и Laravel в полной мере использовал их возможности. Давайте посмотрим, как можно использовать Enums в ваших проектах Laravel сегодня.
#webdev #PHP #Laravel #Enums
Please open Telegram to view this post
VIEW IN TELEGRAM