Статьи
Security В этой статье мы объясним, что такое заголовок ответа Access-Control-Allow-Origin в отношении CORS и как он является частью реализации CORS.JavaScript Разберёмся как создавать промисы и работать с ними в JavaScript. Рассмотрим цепочки промисов, обработку ошибок и некоторые из новых методов промисов, добавленных в язык.JavaScript Многие языки программирования имеют функцию sleep, которая задерживает выполнение программы на заданное количество секунд. Однако эта функциональность отсутствует в JavaScript из-за его асинхронной природы. В этой статье мы рассмотрим почему это произошло, а затем как реализовать функцию sleep самостоятельно.JavaScript В этой статье мы подробно рассмотрим, как работать с асинхронным кодом в JavaScript. Мы начнём с обратных вызовов, перейдём к промисам и закончим более современными async/await. В каждом разделе будет предложен пример кода, изложены основные моменты, о которых следует знать.JavaScript Как выглядит Fetch API, какие проблемы решает, и какой способ получения удалённых данных с помощью функции fetch() внутри веб-страницы наиболее практичен.JavaScript В JavaScript есть два способа создания функции: функциональное выражение и объявление функции. Мы обсудим когда использовать функциональное выражение, а когда объявление и объясним различия между ними.BackendLaravel При создании веб-приложения часто требуется добавить функцию, позволяющую пользователям загружать файлы. Например, вы можете разрешить пользователям обновлять изображения своего профиля или обмениваться файлами друг с другом.JavaScript Ключевые слова async и await представляют современный синтаксис JavaScript, помогающий обрабатывать асинхронный операции. В этом руководстве мы подробно рассмотрим, как использовать async/await для управления потоком данных.JavaScript Ад обратного вызова реален. Разработчики часто рассматривают обратные вызовы как чистое зло, вплоть до того, что избегают их. Гибкость JavaScript совсем не помогает в этом. Но не обязательно избегать обратных вызовов. Хорошая новость в том, что есть простые шаги спасения от ада обратных вызовов.JavaScript Когда вы начинаете изучать JavaScript, вскоре услышите термин функции обратного вызова
. Обратные вызовы — неотъемлемая часть модели выполнения JavaScript, и важно понимать, что они из себя представляют и как работают.Security В этой статье мы объясним что такое CORS, опишем некоторые распространённые примеры атак основанных на CORS, и обсудим, как от них защититься.Security В этой статье мы объясним, что такое политика безопасности контента, и опишем как использовать CSP для защиты от некоторых распространённых атак.BackendLaravelEloquent Трейты в PHP — мощный функционал позволяющий повторно использовать код в нескольких классах не повторяясь.BackendPHP OpenAI PHP — поддерживаемый сообществом PHP API клиент, позволяющий взаимодействовать с Open AI API.BackendLaravel Ответ от Laravel приложения — это то, что я бы назвал жизненно важным, особенно когда вы создаёте API. Давайте посмотрим, как можно улучшить наши ответы.BackendPHP Начните использовать возможности ИИ уже сегодня. Он позволяет делать разработчикам невероятные вещи, и многие стартапы создают продукты на его основе.Security В этой статье мы разберёмся, что такое Same-origin policy (SOP) - Политика единого источника и как она реализована.BackendLaravel В большинстве Laravel приложений необходимо отправлять уведомления, будь то внутри приложения, по электронной почте или в slack — обычно это уведомления о транзакциях, чтобы предупредить пользователя о каком-либо действии или событии в вашем приложении. Давайте разберёмся, что это такое и как действует.BackendLaravel GitHub Экшены — фантастический способ запуска рабочих процессов Continuous Integration, от запуска тестов до статического анализа и многого другого.BackendLaravelEloquent При работе с моделями часто нужно сделать что-то с данными до или после их сохранения в базе данных: изменить формат, обрезать пробелы, вырезать HTML-тэги и так далее.BackendLaravel Независимо от того, используете ли вы Laravel 10, 9 или 8, давайте рассмотрим рекомендации по улучшению кодовой базы в 2023 году.BackendLaravelEloquent При работе с большими набора данных, которые сложно получить или они редко изменяются, для снижения нагрузки на базу данных мы можем использовать кэширование.BackendPHP Что такое PHP-интерфейс? PHP интерфейс определяет контракт, который должен выполнить класс. Если PHP класс — это схема объектов, то интерфейс — это схема классов. Любой класс реализующий данный интерфейс, будет иметь одинаковое поведение с точки зрения того, что можно вызвать, как его можно вызвать и что будет возвращено.BackendPHP Как новичок в программировании, особенно в PHP, вы, возможно, слышали термины классы или объекты. Что такое PHP класс?BackendPHP Важно понимать, что такое PHP функция. Мы разберём, что такое PHP функция, сколько существует PHP функций, и рассмотрим примеры PHP функций.BackendLaravel Дублирование кода — самая болезненная вещь для многих разработчиков, вы думаете, что решили проблему, но есть несколько случаев одной и той же проблемы.BackendLaravelEloquent При работе с Моделями Eloquent обычно используют события, отправляемые в течении жизненного цикла Моделей. Есть несколько разных способов сделать это, и в этой статье я расскажу о них и объясню преимущества и недостатки каждого из них.BackendLaravel Data Transfer Object (DTO) — шаблон, который при правильном использовании может улучшить качество и удобство сопровождения приложения. В этой статье мы узнаем, зачем вы должны использовать DTO в своих приложениях и как это сделать в Laravel.BackendLaravel Файлы маршрутов Laravel могут быть сильно загружены. Однажды вы замечаете, что нужно приложить усилия, для того чтобы найти что-нибудь. Как вы с этим боретесь?BackendPHP Подробное и краткое руководство по установке и обновлению PHP 8.2 в системах Debian и Ubuntu.BackendPHP PHP продолжает развиваться с новыми критическими изменениями, и хотя это отлично подходит для большинства PHP-приложений, существуют легаси/устаревшие приложения, которые не могут оправдать затрат на их поддержку. Это руководство о том, как продлить срок службы легаси приложений с помощью обновлений безопасности и обслуживания.Security Помимо средств защиты, использующих CSRF токены, некоторые приложения используют HTTP-заголовок Referer, для попытки защититься от CSRF атак путём проверки того, что запрос исходит из собственного домена приложения. Как правило, этот подход менее эффективен и имеет обходные пути.Security Традиционный способ доказать, что вы обнаружили XSS уязвимость, — создать всплывающее окно с помощью функции alert()
. Это не потому, что XSS имеет какое-то отношение к всплывающим окнам; это просто способ доказать, что вы можете выполнять произвольный JavaScript в заданном домене. Вы могли заметить, что некоторые люди используют alert(document.domain)
. Это способ сделать явным демонстрацию на каком домене выполняется JavaScrip код.BackendLaravel Валидация обязательна для любого современного проекта, и в Laravel очень просто начать. Внутри методов контроллера вы можете вызвать метод, передать запрос и массив правил, на соответствие которыми хотите проверить данные.BackendLaravel Pipeline/Пайплайн — одна из малоизвестных возможностей Laravel. Он часто используется в самом фреймворке, например, маршрутизация, но не так много разработчиков его используют. В этой статье я попытаюсь объяснить их и показать несколько примеров.BackendLaravel В этой статье я хотел бы поговорить об объектах-значениях. Если вы не знаете, что это такое, вот краткое введение.BackendLaravelTesting JSON:API предоставляет множество возможностей для фильтрации, сортировки и включения дополнительных данных в запрошенные данные с использованием параметров запроса. Тестирование может быть утомительным, но в этом руководстве я расскажу, как подхожу к тестированию этих конечных точек c PestPHP.Security В этой статье мы объясним различия между XSS и CSRF, и обсудим, могут ли токены CSRF предотвратить XSS атаки.BackendLaravel Создание API в Laravel — это искусство. Вы должны думать не только о доступе к данным и обёртывании Eloquent Моделей в конечные точки API.BackendLaravel Давайте разберёмся, что такое DDD? Что делает Объект-Значение и какие у него преимущества? Как и зачем их использовать в Laravel приложении.BackendLaravel В Laravel есть фантастический контейнер внедрения зависимостей, но многие избегают его. В этой статье я расскажу, как использовать контейнер Laravel, чтобы мой код работал на меня.BackendLaravel С длительными заданиями в Laravel сложно работать. К счастью, есть способы обойти эти проблемы. Давайте рассмотрим несколько решений.BackendLaravel Давайте рассмотрим как установить и настроить PHP Codesniffer с новым Laravel проектом.BackendLaravel Если вы используете привязку модели к маршруту в API Контроллерах и запись не найдена, она автоматически вернёт статус код 404 с сообщением об ошибке, например No query results for model [App\Models\User] 1
. Как это изменить?BackendLaravel Типичная ошибка, которую вижу у разработчиков: использование $date->addDays(1)
, а затем ещё одного $date->addYears(1)
в том же запросе и получение неправильных результатов. Позвольте мне объяснить.BackendLaravelTesting Laravel 9 представил новый способ создания пользовательских правил валидации: вызываемые правила (invokable rules). Это позволяет написать пользовательское правило валидации только с одним методом: __invoke
.BackendLaravelEloquent При подсчёте записей Модели, сгруппированных по типу в отношении, возникает соблазн загрузить в память слишком много запросов к БД или слишком много данных. Есть несколько способов оптимизировать его, давайте рассмотрим пример.Security В этой стать мы опишем некоторые общепринятые принципы предотвращения XSS уязвимостей и способы использования различных распространённых технологий защиты от XSS атак.BackendLaravelEloquent Если у вас есть события Наблюдателя для обновления или удаления записей, важно знать, что они выполняются только при обновлении отдельных записей, а не при массовом обновлении или удалении.BackendLaravel Представьте, что вы хотите показать некие глобальные
данные в Blade: например, количество новых пользователей на этой неделе в верхнем блоке навигации. Не знаете от каких контроллеров будут поступать данные? Вы можете выполнить это действие в Service Provider тремя способами.BackendLaravelEloquent Представьте, что вы хотите загрузить Модель со многими связанными моделями, но отсортировать эти связанные результаты по некоторому столбцу в этой связанной БД. Как это сделать? Давайте сделаем ещё веселее и возьмём пример двухуровневых отношений.BackendLaravel Laravel представляет выразительный минимальный API для компонента Symfony Process, позволяющий удобно вызывать внешние процессы из приложения Laravel.BackendLaravel В выходящем Laravel 10 будет представлен новый слой фасадов Process. Давайте посмотрим зачем он нужен и в чём его преимущества.BackendPHP Абстрактная фабрика — шаблон проектирования, предоставляющий интерфейс для создания семейств связанных или независимых объектов без указания конкретных классов.JavaScript В JavaScript объекты используются для хранения нескольких значений в виде сложной структуры данных.JavaScript Создание и манипулирование URL-адресами в виде строк может казаться безопасным, пока не сложатся общие ошибки. Но у современного JavaScript есть решение для этого, Конструктор URL, делает чтение, запись и изменение URL-адресов более безопасным и чистым.BackendLaravel Давайте выясним действительно ли вам нужно обновлять своё приложение до Laravel 10? Или можно не спешить и сделать это в удобный момент?Security Во время тестирования Отражённого или Сохранённого XSS ключевой задачей является определение контекста XSS: место, где появляются данные и обработка данных приложением.Security В этой статье мы рассмотрим межсайтовый скриптинг на основе DOM (DOM XSS), выясним как найти уязвимости DOM XSS.Security В этой статье мы разберёмся что такое Сохранённые XSS (Stored XSS), рассмотрим влияние сохранённых XSS атак и объясним, как найти сохранённые XSS уязвимости.Security В этой статье мы рассмотрим отражённые межсайтовые сценарии, влияние отражённых XSS-атак и выясним как найти отражённые XSS-уязвимости.Security В этой статье мы объясним, что такое межсайтовые сценарии (XSS), опишем разновидности уязвимостей XSS и разъясним, как найти и предотвратить XSS.BackendPHP Фигурная скобка редко используется как знак препинания, но это один из самых распространённых символов в языках программирования.JavaScriptFrontend Cookie были единственным способом хранения временной и локальной информации, но теперь у нас есть localStorage. Он широко обсуждается и используется во множестве приложений JavaScript. В этой статье мы рассмотрим всё, что нужно знать о localStorage в JavaScript.BackendLaravel Перевод официального руководства по обновлению с Laravel 9 до Laravel 10. Примерное время обновления 10 минут.JavaScriptFrontend Удалите функции таймаута и избавьтесь от связанных с ними багов, вот событие которое действительно нужно: scrollend
.BackendLaravel Представьте работу приложения, в котором каждая конечная точка по-разному возвращает данные об успешных вызовах и вызовах с ошибками. Если это маленькое и простое приложение, поддерживаемое одним человеком, это может быть немного проще. Но если приложение начнёт расти и к команде присоединится больше людей, через некоторое время будет полный хаос для поддержки и улучшения приложения.BackendPHP С PHP версии 8.3 gc_status возвращает дополнительную информацию о сборщике мусора (GC).BackendLaravelEloquent Чтобы добавить запись в базу данных, вы можете использовать один из двух методов Eloquent create()
или Query Builder insert()
.Security В этой статье мы рассмотрим какие есть средства защиты от CSRF уязвимости и как правильно их реализовать на своём сайте для предотвращения уязвимости.BackendLaravel Вы можете столкнуться с ситуацией, когда нужно вернуть одни и те же данные для web и для API. Должно ли это быть в одном или разных контроллерах? Есть несколько способов решения.BackendLaravelEloquent При работе с API часто требуется вернуть ответ Eloquent в формате JSON.Security В этой статье мы объясним, что такое подделка межсайтовых запросов, опишем несколько примеров уязвимостей CSRF и разберём, как предотвратить CSRF атаку.BackendPHP Недавно была выпущена спецификация PHP Standards Recommendation 20, призванная помочь разработчикам использовать общий интерфейс получения системных даты и времени. Это важная рекомендация, если вам необходимо протестировать PHP код, манипулирующий системной датой и временем.BackendLaravel За эти годы я научился пользоваться целым рядом удивительных инструментов используемых для разработки приложений на PHP и Laravel.BackendLaravel В этой статье я расскажу о принципе внедрения зависимостей, так же известном как контейнер Inversion of Control (IoC). Расскажу как Laravel использует его внутри и предлагает эту концепцию разработчикам, чтобы их код был понятным и менее взаимозависимым.BackendLaravel Фасады, их любят или ненавидят. Но они естественная часть того, чем сегодня является Laravel. Фасады Laravel это не совсем фасады, не так ли?BackendLaravel Vite — новый фронтенд инструмент для Laravel. Давайте посмотрим, как перенести Laravel проект с webpack на Vite.BackendLaravel Недавно мы создавали Laravel API для мобильного приложения созданного отдельной командой. Когда пользователь сообщил о проблеме, одним из первых вопросов был Эта ошибка связана с API или мобильным приложением?
В этой статье я поделюсь стратегией ведения лога, которую мы использовали для быстрого поиска причин проблемы.BackendLaravelTesting Из этой статьи вы узнаете, как легко начать автоматизированное тестирование в Laravel.BackendLaravel SOLID. Звучит по-научному, не так ли? Но это просто маркетинг. На самом деле это самая простая вещь во вселенной. Набор принципов популяризованных Робертом С. Мартином.BackendLaravel Laravel Pint — новинка от команды Laravel. Отличная оболочка для PHP CS Fixer, мой любимый инструмент для стандартизации кода.BackendLaravel Продолжаем серию статей о происходящем под капотом, на этот раз о транзакциях базы данных в Laravel. Я не буду повторять всё о том, как вы можете использовать транзакции в Laravel. Если вы не знакомы с темой можете всё найти в официальной документации. Сейчас мы сосредоточимся на том, как эти реализации работают в фоновом режиме, что вызывало головную боль и как этого избежать. Итак, давайте разбираться.BackendPHP В этой статье мы обсудим различия между self::
, static::
и parent::
в PHP. Также расскажем, когда и почему вы можете использовать каждый из них в своём коде.BackendLaravel Коллекции Laravel действительно эффективны для работы с массивами данных. Давайте узнаем, как использовать предоставленные ими методы для улучшения приложений.TypeScript В этой статье мы рассмотрим распространённые типы значений. Это не исчерпывающий список, и в следующих статьях мы рассмотрим другие способы именования и использования типов.BackendLaravel Все мы время от времени совершаем глупые ошибки. Я делюсь этим, чтобы избавить кого-то ещё от небольшого разочарования.BackendLaravel Долгожданный ажиотаж наконец-то закончился, Laravel выпустили консольное приложение с открытым исходным кодом и мы получили его в свои руки. Представляем Laravel Pint...BackendLaravel Если у вас есть Middleware, где его использовать: в файле маршрутов или в Контроллере? Рассмотрим четыре варианта.BackendLaravel Давайте попробуем использовать генераторы для постраничного разбиения всех записей на примере PokeAPI.FrontendCSS CSS — важная часть дизайна любого сайта и у него есть нюансы. Один из них — разница между em
и rem
, когда и зачем их нужно использовать.BackendPHP Редиректы или перенаправления в PHP это просто. Мы рассмотрим их шаг за шагом и я покажу, как избежать некоторых ловушек. Мы узнаем нюансы между 301 и 302 перенаправлением.BackendLaravelEloquent Приготовьтесь повысить уровень Laravel навыков с помощью этого руководства по запросам Eloquent! Вы узнаете всё, что вам нужно знать, от начальных до продвинутых техник.BackendLaravel В этом руководстве вы узнаете о некоторых способах рефакторинга контроллера и использовании сервисов, событий, экшенов и многое другое.TypeScript TypeScript — типизированный язык. Однако необязательно указывать тип переменной. TypeScript выводит типы переменных, когда нет доступной явной информации в виде аннотации типов.TypeScript В этой статье мы разберёмся как TypeScript вывод и проверяет тип переменной, используя внутренний логический механизм, называемый Type Assertion - Утверждение Типа.BackendLaravel Фабрики Laravel значительно экономят время при написании тестов. Раньше я создавал фабрики, чтобы каждое свойство модели находилось в состоянии по умолчанию, но в последнее время я переключился на минимальные фабрики по умолчанию. Я объясню причины этого изменения и какие преимущества я обнаружил.BackendLaravelTDDTesting Тестирование или Разработка Через Тестирование (Test-Driven Development) важные и сложные темы программирования. Особенно сложным будет переход от простого написания тестов к TDD.TypeScript Изучение TypeScript часто является путешествием с повторными открытиями. Ваше первоначальное впечатление может быть довольно обманчивым: разве это не способ аннотации JavaScrip, чтобы компилятор помог найти потенциальные ошибки?JavaScriptFrontendBackend Большинство языков программирования имеют концепцию модулей: способ определить функции в одном файле и использовать их в другом.BackendLaravel Если вы никогда не создавали Laravel приложение, позвольте показать вам пошаговое руководство по Laravel с нуля — без особых требований. Следуйте инструкциям, для изучения Laravel.BackendLaravel Недавно я прочитал сообщение на форуме Laracasts с вопросом о валидации периода даты. Решил написать эту статью с возможным решением.BackendPHP Эти три структуры могут сбить с толку новичков в PHP или опытных разработчиков, поэтому давайте рассмотрим, что делает каждая из них и когда их лучше всего использовать.JavaScriptNodeJS Ключевое слово import
используется для импорта привязок, которые экспортируются другим модулем, а функция require()
используется для загрузки модуля в приложении Node.js. Эти два механизма похожи, но у них есть важные отличия о которых вам следует знать. Мы обсудим их в этой статье.BackendTools mkcert — невероятный инструмент командной строки с открытым исходным кодом генерирующий доверенные сертификаты, которые можно использовать для включения https на локальных веб-сайтахBackendPHP В PHP 5 ввели объявление типов (также известное как подсказки типов), которые позволяют функциям требовать, чтобы параметры имели определённый тип во время вызова. Если заданное значение имеет неправильный тип, то генерируется ошибка: в PHP 5 — исправимая фатальная ошибка, а в PHP 7 — исключение TypeError.BackendLaravel Миграции необходимы в любом приложение Laravel, использующем базу данных. Я расскажу, что это такое, почему нужно их использовать и как их генерировать.BackendLaravelEloquent Soft delete в Laravel позволяет предотвратить ошибки, не удаляя конфиденциальные данные из базы данных сразу.BackendLaravel Laravel 10 вышел 14 февраля 2023 года. Его разработка ещё продолжается. Давайте изучим новые функции о которых уже известно.BackendPHP Этот RFC предлагает добавить новые методы строительных блоков
в \Random\Randomizer
, реализующие полезные операции, которые либо многословны, либо очень сложны для реализации в пользовательской среде.BackendLaravel Изучение фреймворка может быть ошеломляющим. Время и практика сделают вас мастером. Вот несколько рекомендаций, которые помогут вам в достижении цели.PHPBackend PHP 8.3 выйдет 23 ноября 2023 года, и, как обычно, вам нужно быть в курсе новых функций и критических изменений, чтобы упростить переход.PHPBackend PHP представляет функции serialize()
и unserialize()
для сериализации любого значения PHP (строки, целые числа, объекты, NULL, массивы, перечисления и т. д.) и восстановление PHP-значения из этого строкового представления.PHPBackend В PHP 8.3 добавлена новая функция названая json_validate
, возвращающая true
или false
в зависимости от того, является ли заданная строка допустимой JSON-строкой.LaravelBackend В этой статье я покажу, как сократить Контроллеры с помощью Сервисных классов, а также различные способы инициализации и внедрения этого Сервиса.LaravelBackend Сервис Контейнер (Контейнер Служб), пожалуй, одна из самых запутанных тем для новичков в Laravel. Официальная документация объясняет его хорошо, но с большим количеством теоретических слов
. Давайте приступим к практике, и я покажу основные практические примеры, которые вам нужно знать.LaravelBackend Довольно часто я вижу людей, которые ищут cron
в контексте Laravel. У фреймворка есть механизм работающий поверх `crontab` в Linux, позвольте показать вам, как это работает.LaravelBackend Чтобы помочь вам узнать больше что происходит в вашем приложении, Laravel предоставляет надёжные службы логирования. Логирование в Laravel основано на каналах
. Каждый канал представляет определённый способ записи информации в лог.LaravelBackend DTO, или Domain Transfer Object, можно использовать для многих целей. С момента выпуска PHP 8 создание этих фантастических классов стало ещё проще.LaravelBackend Наведите порядок в контроллерах с помощью сервисных классовBackendPHP Обычное недоразумение, это различие между DTO и Объект-Значение. И поэтому я искал способ классифицировать эти объекты без ошибок.BackendPHP Когда использовать трейт? Никогда. Для трейта всегда есть лучшая альтернатива. В любом случае на практике я всегда нахожу лучшие альтернативы трейту.BackendPHP Релиз PHP 8.2 запланирован на 8 декабря 2022 года. В этой статье мы рассмотрим новые возможности, улучшения производительности, изменения и что объявлено устаревшим.BackendPHP В PHP 8.2 введён новый способ объявления классов: readonly-классы. Поскольку readonly-классы — просто синтаксический сахар для того, что бы сделать все свойства класса доступными только для чтения, это означает, что те же правила применяются и к readonly-классам.BackendPHP В PHP 8.1 введены readonly-свойства. Они избавляют от множества проблем, но и добавляют новую — запрет на переопределение readonly-свойств клонированного объекта. Давайте разберёмся с решением этой проблемы и найдём обходной путь.BackendPHP PHP 8.1 решает несколько проблем, вводя ключевое слово readonly. Это ключевое слово делает то, что предполагает его название: как только свойство установлено, оно больше не может быть изменено.BackendPHP С момента выхода, в конце 2020 года, PHP 8 изменил правила игры. В этом руководстве я рассмотрю все последние нововведения с реальными примерами того, как я могу их использовать.LaravelBackend Итак, я решил составить список из 20 моих любимых советов, которые я размещал в своих аккаунтах в соцсетях, чтобы все могли познакомиться с ними. Они не размещены в каком-то определённом порядке, но я надеюсь, что вы найдёте хотя бы один новый совет, который окажется полезным.BackendTools Многие страницы сайтов динамические. Это означает, что содержимое страницы может меняться от сеанса к сеансу в зависимости от того, кто её загружает, вошёл ли он в систему или вышел, а также от ряда других факторов. Если ваш сайт этого не делает, значит, вы имеете дело со статическими страницами.JavaScript При написании кода для web, в конечном итоге вам требуется выполнить некий процесс, который может занять несколько минут. JavaScript не может работать в многозадачном режиме, поэтому нам нужен способ обработки этих длительных процессов.NodeJSJavaScript При преобразовании между Buffer и String может быть указана кодировка символов. Если кодировка не указана, по умолчанию будет использоваться UTF-8LaravelBackend Laravel Socialite — официальный пакет Laravel для аутентификации у провайдеров OAuth. Он поддерживает аутентификацию с помощью Facebook, Twitter, LinkedIn, Google, GitHub и Bitbucket. Но что, если вы хотите использовать другой драйвер?JavaScriptNodeJS Способность понимать Node по-прежнему остаётся важным навыком, если вы фронтэнд разработчик. Deno появился как ещё один способ запуска JavaScript вне браузера, но огромная экосистема инструментов и программного обеспечения Node, означают, что в ближайшее время он никуда не денется.JavaScriptFrontendHTMLCSS Во второй части рассмотрим несколько примеров непосредственного использования веб-платформы в качестве альтернативы некоторым решениям, предлагаемым фреймворкамиJavaScriptFrontend В этой статье подробно рассматривается несколько технических возможностей, которые являются общими для всех фреймворков. Объясняется как они реализуются в различных фреймворках и какова стоимость их применения.JavaScriptFrontendHTML Проверка формы — одна из основных причин использования клиентского JavaScript. Это может предотвратить ошибки ввода пользователя до того, как выше приложение попытается отправить данные на сервер.JavaScript Для настройки статической части класса у нас есть только статические поля. Предложение ECMAScript вводит статические блоки инициализации для классов, которые, грубо говоря, являются для статических классов тем же, чем конструкторы являются для экземпляров.CSSTailwindFrontend Я продемонстрирую 10 лучших функций, предлагаемых в Tailwind CSS v3.0, чтобы вы могли начать использовать их и улучшать свой опыт фронтэнд разработки.SymfonyBackend При создании новых проектов Symfony вы можете начать с bare-bones skeleton или kitchen sink skeleton. Я никогда не использовал kitchen sink skeleton, так как предпочитаю начинать с минимального количества зависимостей и добавлять пакеты только тогда, когда они мне нужны. Symfony делает это безболезненным, так как в большинстве случаев сообщает, какой пакет добавить, когда вы пытаетесь использовать что-то, что ещё не входит в ваш набор зависимостей.LaravelTailwind Настройка Tailwind CSS 3 в проекте Laravel, перевод официальной документации Tailwind.LaravelTailwind В статье мы кратко рассмотрим, что такое Tailwind CSS и почему я считаю его полезным. Затем мы рассмотрим два разных способа настройки Tailwind в Laravel проектах.JavaScript Долгое время приходилось прибегать к обходным путям и библиотекам для создания глубокой/deep копии значения JavaScript. Появилась поддержка глубокого копирования встроенной функций structuredClone()
.LaravelBackend При разработке веб-приложения может возникнуть ситуация, когда вам нужно узнать некоторую информацию о браузере и операционной системе вашего пользователя. В этой статье мы рассмотрим как это сделать.LaravelBackendTDD Тестирование - неотъемлемая часть разработки программного обеспечения. Это даёт уверенность, что код соответствует критериям приемлемости и снижает вероятность ошибок.JavaScript Я вижу много путаницы в отношении неизменяемости/иммутабельности строк и подумал, что сделаю всё возможно, чтобы прояснить, что это значит для запутавшихся.LaravelBackend Контроллеры играют огромную роль в любом проекте основанном на MVC (Model View Controller). По сути, они являются "клеем", который принимает пользовательский запрос, выполняет какую-то логику, а затем возвращает ответ. Если вы когда-либо работали над какими-либо довольно большими проектами, вы замечали, что у вас много контроллеров, и они могут довольно быстро начать превращаться в бардак. В этой статье мы рассмотрим, как можно очистить раздутый контроллер в Laravel.LaravelBackend Стандартные страницы ошибок в Laravel выглядят немного ужасно. В этой статье я покажу, как настроить страницы ошибок. К счастью для нас, в Laravel это очень просто. Мы создадим страницы для 404, 500 и 503 ошибок.NodeJSTools Предположим, что мы сделали обновление, но `npm publish` выдаёт ошибку. Как исправить ошибку: "You cannot publish over the previously published versions"LaravelBackend В веб-разработке важны целостность и точность данных. Поэтому необходимо быть уверенным, что мы пишем код, который безопасно хранит, обновляет и удаляет данные в наших базах данных. В этой статье мы рассмотрим, что такое транзакции базы данных, почему они важны и как начать их использовать в Laravel. Мы так же рассмотрим типичные проблемы связанные с заданиями в очереди и транзакциями баз данных.PHPBackend Недавно я опубликовал статью об улучшении PHP кода с помощью интерфейсов. Она охватывает основы того что такое интерфейс, что он может делать. И как вы можете использовать его сделав свой PHP код более расширяемым и поддерживаемым. Один из вопросов, заданных в комментариях к статье был от разработчиков, которые хотели знать "когда я должен использовать интерфейс вместо абстрактного класса?". Я подумал и решил написать статью, что бы объяснить различия между абстрактными классами и интерфейсами в PHP и дать краткий обзор того, когда вы должны использовать каждый из них.PHPBackend В программировании важно убедится, что ваш код легко читается, поддерживается, расширяется и тестируется. Один из способов улучшить эти факторы — использовать интерфейсы.LaravelBackend Хелперы могут быть полезны в ваших Laravel проектах. Они помогают упростить код в проекте простым и понятным способом. В Laravel есть множество встроенных хелперов.SassFrontend В зависимости от размера проекта над которым вы работаете, вы можете структурировать Sass двумя способами: простым для небольших и более сложным для крупных проектов.GitTools Ошибки. Эти жестокие злодеи не останавливаются даже на прекрасном мире разработки программного обеспечения. Мы не можем избежать ошибок, но мы можем научиться их исправлять! В этой статье будут рассмотрены инструменты, подходящие для повседневной работы с Git.GitTools Независимо от того, насколько вы опытны, ошибки - неизбежная часть разработки программного обеспечения. Но мы можем научиться исправлять их! И это то, что мы рассмотрим в этой серии из двух частей: Руководства по исправлению ошибок с помощью Git.TailwindCSSFrontend В этом году было много шумихи вокруг популярного CSS фреймворка Tailwind. Хочу поделиться мыслями и опасениями по поводу UI этого фреймворка. У меня был небольшой опыт написания utility-first CSS кода, когда я начинал свою карьеру во фронтенде несколько лет назад.JavaScriptFrontendBackend На днях коллега подошёл ко мне со строкой кода, которую нашёл на StackOverflow, и спросил, как это работает. И я подумал, что это отличный пример четырёх концепций от среднего до продвинутого уровня JavaScript, поэтому решил записать и обосновать своё объяснение.HTMLFrontend Семь редко используемых HTML атрибутов, о которых вы возможно не знали.JavaScript Деструктуризация в JavaScript — упрощённый метод извлечения нескольких свойств из массива путём взятия структуры и её деконструкции на отдельные составные части посредством присваивания с использованием синтаксиса, который похож на литералы массива.JavaScript Долгое время XML был предпочтительным форматом данных для обмена между двумя точками. Затем, в начале 2000 года, был представлена JSON как альтернативный формат данных для обмена информацией. В этой статье вы узнаете всё о JSON. Вы поймёте, что это такое, как им пользоваться, и мы проясним несколько заблуждений.CSSFrontend Часто хочется, чтобы был способ избежать возникновения определённой проблемы или поведения CSS. Вы знаете, что контент динамический, и на веб-странице всё может измениться, что увеличивает вероятность возникновения проблемы с CSS или странного поведения.JavaScriptFrontendBackend В JavaScript hoisting/подъём позволяет использовать функции и переменные до их объявления. В этой статье мы узнаем что такое hoisting/подъём, и как он работает.CSS Проект черновика рабочей группы CSS для Selectors Level 4 включает несколько селекторов псевдоклассов, которые уже поддерживаются в большинстве современных браузеров. В этом руководстве будут рассмотрены те из них, которые имеют наилучшую поддержку, а так же приведены примеры, демонстрирующие как вы можете их использовать уже сейчас.SymfonyBackend Улучшения в Symfony 5.4: более длинные интервалы для компонента RateLimiter; простой способ создания ошибок в компоненте Validator; блокировка файлов при добавлении данных в методе Filesystem; экстрактор метаданных PhpStan для компонента PropertyInfoSymfonyBackend Улучшения в Symfony 5.4: настраиваемый статус-код HTTP для шаблонов из маршрутов; новый метод innerText() в компоненте DomCrawler; рекурсивная поддержка .gitignore в компоненте Finder, и новая команда для отладки переменных окружения.SymfonyBackend Новые улучшения в Symfony 5.4: Строгий режим для ресурсов, улучшения страницы ошибок, исключения каталогов для линтера yaml, новый нулевой класс ULID и новые строковые функции.SymfonyBackend Symfony 5.4 вышел несколько дней назад, но у нас ещё есть записи в блоге об улучшениях основных функций ожидающие своей публикации. В этой публикации мы расскажем об улучшениях добавленных в компонент Serializer.SymfonyBackend Помимо переработанной панели логов, Symfony 5.4 включает другие улучшения связанные с профилировщиком Symfony.SymfonyBackend В Symfony версии 5.4 значительно улучшили компонент Messenger, теперь можно любой класс назначить обработчиком компонента, стало проще получать метаданные воркера и появилась обработка сообщений в пакетном режиме.SymfonyBackend Каждые два года Symfony выпускает новый релиз основной/мажорной версии (изменяется первый номер). Эти выпуски довольно сложно обновить, поскольку они могут нарушать обратную совместимость. Однако, Symfony максимально упрощает процесс обновления. Это означает, что вы можете обновить большую часть своего кода до того, как основная версия будет выпущена в релиз. Это называется "сделать ваш код совместимым с будущим релизом".CSSFrontend Важно иметь постоянное соотношение ширины и высоты изображений и других отзывчивых элементов. Мы много лет использовали в CSS хак с отступами, но сейчас у нас есть встроенная поддержка соотношения сторон в CSS. В этой статье я расскажу, что такое соотношение сторон, как мы его использовали и как это делать по-новому. Конечно, будут варианты использования с подходящими запасными вариантами.CSSFrontend В этой статье я хочу поделиться, тем что я делаю при изменении размеров элементов в DevTools браузера.CSSFrontend Мы не можем говорить о веб-разработке, не упоминая Отзывчивый Дизайн. В наши дни это просто данность, и так было уже много лет. Медиа запросы - часть отзывчивого дизайна, и они никуда не денутся. С момента появления медиа-запросов (буквально десятилетия назад) CSS эволюционировал до такой степени, что существует множество трюков, которые могут нам помочь существенно сократить количество медиа-запросов. В некоторых случая я покажу вам, как заменить несколько медиа-запросов только одним CSS объявлением. Эти подходы могут привести к уменьшению объёма кода, упрощению обслуживания и большей степени привязаны к имеющемуся контенту.CSSGridFrontend Если вы когда-нибудь пытались разместить прилипающий элемент в макетной сетке grid и наблюдали, как элемент прокручивается вместе с остальным содержимым, вы могли прийти к выводу, что position: sticky
не работает с CSS Grid.GitTools Команды Git log
и diff
полезны для проверки изменений вашего репозитория. Обе команды принимают диапазоны коммитов в разных форматах, что может сбивать с толку. В этой статье я пролью свет на различия между диапазонами коммитов a b
, a..b
, a...b
.GitTools Одна из основных функций Git — "переписывание истории", то есть "изменять" существующие коммиты. Я использую кавычки, потом что, несмотря на это история Git неизменна. Преднамеренно невозможно изменить существующий коммит с помощью обычных команд Git.CSSSassFrontend Небольшое введение в селекторы атрибутов. В течение пяти минут, я покажу пять способов практического использования селектора атрибутов.CSSFrontend Недавно я добавил в этот блог простой визуальный эффект, который мне быстро понравился: когда вы наводите курсор на ссылку, анимированное подчёркивание ссылки раскрывается из центра. Создать этот эффект на удивление легко и не требует добавления каких-либо дополнительных элементов в DOM HTML.CSSGuideFrontend В этой статье мы рассмотрим лучшие на сегодня способы обработки цветов в CSS, несколько советов по их использованию в дизайн-системе и то, что мы можем ожидать от наших цветов в недалёком будущем.VimToolsHTMLFrontend Мы рассмотрим несколько возможностей Emmet плагина для vim на конкретных примерах, и к концу этой статьи вы будете выдавать html-код, как по волшебству, и вам будет интересно узнать больше!VimTools В этой статье я хотел бы объяснить некоторые вещи о Vim, которые большинство людей не знают. От причин, по которым он был разработан таким, какой он есть. До некоторых замечательных скрытых функций, которые вы, вероятно, (ещё) не используете.FrontendHTML Пора переосмыслить, как мы готовим набор иконок для современных браузеров и остановить безумие генераторов иконок. Сейчас, фронтэнд разработчику приходится иметь дело с 20+ статических PNG файлов для отображения крошечного логотипа сайта во вкладке браузера или на сенсорном экране. Читайте дальше и вы узнаете, как применить более разумный подход и использовать минимальный набор иконок, который соответствует большинству современных потребностей.GulpTools Ещё одно приятное дополнение к vinyl-fs
, которое появилось в Gulp 4 – это возможность иметь 'сквозные' исходные потоки. Оно делает gulp.src
доступным для записи.JavaScriptTypeScript Поищем ответ на вопросы: чем JavaScript отличается от TypeScript, и что из них предпочтительнее для разработкиJavaScriptTypeScript Давайте разберёмся чем JavaScript отличается от TypeScript и насколько сильны их различияCSSHTMLBEMFrontend При разработке программного обеспечения важно согласовывать общий курс, технологии и методологии. Эти соглашения должны быть результатом обсуждений, знаний, а иногда голосований.