Заметки разработчика
رفتن به کانال در Telegram
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов. https://www.dev-notes.ru @snakenf
نمایش بیشتر463
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-37 روز
+130 روز
آرشیو پست ها
💡 Совет по Laravel: Отслеживайте открытые соединения
А вы знали, что Laravel 9.24 и выше поставляется с командой
db:monitor? Позволяющей следить за количеством открытых соединений и реагировать на превышение порога 🚀.
📱 @dev_notes_ru
#Laravel #Artisan #tips👩💻 Простые тесты конечных точек с `
Policy::fake`
Тестирование конечных точек может занять много времени, когда проверяется логика авторизации наряду с их поведением. Для конечных точек, закрытых сложными политиками, требуется много настроек только для запуска метода контроллера. Всё становится ещё менее приятным, когда меняется политика, и ломается куча не связанных с ней тестов. Это отстой. Тесты конечных точек должны отвечать на вопрос "Что это делает?", а не "Когда я могу это использовать?".
🖥 Читать статью
📱 @dev_notes_ru
#Laravel #Policy #Testing👩💻 В свежем релизе Laravel появилось несколько новых хелперов относительных дат.
📱 @dev_notes_ru
#Laravel #Helper #Date #tips
💡 Совет по Laravel: Новый метод `incrementOrCreate`
В Laravel v11.39.1, появился новый метод
incrementOrCreate. Позволяющий создать запись, если она не существует, или инкрементировать указанный столбец в противном случае 🚀.
📱 @dev_notes_ru
#Laravel #Model #tips👩💻 PHP оператор Pipe `
|>` возвращается в новом RFC
Оператор |>, или "pipe", принимает справа вызываемую переменную с одним параметром и передает ей значение слева, оценивая результат вызываемой переменной.
Оператор Pipe (|>) оценивает слева направо, передавая значение (или результат выражения) слева в качестве первого и единственного параметра в вызываемую переменную справа. То есть следующие два фрагмента кода логически эквивалентны:
$result = "Hello World" |> strlen(...);
$result = strlen("Hello World");
Для одиночного вызова это не особенно удобно. Pipe становится удобным, когда несколько вызовов соединяются в цепочку. То есть следующие два фрагмента кода фактически эквивалентны:
$result = "Hello World"
|> htmlentities(...)
|> str_split(...)
|> fn($x) => array_map(strtoupper(...), $x)
|> fn($x) => array_filter($x, fn($v) => $v != 'O');
$temp = "Hello World";
$temp = htmlentities($temp);
$temp = str_split($temp);
$temp = array_map(strtoupper(...), $temp);
$temp = array_filter($temp, fn($v) => $v != 'O');
$result = $temp;
🖥 PHP RFC: Pipe operator v3
📱 @dev_notes_ru
#PHP #Pipe #RFC💡 Совет по Laravel: Условная валидация
Вам когда-нибудь требовалось применить правило валидации только в определенных случаях? Например, отклонять купоны на скидку для определенных тарифных планов. Хотя это можно реализовать вручную, но можно воспользоваться методом
sometimes, позволяющим сделать именно это 🚀.
📱 @dev_notes_ru
#Laravel #Validation #tips👩💻 Три подхода к селектору `
&` (амперсанд) в CSS
`&` — мощное дополнение к CSS, позволяющее создавать селекторы без повторений и способствующее улучшению организованности и понимания кода.
🖥 Читать статью
📱 @dev_notes_ru
#Frontend #CSS #Nesting💡 Совет по PHP
Три варианта кода, задающего резервное значение, если переменная не установлена.
// Классический тернарный оператор
$title = isset($title) ? $title : "default";
// Сокращённый с ??
$title = $title ?? "default";
// Ещё более сокращённый с ??=
$title ??= "default";
Какой из вариантов предпочитаете?
📱 @dev_notes_ru
#PHP #tips+1
Если кто сталкивался с подобным зависанием VS Code 1.97.0. Проблема возникает из-за параметра
Terminal › Integrated: Gpu Acceleration. По умолчанию стоит значение auto, нужно заменить на off.
Можно запустить с опцией --disable-gpu
code --disable-gpu
Ишью в репозитории: VSCode freezes when opening a terminal #239838
Должны решить в 1.97.2
📱 @dev_notes_ru
#VSCode💡 Совет по Laravel
Можно запланировать регулярную очистку, позволяющую избежать переполнения логов 🚀.
📱 @dev_notes_ru
#Laravel #Schedule #tips
Мы обучали Copilot на вашем коде.
Вот почему он отстойный
📱 @dev_notes_ru
#joke
— Я хочу дракона на Рождество!
— Будь реалистом.
— Я хочу настоящий параллелизм без изменения существующего дизайна.
— Какого цвета дракона ты хочешь?
— Красного.
📱 @dev_notes_ru
#joke
💡 Совет по Laravel: Лимитирование заданий
Вам когда-нибудь требовалось ограничить количество заданий? Чтобы не перегружать API или ограничить пользователей бесплатного тарифного плана от выполнения слишком большого количества заданий, Laravel позволяет определять лимиты и использовать их из коробки 🚀.
📱 @dev_notes_ru
#Laravel #RateLimit #tips
👩💻 Ускорение сборки Docker с помощью кэша сборки
Сейчас Docker является основным инструментом для создания, доставки и запуска контейнерных приложений. Одной из проблем, с которой может столкнуться разработчик, это время сборки, особенно для больших и сложных кодовых баз.
Кэш сборки Docker может предложить мощное решение этой проблемы, позволяя повторно использовать ранее созданные слои.
В статье мы рассмотрим, как создавать и хранить кэш сборки для различных этапов, например для этапа сборки, и как делиться этим кэшем с командой с помощью Docker Registry.
🖥 Читать статью
📱 @dev_notes_ru
#DevOps #Docker
💡 Совет по Laravel: Сообщения высшего порядка с `
Conditionable`
Если используете трейт Conditionable в своих классах или работаете с классом Conditionable, таким как Str, можете использовать сообщения высшего порядка для ещё более гибкого API 🚀.
📱 @dev_notes_ru
#Laravel #Conditionable #tips💡 Совет по Laravel: Подтверждение пароля пользователя
Некоторые действия, например, удаление аккаунта, могут потребовать от пользователя подтверждения пароля. Хотя вы можете реализовать эту логику самостоятельно, Laravel поставляется со встроенным правилом валидации,
current_password, предназначенным именно для этого 🚀.
📱 @dev_notes_ru
#Laravel #Validation #tips💡 Совет по Laravel: Запуск запланированных команд на одном сервере
Запускаете приложение на нескольких серверах? По умолчанию запланированные команды будут выполняться на всех серверах, что не нужно и может вызвать проблемы. Это можно предотвратить, используя параметр
onOneServer 🚀.
📱 @dev_notes_ru
#Laravel #Schedule #tips👩💻 Защитите Node.js приложения с `
npx is-my-node-vulnerable`
Пакет is-my-node-vulnerable сравнивает вашу версию Node.js с базой данных безопасности Node.js, мгновенно предоставляя информацию о потенциальных рисках безопасности.
🖥 Читать статью
📱 @dev_notes_ru
#NodeJS #SecurityВ природе ядовитые существа окрашиваются в яркие цвета, чтобы предупредить других о своей токсичности.
📱 @dev_notes_ru
#joke
Джун без опыта работы с git и полным доступом к коду сервера:
Я и есть опасность
📱 @dev_notes_ru
#joke
