Я большой поклонник нового "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 (опыта разработчиков): добавление серверных параметров при клике по ссылкам и т.д.
Этот совет продолжает начатую вчера тему, связанную с проверкой строгости Eloquent.
https://www.dev-notes.ru/articles/eloquent/a-surprising-issue-with-the-auth-user-and-tests/
https://www.dev-notes.ru/articles/eloquent/a-surprising-issue-with-the-auth-user-and-tests/
Заметки разработчика
Удивительная проблема с Auth user и тестами
Знание того, как это работает, поможет избежать ложных сбоев в тестах.
Полное руководство по установке или обновлению до PHP 8.3 на Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal) и Debian 12 (Bookworm), Debian 11 (Bullseye), Debian 10 (Buster).
PHP 8.3 — это новое крупное обновление PHP 2023 года. В нем появились такие новые возможности, как типизированные константы классов, новый набор исключений в расширении DateTime, новая функция json_validate, а также ряд новых возможностей, изменений и исправлений. Как всегда, в PHP 8.3 исправлен ряд ошибок и улучшений, и также улучшена производительность.
В этой статье рассказывается об установке PHP 8.3 на современные системы Debian и Ubuntu. Аналогичным образом можно установить и некоторые из наиболее популярных расширений PECL, которые перечислены в разделе Установка расширений PECL.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-debian-ubuntu/
PHP 8.3 — это новое крупное обновление PHP 2023 года. В нем появились такие новые возможности, как типизированные константы классов, новый набор исключений в расширении DateTime, новая функция json_validate, а также ряд новых возможностей, изменений и исправлений. Как всегда, в PHP 8.3 исправлен ряд ошибок и улучшений, и также улучшена производительность.
В этой статье рассказывается об установке PHP 8.3 на современные системы Debian и Ubuntu. Аналогичным образом можно установить и некоторые из наиболее популярных расширений PECL, которые перечислены в разделе Установка расширений PECL.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-debian-ubuntu/
Заметки разработчика
Как установить или обновить PHP 8.3 на Ubuntu и Debian
Полное руководство по установке или обновлению до PHP 8.3 на Ubuntu 22.04, Ubuntu 20.04 и Debian 12 (Bookworm), Debian 11 (Bullseye), Debian 10 (Buster).
Полное руководство по установке или обновлению PHP 8.3 на Fedora, RHEL, CentOS, Alma Linux, Rocky Linux и другие.
PHP 8.3 — это крупное обновление PHP 2023 года, принёсшее несколько новых функций, таких как типизированные константы классов, гранулированные исключения в расширении DateTime, новая функция json_validate, изменения и улучшения функциональности, а также исправления. Как и в предыдущих версиях PHP, в PHP 8.3 также исправлены ошибки и улучшена производительность.
В этой статье рассказывается о том, как установить PHP 8.3 на современные системы Fedora, Red Hat Enterprise Linux и другие системы, бинарно совместимые с RHEL, такие, как CentOS Stream, Alma Linux и Rocky Linux. В статье используется репозиторий, поддерживаемый Реми Колле (Remi Collet), который поддерживает пакеты PHP на этих системах уже более десяти лет.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-fedora-rhel-el/
PHP 8.3 — это крупное обновление PHP 2023 года, принёсшее несколько новых функций, таких как типизированные константы классов, гранулированные исключения в расширении DateTime, новая функция json_validate, изменения и улучшения функциональности, а также исправления. Как и в предыдущих версиях PHP, в PHP 8.3 также исправлены ошибки и улучшена производительность.
В этой статье рассказывается о том, как установить PHP 8.3 на современные системы Fedora, Red Hat Enterprise Linux и другие системы, бинарно совместимые с RHEL, такие, как CentOS Stream, Alma Linux и Rocky Linux. В статье используется репозиторий, поддерживаемый Реми Колле (Remi Collet), который поддерживает пакеты PHP на этих системах уже более десяти лет.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-fedora-rhel-el/
Заметки разработчика
Как установить или обновить PHP 8.3 на Fedora, RHEL, CentOS
Полное руководство по установке или обновлению PHP 8.3 на Fedora, RHEL, CentOS, Alma Linux, Rocky Linux и другие.
В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
PHP 8.3 — это крупное обновление PHP 2023 года, содержащее ряд новых возможностей, таких как типизированные константы классов, гранулированные исключения в расширении DateTime, новая функция json_validate, изменения и улучшения функциональности, а также исправления. В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
Shivam Mathur поддерживает две ветки Brew, shivammathur/php и shivammathur/extensions, которые содержат прекомпилированные пакеты PHP 8.3 (bottles), которые постоянно обновляются, что делает удобной установку PHP 8.3 и нескольких расширений ядра PHP и PECL с помощью Homebrew.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-macos-homebrew/
PHP 8.3 — это крупное обновление PHP 2023 года, содержащее ряд новых возможностей, таких как типизированные константы классов, гранулированные исключения в расширении DateTime, новая функция json_validate, изменения и улучшения функциональности, а также исправления. В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
Shivam Mathur поддерживает две ветки Brew, shivammathur/php и shivammathur/extensions, которые содержат прекомпилированные пакеты PHP 8.3 (bottles), которые постоянно обновляются, что делает удобной установку PHP 8.3 и нескольких расширений ядра PHP и PECL с помощью Homebrew.
https://www.dev-notes.ru/articles/devops/php-8.3-install-upgrade-on-macos-homebrew/
Заметки разработчика
Как установить/обновить PHP 8.3 на MacOS с помощью Homebrew
В этой статье рассказывается, как установить или обновить PHP 8.3 на macOS с помощью Homebrew.
Почему использование свойства $seed лучше ручного заполнения базы данных? Просто ли это избавление от необходимости писать несколько строк кода?
https://www.dev-notes.ru/articles/eloquent/you-dont-need-to-manually-run-seeders-in-your-tests/
https://www.dev-notes.ru/articles/eloquent/you-dont-need-to-manually-run-seeders-in-your-tests/
Заметки разработчика
Не нужно вручную заполнять базы данных в тестах
Почему использование свойства $seed лучше ручного заполнения базы данных? Просто ли это избавление от необходимости писать несколько строк кода?
👍1
В ECMAScript 2023 появились новые функции, призванные улучшить язык и сделать его более мощным и удобным. Новая версия включает в себя интересные функции и новые методы массивов JavaScript, благодаря которым программирование на JavaScript становится более лёгким и приятным. В этой статье мы подробно рассмотрим функциональные возможности новых методов JavaScript на прототипах массивов.
JavaScript постоянно развивается, как и вся индустрия веб-разработки в целом. ECMAScript 2023 — новейшая версия языка программирования JavaScript. ECMAScript является четырнадцатым изданием спецификации языка и был выпущен в июне 2023 года. Со временем ECMAScript 2023 превратился в язык программирования общего назначения. На нем работает весь веб. Поэтому он используется для создания веб-приложений и других видов программирования, которые связаны между собой.
ECMAScript — стандартизированный язык сценариев, являющийся спецификацией для JavaScript. ECMAScript 2023 — обновление языка программирования JavaScript, призванное внести улучшения и сделать программы на JavaScript предсказуемыми и удобными в обслуживании. Благодаря этому улучшению у прототипа Array появились новые методы. Методы массивов JavaScripts toSorted, toReversed, with, findLast и findLastIndex были представлены в ECMAScript 2023.
Методы ECMAScript 2023 предлагают разработчикам мощные инструменты для манипулирования массивами без изменения исходного массива. Эти методы работают с репликами массива, что позволяет более безопасно и предсказуемо манипулировать массивами. С помощью этих методов разработчики могут использовать иммутабельность данных массива, будучи уверенными в том, что исходный массив останется неизменным. Они облегчат работу разработчиков при работе с массивами. Оставлять данные неизменными выгодно, что и демонстрируют эти методы массивов из ECMAScript 2023. Эти преимущества применимы к любым объектам JavaScript, а не только к массивам.
https://www.dev-notes.ru/articles/javascript/exploring-the-new-array-methods-from-ecmascript-2023/
JavaScript постоянно развивается, как и вся индустрия веб-разработки в целом. ECMAScript 2023 — новейшая версия языка программирования JavaScript. ECMAScript является четырнадцатым изданием спецификации языка и был выпущен в июне 2023 года. Со временем ECMAScript 2023 превратился в язык программирования общего назначения. На нем работает весь веб. Поэтому он используется для создания веб-приложений и других видов программирования, которые связаны между собой.
ECMAScript — стандартизированный язык сценариев, являющийся спецификацией для JavaScript. ECMAScript 2023 — обновление языка программирования JavaScript, призванное внести улучшения и сделать программы на JavaScript предсказуемыми и удобными в обслуживании. Благодаря этому улучшению у прототипа Array появились новые методы. Методы массивов JavaScripts toSorted, toReversed, with, findLast и findLastIndex были представлены в ECMAScript 2023.
Методы ECMAScript 2023 предлагают разработчикам мощные инструменты для манипулирования массивами без изменения исходного массива. Эти методы работают с репликами массива, что позволяет более безопасно и предсказуемо манипулировать массивами. С помощью этих методов разработчики могут использовать иммутабельность данных массива, будучи уверенными в том, что исходный массив останется неизменным. Они облегчат работу разработчиков при работе с массивами. Оставлять данные неизменными выгодно, что и демонстрируют эти методы массивов из ECMAScript 2023. Эти преимущества применимы к любым объектам JavaScript, а не только к массивам.
https://www.dev-notes.ru/articles/javascript/exploring-the-new-array-methods-from-ecmascript-2023/
Заметки разработчика
Изучение новых методов массивов из ECMAScript 2023
В этой статье мы подробно рассмотрим функциональные возможности новых методов JavaScript массивов в ECMAScript 2023 на прототипах массивов.
Symfony 6.4 включает новую функцию Profiler, позволяющую исследовать определения рабочих процессов и отображать их в виде визуальной диаграммы.
Это последняя статья о новых возможностях Symfony 6.4 и 7.0. Эта серия статей началась с нового профилировщика команд — революционной функции, позволяющей проследить за выполнением команд Symfony и отладить их.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-workflow-profiler/
Это последняя статья о новых возможностях Symfony 6.4 и 7.0. Эта серия статей началась с нового профилировщика команд — революционной функции, позволяющей проследить за выполнением команд Symfony и отладить их.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-workflow-profiler/
Заметки разработчика
Новое в Symfony 6.4: Профилировщик Workflow
Symfony 6.4 включает новую функцию Profiler, позволяющую исследовать определения рабочих процессов и отображать их в виде визуальной диаграммы.
👍3
Во вчерашнем совете мы говорили о том, как использовать свойство $seed для более быстрого запуска тестов, но при этом упустили из виду, что именно нужно поместить в сидер.
https://www.dev-notes.ru/articles/eloquent/why-we-like-minimal-seeders-for-tests/
https://www.dev-notes.ru/articles/eloquent/why-we-like-minimal-seeders-for-tests/
Заметки разработчика
Почему нам нравятся минимальные сидеры для тестов
Если все сделать правильно, ваши тесты будет намного легче поддерживать
Веб-приложениям не всегда нужна запись в файловую систему, но Node.js предоставляет для этого обширный интерфейс прикладного программирования (API). Это может понадобиться, если вы ведёте логи отладки, передаёте файлы на сервер или с сервера, или создаёте инструменты командной строки.
https://www.dev-notes.ru/articles/javascript/accessing-the-file-system-in-node-js/
https://www.dev-notes.ru/articles/javascript/accessing-the-file-system-in-node-js/
Заметки разработчика
Как использовать файловую систему в Node.js
Освойте основы модуля файловой системы Node.js, предоставляющего API для записи файлов в файловые системы macOS, Windows и Linux.
👍1
В PHP 8 появились атрибуты, которые являются довольно впечатляющими и мощными. В этой статье мы будем использовать их для включения и выключения маршрутов Laravel, насколько это круто?
https://www.dev-notes.ru/articles/laravel/php-attributes/
https://www.dev-notes.ru/articles/laravel/php-attributes/
Заметки разработчика
PHP атрибуты в Laravel
В PHP 8 появились атрибуты, они довольно впечатляющие и мощные. В этой статье мы используем их для включения и выключения маршрутов Laravel, насколько это круто
👍2
Сценарии Composer — это очень удобный способ определения команд, которые вы часто используете. Например, у нас есть скрипты composer для запуска тестов, проверки стиля кодирования или обновления хелперов IDE.
https://www.dev-notes.ru/articles/php/be-consistent-with-composer-scripts-in-ci/
https://www.dev-notes.ru/articles/php/be-consistent-with-composer-scripts-in-ci/
Заметки разработчика
Будьте последовательны в использовании скриптов Composer в CI
Будьте проще и избавьте себя от лишних проблем со скриптами Composer.
Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе. В этой статье я поделюсь своим подходом к решению этой проблемы.
https://www.dev-notes.ru/articles/php/testing-abstract-classes-in-php-using-anonymous-classes/
https://www.dev-notes.ru/articles/php/testing-abstract-classes-in-php-using-anonymous-classes/
Заметки разработчика
Тестирование абстрактных классов PHP с помощью анонимных классов
Абстрактные классы не могут быть инстанцированы напрямую, что создаёт проблему при тестировании функциональности, реализованной в самом абстрактном классе.
👍2
Добро пожаловать в первую часть серии из десяти частей, посвящённой основам TypeScript. В этой первой части мы рассмотрим компилятор TypeScript (
https://www.dev-notes.ru/articles/typescript/typescript-basics-typescript-compiler-tsc-and-tsconfig/
tsc) и файл конфигурации (tsconfig.json).https://www.dev-notes.ru/articles/typescript/typescript-basics-typescript-compiler-tsc-and-tsconfig/
Заметки разработчика
Основы TypeScript: компилятор TypeScript (tsc) и tsconfig.json
Добро пожаловать в первую часть серии, посвящённой основам TypeScript. Мы рассмотрим компилятор TypeScript (tsc) и файл конфигурации (tsconfig.json).
Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.
Если вы начинаете путь от локальной разработки к продакшену с Docker и не знаете всех необходимых шагов, это руководство для вас.
Мы рассмотрим некоторые тонкости перехода, такие как создание продакшен Docker-файлов и настройка конфигураций. Затем мы поработаем над рабочими процессами развёртывания и закончим CI/CD. К концу мы должны без проблем перенести ваше Docker-приложение в стабильную, живую среду.
https://www.dev-notes.ru/articles/devops/what-you-should-do-before-deploying-docker-to-production/
Если вы начинаете путь от локальной разработки к продакшену с Docker и не знаете всех необходимых шагов, это руководство для вас.
Мы рассмотрим некоторые тонкости перехода, такие как создание продакшен Docker-файлов и настройка конфигураций. Затем мы поработаем над рабочими процессами развёртывания и закончим CI/CD. К концу мы должны без проблем перенести ваше Docker-приложение в стабильную, живую среду.
https://www.dev-notes.ru/articles/devops/what-you-should-do-before-deploying-docker-to-production/
Заметки разработчика
Что нужно сделать перед развёртыванием Docker в продакшене
Краткое руководство, показывающее, как перейти от локальной разработки к продакшену с помощью Docker, включая рабочие процессы развёртывания и CI/CD.
❤2👍1
Добро пожаловать во вторую часть нашей серии статей о TypeScript! В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.
https://www.dev-notes.ru/articles/typescript/typescript-basics-javascript-versus-typescript/
https://www.dev-notes.ru/articles/typescript/typescript-basics-javascript-versus-typescript/
Заметки разработчика
Основы TypeScript: JavaScript в сравнении с TypeScript
В этой части мы проведём сравнение между JavaScript и TypeScript, что поможет вам сделать осознанный выбор при принятии решения о переходе на TypeScript.
В PHP есть множество встроенных констант. Некоторые из них полезны при работе с файлами, а некоторые — с целыми числами. Но все они имеют одну общую черту — все они доступны глобально. В этой небольшой статье мы рассмотрим типичные примеры и случаи использования констант в Laravel.
https://www.dev-notes.ru/articles/laravel/five-php-useful-built-in-constants/
https://www.dev-notes.ru/articles/laravel/five-php-useful-built-in-constants/
Заметки разработчика
Пять полезных встроенных PHP констант
В PHP есть множество встроенных констант. Одни из них полезны при работе с файлами, а другие — с целыми числами. Все они доступны глобально.
👍1
Добро пожаловать в третью часть нашего цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.
https://www.dev-notes.ru/articles/typescript/typescript-basics-primitive-and-basic-types/
https://www.dev-notes.ru/articles/typescript/typescript-basics-primitive-and-basic-types/
Заметки разработчика
Основы TypeScript: Примитивы и базовые типы
Добро пожаловать в третью часть цикла о TypeScript! В этой части мы рассмотрим фундаментальные строительные блоки TypeScript — примитивные и базовые типы.