Заметки разработчика
473 subscribers
666 photos
4 videos
1.16K links
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов.

https://www.dev-notes.ru

@snakenf
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🤣1
👩‍💻 Используйте useId() вместо вручную созданных ID

Мы считаем, что следует чаще использовать хук useId(). Если вы обнаружили, что не используете его, есть большая вероятность, что ваше приложение или сайт либо недоступны (a11y), либо вы создаёте код, склонный к ошибкам. Позвольте объяснить.

tl;dr
Используйте`useRef()` вместо вручную созданных ID, если требуется доступ к DOM из JS
Используйте useId() вместо вручную созданных ID, чтобы связать два узла DOM для обеспечения доступности.


🖥 Читать статью

📱 @dev_notes_ru

#React #Hooks #useId
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1🔥1
💡 Совет по Laravel: Улучшенный dd()

При отладке запроса в Eloquent для проверки результата часто используется dd(). А знаете ли вы, что можно просто подключить его напрямую? 🚀

📱 @dev_notes_ru

#laravel #eloquent #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
🤔 Одна из распространенных претензий к PHP заключается в том, что он не справляется с параллелизмом из-за своей однопоточной природы.

Это действительно так, но, будучи разработчиками Laravel, мы можем выполнять параллельные задачи в рамках текущего запроса с помощью нового фасада Concurrency.

Под капотом этот фасад выполняет каждую задачу как отдельный серверный процесс используя консольные команды, что является обходным решением ограничений PHP.

Рекомендую использовать этот фасад только для небольших задач, поскольку он все ещё находится в стадии бета-версии.

Для более сложных случаев использования можно построить приложение так, чтобы использовать Queue для одновременного выполнения задач.

📱 @dev_notes_ru

#laravel #concurrency #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Гибкое кэширование в Laravel — это очень просто

Познакомьтесь с новым методом Cache::flexible() в Laravel, позволяющим сбалансировать свежесть данных и производительность в приложениях с высокой активностью.

В Laravel 11 появилась новая функция кэширования, призванная изменить подход к обработке дорогостоящих операций с данными. Новый метод Cache::flexible() реализует паттерн, позволяющий обслуживать кэшированные данные, обновляя их в фоновом режиме, предлагая разумное решение извечной проблемы баланса между свежестью данных и производительностью приложения. В статье мы рассмотрим эту функцию, начав с основ и постепенно погружаясь в более сложные сценарии использования.

🖥 Читать статью

📱 @dev_notes_ru

#Laravel #Cache
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🤔 При написании тестов часто используются случайно сгенерированные данные с Faker. В результате тест иногда может случайно провалиться, а иногда пройти.

Это затрудняет выявление проблем, так как они могут появляться случайным образом в процессе работы CI.

В таких случаях я использую метод repeat(), доступный в PestPHP, позволяющий повторить тест определенное количество раз.

После проведения тестирования с достаточным количеством повторений я удаляю вызов repeat().

Такой подход помогает обеспечить стабильность теста на протяжении нескольких итераций...

📱 @dev_notes_ru

#laravel #pest #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 А вы знали, что если ожидается, что в Коллекции будет только один элемент, соответствующий вашим критериям, можно использовать sole.

Он работает так же, как и first, но выбрасывает исключение, если результат оказался не один.

Это очень удобно при работе со сложными Коллекциями! 🔥

📱 @dev_notes_ru

#laravel #collection #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥1
👩‍💻 Авторизация маршрутов на основе политики в Laravel

Система авторизации Laravel, основанная на политиках, предоставляет мощный способ управления контролем доступа в приложениях. В сочетании с middleware маршрутов она предлагает чистый и эффективный метод обеспечения безопасности маршрутов на основе прав пользователей. Рассмотрим, как реализовать авторизацию маршрутов на основе политик с помощью middleware can.

🖥 Читать статью

📱 @dev_notes_ru

#laravel #route #policy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
💡 Совет по Laravel: Пропуск заданий

Вам когда-нибудь требовалось пропустить выполнение задания? Это можно сделать и вручную, но Laravel поставляется с middleware Skip, делающим именно это 🚀.

📱 @dev_notes_ru

#laravel #Jobs #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔜 Принудительная установка определенного состояния элемента

Скоро появится в DevTools. Современная эмуляция псевдо состояния для стилизации и тестирования.

Обратите внимание, как оно адаптируется к выбранному элементу .

📱 @dev_notes_ru

#DevTools #feature #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Отладка SQL запросов в Laravel

При создании сложных запросов к базе данных в Laravel наличие под рукой мощных инструментов отладки может стать решающим фактором. Laravel предоставляет набор методов, позволяющих детально изучать запросы, делая процесс отладки более плавным и эффективным. Рассмотрим эти методы и узнаем, как они могут улучшить рабочий процесс разработки.

🖥 Читать статью

📱 @dev_notes_ru

#laravel #sql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
💡 Совет по Laravel: Запрос подтверждения в командах

Знаете ли вы, что можно запрашивать подтверждение для рискованных команд перед их выполнением? Это можно сделать с помощью метода confirm 🚀.

📱 @dev_notes_ru

#laravel #commands #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
👩‍💻 Не проспите AbortController

Сегодня я хотел бы поговорить об одном из стандартных JavaScript API, который вы, скорее всего, проспали. Он называется AbortController.

AbortController — это глобальный класс в JavaScript, который можно использовать для прерывания, ну, в общем, чего угодно!

🖥 Читать статью

📱 @dev_notes_ru

#JavaScript #AbortController
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Логирование - критически важный компонент в любом приложении для разработки и мониторинга, особенно в нелокальных средах.

В Laravel есть фасад Log и несколько методов, таких как info(), debug() и т.д.

Но знаете ли вы, что также есть функция хелпер logger()? Она сохраняет сообщения уровня debug в log файл.

Поскольку это функция хелпер, нет необходимости импортировать какие-либо классы, что делает её быстрой и простой в использовании, особенно в серверных редакторах, таких как Vim.

📱 @dev_notes_ru

#laravel #debug #php #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
👩‍💻 Создание анимации орбиты с помощью CSS переменных

Давайте анимируем CSS переменные! Это мощный способ применения CSS анимации, которая в противном случае была бы утомительной или непрактичной.

🖥 Читать статью

📱 @dev_notes_ru

#frontend #css #animation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
💡 Совет по Laravel: Просмотр информации о модели

Когда модель разрастается, бывает сложно проверить все связи, включая связи из сторонних пакетов, зарегистрированные события и наблюдателей. В этом случае можно использовать команду model:show 🚀.

📱 @dev_notes_ru

#laravel #artisan #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1🤣1
👩‍💻 Практические советы по доступности, которые можно применить сегодня

Мы все бывали там, когда, торопясь уложиться в срок, создавали выпадающее меню или модальное окно, не задумываясь о его доступности. Но что, если внести несколько небольших изменений, которые могли бы значительно улучшить работу с сайтом для широкого круга пользователей? Доступность не должна быть сложной задачей или галочкой в графе соответствие. Речь идёт о создании продуктов, которыми могут пользоваться все, независимо от их способностей, технической грамотности, операционной системы или устройства.

В этой статье я поделюсь практическими советами о том, как правильно разметить три распространённых шаблона пользовательского интерфейса. Независимо от того, являетесь ли вы новичком в области доступности или просто нуждаетесь в освежении, эти советы помогут создавать более инклюзивные интерфейсы. Также привожу ссылки на примеры реализации и внешние ресурсы, чтобы можно было воочию убедиться, как эти изменения влияют на удобство использования. Вы увидите, как несколько продуманных корректировок могут изменить всё к лучшему.

🖥 Читать статью

📱 @dev_notes_ru

#frontend #a11y #html #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
💡 Совет по Laravel: Хелпер `today()`

Иногда нужно получить сегодняшнюю дату. Хотя это можно сделать несколькими способами, Laravel поставляется с понятным хелпером today(), предназначаемым именно для этого. Можно передавать часовые пояса и подключать другие полезные методы 🚀.

📱 @dev_notes_ru

#laravel #helper #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
👩‍💻 Ставить точку с запятой или нет

С тех пор как я начал изучать этот язык, JavaScript претерпел ряд серьезных изменений. В первую очередь, похоже, стало нормой не использовать точки с запятой. Популярные проекты, такие как Vue, похоже, не используют их вообще.

Люди утверждают, что автоматической вставки точки с запятой (ASI) достаточно. Не нужно печатать больше, чем нужно.

Так ли важна точки с запятой на самом деле?

Вопрос мнения

Вы можете подумать, что использование точки с запятой зависит от мнения разработчика - использовать её или нет, в зависимости от того, что он предпочитает. Однако возникает вопрос. Действительно ли они необходимы при любых обстоятельствах?

Ответ - да. Точки с запятой действительно необходима при определенных обстоятельствах, и отсутствие точки с запятой может привести к ошибкам в коде.

Рассмотрим несколько примеров, когда точка с запятой абсолютно необходима в JavaScript.

Несколько выражений в одной строке

Не знаю, зачем кому-то понадобилось писать такой код, но взгляните на него:

let x = 5; let y = 10; console.log(x + y);


Если убрать точки с запятой и вставить код в консоль, возникнет синтаксическая ошибка: unexpected token: 'let'. Возможно, нужно просто написать быстрый скрипт, чтобы сделать какую-то хитрость на веб-странице. В этом случае необходимо использовать точки с запятой.

Немедленно вызываемые функциональные выражения (IIFE)

Точка с запятой особенно важна, когда новая строка начинается с открытой круглой скобки ( или открытой квадратной скобки [. Эти символы могут быть неправильно интерпретированы движком JavaScript, если точка с запятой не поставлена, так как JavaScript может предположить, что вы пытаетесь немедленно вызвать функцию или получить доступ к массиву.

let x = 5
(function() {
console.log('Hello, world!');
})(); // Uncaught TypeError: 5 is not a function


Этот код выглядит невинно, но JavaScript попытается интерпретировать вторую строку так, как будто она является частью первой, что совершенно бессмысленно, и действительно приведет к ошибке.

Конечно, добавление точки с запятой в конце первого утверждения устраняет проблему.

Согласованность между языками

Если вы разработчик, работающий с несколькими языками программирования, использование точек с запятой поможет сохранить единый стиль кодирования. Во многих других языках, таких как Java, C# и C++, точка с запятой является обязательной.

Переключение между языками, в одном из которых нет точек с запятой, иногда может привести к простым ошибкам (и огромному раздражению), когда переключаешься на другой язык, где они требуются.

Использовать или не использовать точку с запятой

JavaScript позволяет опускать точки с запятой во многих ситуациях, но я считаю, что для ясности, удобства сопровождения и во избежание головной боли (и сумасшествия) лучше использовать точки с запятой в коде. Это также поможет сохранить последовательность в разных языках. Так что, серьезно... почему бы и нет?

#JavaScript #semicolon
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💯1🤣1