В Symfony 6.4 добавлено разрешение бейджей безопасности в профилировщике, более безопасные логи безопасности и возможность раздельного определения нескольких паттернов в брандмауэрах безопасности.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-security-improvements/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-security-improvements/
Заметки разработчика
Новое в Symfony 6.4: Улучшения безопасности
В Symfony 6.4 добавлено разрешение бейджей безопасности в профилировщике, более безопасные логи безопасности и возможность раздельного определения нескольких паттернов в брандмауэрах безопасности.
Повторные отправки форм или запросов могут быть распространённой проблемой в веб-приложениях, часто приводящей к непредвиденным последствиям. Laravel предлагает простое решение для предотвращения таких дубликатов с помощью атомарной блокировки. В этой статье мы рассмотрим реализацию атомарной блокировки для обеспечения того, чтобы отправленная форма обрабатывалась только один раз. Кроме того, мы рассмотрим, как атомарные блокировки могут предотвратить многократную диспетчеризацию одного и того же задания.
https://www.dev-notes.ru/articles/laravel/preventing-duplicate-form-submissions-using-atomic-locks/
https://www.dev-notes.ru/articles/laravel/preventing-duplicate-form-submissions-using-atomic-locks/
Заметки разработчика
Предотвращение повторной отправки форм с помощью атомарной блокировки
Предотвращение повторных отправок форм и диспетчеризации заданий с помощью атомарных блокировок Laravel.
Давайте разберёмся нужны ли бандлеры для сборки JavaScript проектов? Есть ли выгода от пакетирования, или лучше загружать множество небольших js-файлов?
https://www.dev-notes.ru/articles/frontend/web-performance-and-parallel-vs.-waterfall-downloads/
https://www.dev-notes.ru/articles/frontend/web-performance-and-parallel-vs.-waterfall-downloads/
Заметки разработчика
Веб-производительность и параллельная vs. waterfall загрузка
Давайте разберёмся нужны ли бандлеры для сборки JavaScript проектов? Есть ли выгода от пакетирования, или лучше загружать множество небольших js-файлов?
Иногда требуется, чтобы список отображался не вертикально, а в виде горизонтального списка (как в навигационном меню).
https://www.dev-notes.ru/articles/css/semantic-horizontal-lists/
https://www.dev-notes.ru/articles/css/semantic-horizontal-lists/
Заметки разработчика
Семантические горизонтальные списки
Иногда требуется, чтобы список отображался не вертикально, а в виде горизонтального списка (как в навигационном меню).
❤1
Docker — это инструмент, облегчающий создание, развёртывание и запуск приложений с помощью контейнеров. Контейнеры позволяют инженеру упаковать приложение со всеми необходимыми компонентами, например библиотеками и другими зависимостями, и отправить его в виде единого пакета. Это означает, что приложение будет работать на любой другой машине, независимо от настроек, которые могут отличаться от настроек машины, использовавшейся для написания и тестирования кода.
https://www.dev-notes.ru/articles/devops/what-really-happens-when-you-command-docker-run/
https://www.dev-notes.ru/articles/devops/what-really-happens-when-you-command-docker-run/
Заметки разработчика
Что на самом деле происходит при выполнении команды 'Docker Run'
Docker — это инструмент, облегчающий создание, развёртывание и запуск приложений с помощью контейнеров.
Как настроить локальную среду разработки для тестирования классов или утилит пакета в рамках локального проекта Laravel.
https://www.dev-notes.ru/articles/laravel/create-a-laravel-package-on-your-local-environment/
https://www.dev-notes.ru/articles/laravel/create-a-laravel-package-on-your-local-environment/
Заметки разработчика
Создание Laravel пакета в локальной среде
Как настроить локальную среду разработки для тестирования классов или утилит пакета в рамках локального проекта Laravel.
В программировании, особенно в динамичном и постоянно развивающемся мире JavaScript, путь от новичка до опытного профессионала сопряжён с множеством трудностей и кривых обучения. Один из важнейших выводов, который я вынес из своего богатого опыта, как в качестве интервьюера, так и в качестве интервьюируемого, заключается в огромной важности понимания "почему", стоящего за нашими кодовыми решениями. Именно такое глубокое понимание и способность чётко сформулировать причины каждого решения действительно отличают исключительных специалистов.
https://www.dev-notes.ru/articles/javascript/clean-your-javascript-transform-conditional-statements/
https://www.dev-notes.ru/articles/javascript/clean-your-javascript-transform-conditional-statements/
Заметки разработчика
Очистите свой JavaScript: Трансформация условных операторов
В динамичном и постоянно развивающемся мире JavaScript, путь от новичка до опытного профессионала сопряжён с множеством трудностей и кривых обучения.
В этой статье я рассмотрю регулярные выражения, также известные как Regex, и попытаюсь убедить вас в том, что их наличие в вашей кодовой базе — плохая идея. Для краткости я не буду пытаться объяснить внутреннюю работу и применение Regex, но постараюсь убедить вас в необходимости их рефакторинга из вашей кодовой базы.
https://www.dev-notes.ru/articles/javascript/clean-your-javascript-get-rid-of-the-regular-expressions/
https://www.dev-notes.ru/articles/javascript/clean-your-javascript-get-rid-of-the-regular-expressions/
Заметки разработчика
Очистите свой JavaScript: Избавьтесь от регулярных выражений
В этой статье я рассмотрю регулярные выражения, также известные как Regex, и попытаюсь убедить вас в том, что их наличие в вашей кодовой базе — плохая идея.
В Symfony 6.4 реализована поддержка числовых кодов ISO 3166-1, улучшено ограничение Type, повышена точность форматирования временных сообщений, улучшена работа утилит фильтрации Finder...
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-dx-improvements-part-1/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-dx-improvements-part-1/
Заметки разработчика
Новое в Symfony 6.4: Улучшения DX (часть 1)
В Symfony 6.4 реализована поддержка числовых кодов ISO 3166-1, улучшено ограничение Type, повышена точность форматирования временных сообщений.
Цепочка прототипов — это механизм в JavaScript, позволяющий объектам наследовать свойства и методы других объектов, имея общий прототип. В JavaScript каждый объект имеет связанный с ним прототип объекта, и эти прототипы образуют цепочку. Когда свойство или метод не найдены в объекте, JavaScript просматривает цепочку прототипов, чтобы найти его в прототипе объекта или в прототипах его предков.
https://www.dev-notes.ru/articles/javascript/what-is-prototype-chaining/
https://www.dev-notes.ru/articles/javascript/what-is-prototype-chaining/
Заметки разработчика
Что такое цепочка прототипов в JavaScript
Цепочка прототипов — это механизм в JavaScript, позволяющий объектам наследовать свойства и методы других объектов, имея общий прототип.
AssetMapper был представлен в Symfony 6.3 как новый и современный способ управления ресурсами JavaScript и CSS с нулевой сборкой или внешними зависимостями, как в Node. В Symfony 6.4 мы его улучшили, добавив ряд функций, о которых вы просили. Компонент теперь также стабилен и защищён нашим BC обещанием!
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-assetmapper-improvements/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-assetmapper-improvements/
Заметки разработчика
Новое в Symfony 6.4: Улучшения AssetMapper
AssetMapper в Symfony 6.4 содержит огромное количество новых функций: загрузка локальных вендоров, поддержка CSS, интеллектуальная предзагрузка и многое другое.
TypeScript, статически типизированный надмножество JavaScript, привносит в язык дополнительные статические типы и объектно-ориентированное программирование на основе классов. Две важнейшие концепции, которые вводит TypeScript, — это Перегрузка и Дженерики. Эти возможности повышают гибкость, удобство повторного использования кода и безопасность наших программ.
https://www.dev-notes.ru/articles/typescript/typescript-mastering-overloading-and-generics/
https://www.dev-notes.ru/articles/typescript/typescript-mastering-overloading-and-generics/
Заметки разработчика
TypeScript: Освоение Перегрузки и Дженериков
Две важнейшие концепции, которые вводит TypeScript, — это Перегрузка и Дженерики.
Node.js позволяет создавать быстрые и масштабируемые веб-приложения используя JavaScript как на сервере, так и на клиенте. Ваше приложение может прекрасно работать на машине разработчика, но можете ли вы быть уверены, что оно будет работать на устройствах ваших коллег или на рабочих серверах?
В этом руководстве рассказывается о преимуществах запуска приложений Node.js в контейнерах Docker и о том, как создать практичный рабочий процесс разработки.
https://www.dev-notes.ru/articles/devops/node-js-docker/
В этом руководстве рассказывается о преимуществах запуска приложений Node.js в контейнерах Docker и о том, как создать практичный рабочий процесс разработки.
https://www.dev-notes.ru/articles/devops/node-js-docker/
Заметки разработчика
Как использовать Node.js с Docker
В этом руководстве рассказывается о преимуществах запуска приложений Node.js в контейнерах Docker и о том, как создать практичный рабочий процесс разработки.
Операции со строками и манипулирование ими относятся к фундаментальным задачам любого языка программирования, и Laravel предлагает обширный набор хелперов для упрощения этих задач. Для разработчика очень важно быть в курсе новейших методик и лучших практик, чтобы оптимизировать эффективность этих хелперов.
В этой статье мы рассмотрим десять ценных советов по оптимизации десяти Laravel хелперов для работы со строками в 2023 году. Независимо от того, являетесь ли вы начинающим или опытным разработчиком Laravel, эти советы помогут вам усовершенствовать навыки работы со строками и сделать ваш код более эффективным.
Давайте погрузимся в этот процесс и раскроем весь потенциал Laravel хелперов для работы со строками.
https://www.dev-notes.ru/articles/laravel/tips-for-optimizing-laravel-10-string-helpers-in-2023/
В этой статье мы рассмотрим десять ценных советов по оптимизации десяти Laravel хелперов для работы со строками в 2023 году. Независимо от того, являетесь ли вы начинающим или опытным разработчиком Laravel, эти советы помогут вам усовершенствовать навыки работы со строками и сделать ваш код более эффективным.
Давайте погрузимся в этот процесс и раскроем весь потенциал Laravel хелперов для работы со строками.
https://www.dev-notes.ru/articles/laravel/tips-for-optimizing-laravel-10-string-helpers-in-2023/
Заметки разработчика
Советы по оптимизации Laravel 10 с помощью строковых хелперов
Раскройте весь потенциал вспомогательных строковых хелперов в Laravel 10 с помощью 10 советов по оптимизации в 2023 году.
Как работать с редиректами и каковы последствия их использования — вот несколько вопросов, возникающих в процессе SEO-аудита. Некоторые SEO-эксперты более фаталистично, чем другие, относятся к тому, как редиректы могут повлиять на рейтинг вашего сайта на страницах результатов поисковых систем (SERP).
Будьте осторожны, когда SEO-эксперт говорит, что необходимо удалить все редиректы с вашего сайта.
В последние месяцы я получил несколько требований от очень обеспокоенных клиентов, которым рекомендовали "удалить ВСЕ редиректы" на сайте, поскольку это влияет на SEO. Обычно к этому требованию прилагается очень длинный лист, включающий все найденные ими "плохие" ссылки, которые должны быть исправлены "немедленно".
Во-первых, единственное, что говорят подобные отчёты, это: "эта ссылка ---- теперь указывает на ----", и больше ничего; при этом не уточняется, хорошо это или плохо, поэтому давайте выясним, как нам следует обрабатывать такие запросы.
https://www.dev-notes.ru/articles/seo/are-redirections-affecting-your-seo/
Будьте осторожны, когда SEO-эксперт говорит, что необходимо удалить все редиректы с вашего сайта.
В последние месяцы я получил несколько требований от очень обеспокоенных клиентов, которым рекомендовали "удалить ВСЕ редиректы" на сайте, поскольку это влияет на SEO. Обычно к этому требованию прилагается очень длинный лист, включающий все найденные ими "плохие" ссылки, которые должны быть исправлены "немедленно".
Во-первых, единственное, что говорят подобные отчёты, это: "эта ссылка ---- теперь указывает на ----", и больше ничего; при этом не уточняется, хорошо это или плохо, поэтому давайте выясним, как нам следует обрабатывать такие запросы.
https://www.dev-notes.ru/articles/seo/are-redirections-affecting-your-seo/
Заметки разработчика
Действительно ли редиректы (301, 302, ...) влияют на SEO
Как работать с редиректами и каковы последствия их использования — вот несколько вопросов, возникающих в процессе SEO-аудита.
Nuno Maduro из Laravel core-team объявил о выпуске нового пакета Laravel Pint, представляющего собой "[...] специализированный корректор стиля PHP-кода для минималистов. Pint построен на базе PHP-CS-Fixer и помогает убедиться, что стиль вашего кода остаётся чистым и последовательным".
Это замечательно, но что делать, если только несколько разработчиков в организации используют Pint? Нужно ли явно просить всю команду разработчиков использовать Pint? В этой статье мы рассмотрим другой (и более элегантный) подход.
Мы не будем рассматривать инсталляцию пакета. Более подробную информацию о пакете и его работе можно найти в его официальном репозитории github. Мы сосредоточимся на том, как запустить Laravel Pint для проверки нашего кода в рамках CI-конвейера с помощью Github Actions.
https://www.dev-notes.ru/articles/devops/run-laravel-pint-as-part-of-your-ci-pipeline-with-github-actions/
Это замечательно, но что делать, если только несколько разработчиков в организации используют Pint? Нужно ли явно просить всю команду разработчиков использовать Pint? В этой статье мы рассмотрим другой (и более элегантный) подход.
Мы не будем рассматривать инсталляцию пакета. Более подробную информацию о пакете и его работе можно найти в его официальном репозитории github. Мы сосредоточимся на том, как запустить Laravel Pint для проверки нашего кода в рамках CI-конвейера с помощью Github Actions.
https://www.dev-notes.ru/articles/devops/run-laravel-pint-as-part-of-your-ci-pipeline-with-github-actions/
Заметки разработчика
Запуск Laravel Pint как части CI-конвейера с помощью Github Actions
Как запустить Laravel Pint для проверки нашего кода в рамках CI-конвейера с помощью Github Actions
Я большой поклонник нового "strict mode" для моделей Laravel. Одна из вещей, которую он помогает отловить, — это ужасный запрос "N+1", вызывающий проблемы с производительностью в продакшене.
https://www.dev-notes.ru/articles/eloquent/lazy-loading-protection-does-not-catch-all-n-plus-1-queries/
https://www.dev-notes.ru/articles/eloquent/lazy-loading-protection-does-not-catch-all-n-plus-1-queries/
Заметки разработчика
Защита от ленивой загрузки не перехватывает все N+1 запросы
Причина в том, что Laravel отслеживает вызовы только через методы отношений, а не анализирует реальные генерируемые запросы и ищет дублирование.
Мы переживаем некий ренессанс CSS: новые возможности, техники, эксперименты и идеи появляются в таком количестве, какого мы не видели со времён "CSS3". Легко почувствовать себя подавленным, когда, кажется, что твоя профессия развивается с бешеной скоростью, но Джефф Грэм (Geoff Graham) считает, что "современный" CSS в 2023 году фактически сделал CSS "проще" в написании.
https://www.dev-notes.ru/articles/css/few-ways-css-easier-write-2023/
https://www.dev-notes.ru/articles/css/few-ways-css-easier-write-2023/
Заметки разработчика
Несколько способов упростить CSS в 2023 году
Мы переживаем некий ренессанс CSS: новые возможности, техники, эксперименты и идеи появляются в таком количестве, какого мы не видели со времён "CSS3".
В Symfony 6.4 добавлено множество функций для улучшения DX (опыта разработчиков): добавление серверных параметров при клике по ссылкам, определение атрибутов краулера по умолчанию и т.д.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-dx-improvements-part-2/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-dx-improvements-part-2/
Заметки разработчика
Новое в Symfony 6.4: Улучшения DX (часть 2)
В Symfony 6.4 добавлено множество функций для улучшения DX (опыта разработчиков): добавление серверных параметров при клике по ссылкам и т.д.