Вот несколько советов и приёмов, которые я узнал на своём пути, помогающих оптимизировать запросы к базе данных в Laravel. Иногда небольшие изменения могут быть очень существенными.
https://www.dev-notes.ru/articles/eloquent/optimizing-laravel-eloquent-queries/
https://www.dev-notes.ru/articles/eloquent/optimizing-laravel-eloquent-queries/
Заметки разработчика
Оптимизация Laravel Eloquent запросов
Вот несколько советов и приёмов, помогающих оптимизировать запросы к базе данных в Laravel. Иногда небольшие изменения могут быть очень существенными.
👍1
Каскадная таблица стилей (CSS) — это мощный язык стилей, помогающий фронтенд разработчикам оформлять обычные веб-страницы. Однако при использовании этого языка стилей можно допустить ряд ошибок мешающих писать эффективный код. В данной статье рассматриваются некоторые распространённые ошибки и предлагается решение для каждой из них.
https://www.dev-notes.ru/articles/css/common-css-mistakes-we-make/
https://www.dev-notes.ru/articles/css/common-css-mistakes-we-make/
Заметки разработчика
9 распространённых ошибок в CSS, которые мы совершаем
Далее приведены девять наиболее распространённых ошибок, часто совершаемых разработчиками; совершали ли вы какие-либо из них?
Вы когда-нибудь сталкивались с проблемой управления различными конфигурациями в Node.js приложениях? Хотелось бы иметь централизованный и организованный способ работы с такими секретами, как ключи API и учётные данные баз данных? Не ищите дальше! На помощь приходят переменные среды. В этой статье мы погрузимся в мир переменных среды в Node.js, рассмотрим их преимущества, примеры использования и лучшие практики эффективного управления ими.
Мы расскажем о настройке, доступе и организации переменных среды, а также об их использовании в различных средах и интеграции в сценарии npm. К концу этой статьи вы будете иметь полное представление о том, как переменные среды могут облегчить вашу жизнь как Node.js разработчика.
https://www.dev-notes.ru/articles/javascript/node-js-environment-variables-how-to-set-them-properly/
Мы расскажем о настройке, доступе и организации переменных среды, а также об их использовании в различных средах и интеграции в сценарии npm. К концу этой статьи вы будете иметь полное представление о том, как переменные среды могут облегчить вашу жизнь как Node.js разработчика.
https://www.dev-notes.ru/articles/javascript/node-js-environment-variables-how-to-set-them-properly/
Заметки разработчика
Переменные среды/окружения в Node.js: Как правильно их установить
К концу этой статьи вы будете хорошо понимать, как переменные среды могут облегчить жизнь Node.js-разработчика.
❤1👍1🔥1
В Symfony 6.4 добавлена поддержка переменной среды
В приложениях Symfony опция
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-build-dir-improvements/
APP_BUILD_DIR и обновлены подогреватели кэша для получения параметра build_dir.В приложениях Symfony опция
kernel.build_dir определяет каталог, в котором при компиляции приложения генерируется содержимое, доступное только для чтения. В Symfony 6.4 мы внесли некоторые улучшения, связанные с этим параметром.https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-build-dir-improvements/
Заметки разработчика
Новое в Symfony 6.4: Улучшения каталога сборки
В Symfony 6.4 добавлена поддержка переменной среды APP_BUILD_DIR и обновлены подогреватели кэша для получения параметра build_dir.
Кодирование — это весело. А вот отладка? …Не очень. Именно поэтому тестирование имеет решающее значение для успеха любого нетривиального проекта. В этой статье я покажу как легко начать тестировать свои Laravel приложения. Давайте растопим лёд раз и навсегда!
https://www.dev-notes.ru/articles/laravel/start-testing-your-laravel-code-in-less-than-5-minutes/
https://www.dev-notes.ru/articles/laravel/start-testing-your-laravel-code-in-less-than-5-minutes/
Заметки разработчика
Начните тестировать Laravel код меньше чем за 5 минут
Тестирование имеет решающее значение для успеха любого нетривиального проекта. В этой статье я покажу как легко начать тестировать Laravel приложения.
Определение чистого кода субъективно. Оно часто становится источником горячих споров между разработчиками в Интернете. В этой статье мы рассмотрим возможности Laravel, позволяющие писать меньше кода.
https://www.dev-notes.ru/articles/laravel/eight-ways-to-write-clean-and-terse-code/
https://www.dev-notes.ru/articles/laravel/eight-ways-to-write-clean-and-terse-code/
Заметки разработчика
Восемь способов писать чистый и лаконичный код в Laravel
Определение чистого кода субъективно. Оно часто становится источником горячих споров между разработчиками в Интернете.
Для frontend-разработчика одним из самых утомительных занятий является определение свойств текстовых элементов для различных размеров экрана с помощью медиа-запроса, что приводит к созданию большого файла css. В этой статье мы расскажем как сделать тексты на сайте отзывчивыми без использования медиа-запроса, тем самым сэкономив время и место.
https://www.dev-notes.ru/articles/css/responsive-typography-with-clamp/
https://www.dev-notes.ru/articles/css/responsive-typography-with-clamp/
Заметки разработчика
Отзывчивая типографика с CSS clamp
Как сделать сайты отзывчивыми с текучей типографикой без использования медиа запросов
CSS — постоянно развивающийся язык. С каждой итерацией он становится все лучше и лучше. Поэтому важно следить за новейшими возможностями CSS, чтобы использовать их в своих проектах и меньше зависеть от библиотек сторонних разработчиков.
В этой статье я расскажу о некоторых интересных возможностях CSS, способных облегчить вам жизнь. И хотя они пока доступны не во всех браузерах, вы можете использовать их уже сегодня для улучшения перспектив своих проектов. А в тех браузерах, где эти функции не поддерживаются, большинство из них будет просто проигнорировано.
https://www.dev-notes.ru/articles/css/upcoming-css-features-to-make-your-life-easier/
В этой статье я расскажу о некоторых интересных возможностях CSS, способных облегчить вам жизнь. И хотя они пока доступны не во всех браузерах, вы можете использовать их уже сегодня для улучшения перспектив своих проектов. А в тех браузерах, где эти функции не поддерживаются, большинство из них будет просто проигнорировано.
https://www.dev-notes.ru/articles/css/upcoming-css-features-to-make-your-life-easier/
Заметки разработчика
Новые возможности CSS облегчающие вашу жизнь
CSS — постоянно развивающийся язык, c каждой итерацией он становится лучше. Поэтому важно следить за новейшими возможностями CSS.
В Symfony 6.4 добавлены новые тестовые утверждения, связанные с селекторами CSS, компонентом
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-more-testing-assertions/
HttpClient и темами электронной почты.https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-more-testing-assertions/
Заметки разработчика
Новое в Symfony 6.4 — Больше тестируемых утверждений
В Symfony 6.4 добавлены новые тестовые утверждения, связанные с селекторами CSS, компонентом HttpClient и темами электронной почты.
Ошибка 503 Service Temporarily Unavailable — это распространённый код состояния HTTP, который указывает на недоступность веб-сервера. Её появление означает, что в данный момент сервер не может обработать запрос из-за временной перегрузки или технического обслуживания. В данной статье мы рассмотрим причины возникновения ошибки 503, типичные сценарии её появления и эффективные шаги по устранению этой проблемы в Nginx.
https://www.dev-notes.ru/articles/devops/how-to-fix-503-error-nginx/
https://www.dev-notes.ru/articles/devops/how-to-fix-503-error-nginx/
Заметки разработчика
Как исправить ошибку 503 Service Temporarily Unavailable на Nginx
Узнайте эффективные решения для устранения ошибки 503 Service Temporarily Unavailable на Nginx и обеспечения бесперебойной работы веб-сервера.
👍1
В Symfony 6.4 реализованы некоторые улучшения, связанные с локалями, такие, как установка локали при отображении содержимого электронной почты и доступ к списку включённых локалей из шаблонов.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-locale-improvements/
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-locale-improvements/
Заметки разработчика
Новое в Symfony 6.4 — Улучшения локали
В Symfony 6.4 реализованы некоторые улучшения, связанные с локалями, такие, как установка локали при отображении содержимого электронной почты и доступ к списку включённых локалей из шаблонов.
В Chrome 118 появилась новая возможность медиа-запрос
https://www.dev-notes.ru/articles/css/prefers-reduced-transparency/
prefers-reduced-transparency из CSS Media Queries 5. Непрозрачные интерфейсы могут вызывать головную боль или мешать зрительному восприятию при различных нарушениях зрения. Именно поэтому в Windows, macOS и iOS существуют системные настройки, позволяющие уменьшить или убрать прозрачность пользовательского интерфейса.https://www.dev-notes.ru/articles/css/prefers-reduced-transparency/
Заметки разработчика
CSS медиа запрос prefers-reduced-transparency
Оптимизация и настройка под пользователей, предпочитающих непрозрачный пользовательский интерфейс.
Выберите оптимизированный перенос текста, для красоты, а не для скорости.
В Chrome 117 можно использовать новую функцию переноса текста —
https://www.dev-notes.ru/articles/css/text-wrap-pretty/
В Chrome 117 можно использовать новую функцию переноса текста —
text-wrap: pretty из CSS Text Level 4.https://www.dev-notes.ru/articles/css/text-wrap-pretty/
Заметки разработчика
CSS text-wrap: pretty
Выберите оптимизированный перенос текста, для красоты, а не для скорости.
В Symfony 6.4 добавлены новые обработчики Messenger, позволяющие запускать процессы, команды и пинговать URL-адреса.
Компонент
В Symfony 6.4 мы вводим несколько новых встроенных обработчиков, чтобы вы могли использовать эти возможности в своих приложениях без необходимости их реализации.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-more-built-in-message-handlers/
Компонент
Messenger построен на базе двух основных концепций: сообщений (это классы, содержащие данные) и обработчиков (это классы, вызываемые при отправке сообщения).В Symfony 6.4 мы вводим несколько новых встроенных обработчиков, чтобы вы могли использовать эти возможности в своих приложениях без необходимости их реализации.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-more-built-in-message-handlers/
Заметки разработчика
Новое в Symfony 6.4: Больше встроенных обработчиков сообщений
В Symfony 6.4 добавлены новые обработчики Messenger, позволяющие запускать процессы, команды и пинговать URL-адреса.
В этой статье мы поговорим о функции, используемой каждым Laravel разработчиком —
https://www.dev-notes.ru/articles/laravel/seven-tricks-with-dd/
dd(). Я покажу различные творческие способы использования dd() в наших приложениях.https://www.dev-notes.ru/articles/laravel/seven-tricks-with-dd/
Заметки разработчика
Семь "трюков" с dd() в Laravel
В этой статье мы поговорим о функции, используемой каждым Laravel разработчиком — dd(). Я покажу различные творческие способы использования dd() в приложениях.
👍1
На прошлой неделе я написал в твиттере о том, как выглядят контроллеры в моих приложениях и как я вообще к ним отношусь. Этот твит быстро стал вирусным и привлёк к себе много внимания, но, к сожалению, не по тем причинам. Поэтому в этой статье я хотел бы пролить свет на то, к чему я стремился, и объяснить, каким должен быть (UI) контроллер в целом.
https://www.dev-notes.ru/articles/laravel/controllers-and-their-true-purpose/
https://www.dev-notes.ru/articles/laravel/controllers-and-their-true-purpose/
Заметки разработчика
Контроллеры и их истинное предназначение
Что такое контроллеры? Каково их назначение? Можно ли поместить в них бизнес-логику? Сколько строк кода они должны содержать? Давайте узнаем.
Laravel htmx — это пакет Maurizio Bonani, позволяющий работать с библиотекой htmx. Эта библиотека позволяет получать доступ к современным функциям браузера непосредственно из HTML, а не с помощью JavaScript:
https://www.dev-notes.ru/articles/laravel/package-laravel-htmx/
htmx предоставляет доступ к AJAX, CSS Transitions, WebSockets и Server Sent Events непосредственно в HTML, используя атрибуты, что позволяет создавать современные пользовательские интерфейсы с простотой и мощью гипертекста.
htmx имеет небольшой размер (~14k min.gz), не содержит зависимостей, расширяем, совместим с IE11 и сократил размер кодовой базы на 67% по сравнению с react
https://www.dev-notes.ru/articles/laravel/package-laravel-htmx/
Заметки разработчика
Пакет Laravel htmx
Laravel htmx — это пакет, предоставляющий возможность работать с htmx.
В Symfony 6.4 добавлены новые возможности в
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-serializer-improvements/
Serializer, такие, как групповые атрибуты на основе классов, нормализация объектов Translatable и детализация ошибок декодирования JSON.https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-serializer-improvements/
Заметки разработчика
Новое в Symfony 6.4: Улучшения Serializer
В Symfony 6.4 в Serializer добавлены групповые атрибуты на основе классов, нормализация объектов Translatable и детализация ошибок декодирования JSON.
Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим опытом. Пристегните ремни, это будет хорошая поездка!
Eloquent — это хорошо отточенный инструмент, полюбившийся многим. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простой в использовании API. Реализуя паттерн Active Record (AR), описанный Fowler в книге PoEAA, он является одной из лучших реализаций AR, доступных на сегодня.
В этой статье я хотел бы рассказать несколько советов и рекомендаций, которые я узнал, экспериментируя с различными опциями. Например, задумывались ли вы когда-нибудь о том, чтобы тем или иным образом разделить свои жадные загрузки? Нет? Тогда я уверен, что вы узнаете как минимум кое-что новое, поэтому обязательно дочитайте до конца!
Как и все существующие инструменты, Eloquent имеет свой набор компромиссов. Как ответственные разработчики, мы должны всегда помнить о том, на что мы идём. Если вы хотите узнать больше об AR и философии её разработки, я очень рекомендую статью Shawn McCool.
https://www.dev-notes.ru/articles/eloquent/unorthodox-eloquent/
Eloquent — это хорошо отточенный инструмент, полюбившийся многим. Он позволяет с лёгкостью выполнять операции с базами данных, сохраняя при этом простой в использовании API. Реализуя паттерн Active Record (AR), описанный Fowler в книге PoEAA, он является одной из лучших реализаций AR, доступных на сегодня.
В этой статье я хотел бы рассказать несколько советов и рекомендаций, которые я узнал, экспериментируя с различными опциями. Например, задумывались ли вы когда-нибудь о том, чтобы тем или иным образом разделить свои жадные загрузки? Нет? Тогда я уверен, что вы узнаете как минимум кое-что новое, поэтому обязательно дочитайте до конца!
Как и все существующие инструменты, Eloquent имеет свой набор компромиссов. Как ответственные разработчики, мы должны всегда помнить о том, на что мы идём. Если вы хотите узнать больше об AR и философии её разработки, я очень рекомендую статью Shawn McCool.
https://www.dev-notes.ru/articles/eloquent/unorthodox-eloquent/
Заметки разработчика
Неортодоксальный Eloquent
Я работаю с Eloquent уже более пяти лет, и пришло время поделиться своим опытом. Пристегните ремни, это будет хорошая поездка!
🔥2👍1
В начале этого года в Chrome 112 появилась вложенность CSS, и теперь она есть во всех основных браузерах.
Однако в синтаксис было внесено одно строгое и потенциально неожиданное требование, указанное первым в разделе "Недопустимые примеры вложения" статьи "Вложенность CSS". В этой статье мы расскажем, что изменилось в спецификации и в Chrome 120.
https://www.dev-notes.ru/articles/css/css-nesting-relaxed-syntax-update/
Однако в синтаксис было внесено одно строгое и потенциально неожиданное требование, указанное первым в разделе "Недопустимые примеры вложения" статьи "Вложенность CSS". В этой статье мы расскажем, что изменилось в спецификации и в Chrome 120.
https://www.dev-notes.ru/articles/css/css-nesting-relaxed-syntax-update/
Заметки разработчика
Обновление синтаксиса CSS вложенности
В Chrome 120 включена функция заглядывающей вперёд вложенности.
В Symfony 6.4 вводится новый атрибут
Иногда сервисам требуется доступ к нескольким другим сервисам без уверенности в том, что все они действительно будут использоваться. Инъекция всех сервисов может снизить производительность (поскольку Symfony будет инстанцировать все сервисы, даже неиспользуемые), поэтому инъекция всего контейнера в приложениях Symfony категорически не рекомендуется.
Лучшим решением в таких случаях является использование подписчиков и локаторов сервисов. Локатор сервиса — это контейнер пользовательских сервисов, включающий только те сервисы, которые вы выбрали.
В Symfony 6.4 мы усовершенствовали локаторы сервисов, теперь их можно определять не через конфигурационные файлы, а с помощью PHP атрибутов. Новый атрибут
Вы также можете определить псевдонимы для этих служб и даже включить дополнительные службы, добавив к классу службы символ
Ознакомьтесь с исходным кодом
Если вы предпочитаете получать не локатор сервиса, а итератор, замените атрибут
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-autowirelocator-and-autowireiterator-attributes/
AutowireLocator, позволяющий определять локаторы сервисов с помощью PHP атрибутов, а не конфигурационных файлов.Иногда сервисам требуется доступ к нескольким другим сервисам без уверенности в том, что все они действительно будут использоваться. Инъекция всех сервисов может снизить производительность (поскольку Symfony будет инстанцировать все сервисы, даже неиспользуемые), поэтому инъекция всего контейнера в приложениях Symfony категорически не рекомендуется.
Лучшим решением в таких случаях является использование подписчиков и локаторов сервисов. Локатор сервиса — это контейнер пользовательских сервисов, включающий только те сервисы, которые вы выбрали.
В Symfony 6.4 мы усовершенствовали локаторы сервисов, теперь их можно определять не через конфигурационные файлы, а с помощью PHP атрибутов. Новый атрибут
#[AutowireLocator] принимает в качестве первого аргумента один идентификатор сервиса или массив идентификаторов сервисов:use App\CommandHandler\BarHandler;
use App\CommandHandler\FooHandler;
use Psr\Container\ContainerInterface;
use Symfony\Component\DependencyInjection\Attribute\AutowireLocator;
class SomeService
{
public function __construct(
#[AutowireLocator([FooHandler::class, BarHandler::class])]
private ContainerInterface $handlers,
) {
}
public function someMethod(): void
{
$fooService = $this->handlers->get(FooHandler::class);
}
}
Вы также можете определить псевдонимы для этих служб и даже включить дополнительные службы, добавив к классу службы символ
?:use App\CommandHandler\BarHandler;
use App\CommandHandler\FooHandler;
use Psr\Container\ContainerInterface;
use Symfony\Component\DependencyInjection\Attribute\Autowire;
use Symfony\Component\DependencyInjection\Attribute\AutowireLocator;
use Symfony\Contracts\Service\Attribute\SubscribedService;
class SomeService
{
public function __construct(
#[AutowireLocator([
'foo' => FooHandler::class,
'bar' => new SubscribedService(type: 'string', attributes: new Autowire('%some.parameter%')),
'optionalBaz' => '?'.BazHandler::class,
])]
private ContainerInterface $handlers,
) {
}
public function someMethod(): void
{
$fooService = $this->handlers->get('foo');
if ($this->handlers->has('optionalBaz')) {
// ...
}
}
}
Ознакомьтесь с исходным кодом
#[AutowireLocator], чтобы узнать о других его аргументах, таких как $indexAttribute, $defaultPriorityMethod, $exclude и т.д.Если вы предпочитаете получать не локатор сервиса, а итератор, замените атрибут
AutowireLocator на AutowireIterator.https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-autowirelocator-and-autowireiterator-attributes/
Заметки разработчика
Новое в Symfony 6.4: Атрибуты AutowireLocator и AutowireIterator
В Symfony 6.4 вводится новый атрибут AutowireLocator, позволяющий определять локаторы сервисов с помощью PHP атрибутов.
💩2🫡1