Заметки разработчика
Kanalga Telegram’da o‘tish
Заметки о Frontend, Backend и немного DevOps. В основном о #PHP, #Laravel, #JavaScript, #HTML, #CSS, тестировании и настройке серверов. https://www.dev-notes.ru @snakenf
Ko'proq ko'rsatish463
Obunachilar
Ma'lumot yo'q24 soatlar
-37 kun
+130 kun
Postlar arxiv
Этот совет продолжает начатую вчера тему, связанную с проверкой строгости Eloquent.
https://www.dev-notes.ru/articles/eloquent/a-surprising-issue-with-the-auth-user-and-tests/
В Symfony 6.4 добавлено множество функций для улучшения DX (опыта разработчиков): добавление серверных параметров при клике по ссылкам, определение атрибутов краулера по умолчанию и т.д.
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-dx-improvements-part-2/
Мы переживаем некий ренессанс CSS: новые возможности, техники, эксперименты и идеи появляются в таком количестве, какого мы не видели со времён "CSS3". Легко почувствовать себя подавленным, когда, кажется, что твоя профессия развивается с бешеной скоростью, но Джефф Грэм (Geoff Graham) считает, что "современный" CSS в 2023 году фактически сделал CSS "проще" в написании.
https://www.dev-notes.ru/articles/css/few-ways-css-easier-write-2023/
Я большой поклонник нового "strict mode" для моделей Laravel. Одна из вещей, которую он помогает отловить, — это ужасный запрос "N+1", вызывающий проблемы с производительностью в продакшене.
https://www.dev-notes.ru/articles/eloquent/lazy-loading-protection-does-not-catch-all-n-plus-1-queries/
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/
Как работать с редиректами и каковы последствия их использования — вот несколько вопросов, возникающих в процессе SEO-аудита. Некоторые SEO-эксперты более фаталистично, чем другие, относятся к тому, как редиректы могут повлиять на рейтинг вашего сайта на страницах результатов поисковых систем (SERP).
Будьте осторожны, когда SEO-эксперт говорит, что необходимо удалить все редиректы с вашего сайта.
В последние месяцы я получил несколько требований от очень обеспокоенных клиентов, которым рекомендовали "удалить ВСЕ редиректы" на сайте, поскольку это влияет на SEO. Обычно к этому требованию прилагается очень длинный лист, включающий все найденные ими "плохие" ссылки, которые должны быть исправлены "немедленно".
Во-первых, единственное, что говорят подобные отчёты, это: "эта ссылка ---- теперь указывает на ----", и больше ничего; при этом не уточняется, хорошо это или плохо, поэтому давайте выясним, как нам следует обрабатывать такие запросы.
https://www.dev-notes.ru/articles/seo/are-redirections-affecting-your-seo/
Операции со строками и манипулирование ими относятся к фундаментальным задачам любого языка программирования, и Laravel предлагает обширный набор хелперов для упрощения этих задач. Для разработчика очень важно быть в курсе новейших методик и лучших практик, чтобы оптимизировать эффективность этих хелперов.
В этой статье мы рассмотрим десять ценных советов по оптимизации десяти Laravel хелперов для работы со строками в 2023 году. Независимо от того, являетесь ли вы начинающим или опытным разработчиком Laravel, эти советы помогут вам усовершенствовать навыки работы со строками и сделать ваш код более эффективным.
Давайте погрузимся в этот процесс и раскроем весь потенциал Laravel хелперов для работы со строками.
https://www.dev-notes.ru/articles/laravel/tips-for-optimizing-laravel-10-string-helpers-in-2023/
Node.js позволяет создавать быстрые и масштабируемые веб-приложения используя JavaScript как на сервере, так и на клиенте. Ваше приложение может прекрасно работать на машине разработчика, но можете ли вы быть уверены, что оно будет работать на устройствах ваших коллег или на рабочих серверах?
В этом руководстве рассказывается о преимуществах запуска приложений Node.js в контейнерах Docker и о том, как создать практичный рабочий процесс разработки.
https://www.dev-notes.ru/articles/devops/node-js-docker/
TypeScript, статически типизированный надмножество JavaScript, привносит в язык дополнительные статические типы и объектно-ориентированное программирование на основе классов. Две важнейшие концепции, которые вводит TypeScript, — это Перегрузка и Дженерики. Эти возможности повышают гибкость, удобство повторного использования кода и безопасность наших программ.
https://www.dev-notes.ru/articles/typescript/typescript-mastering-overloading-and-generics/
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/
Цепочка прототипов — это механизм в JavaScript, позволяющий объектам наследовать свойства и методы других объектов, имея общий прототип. В JavaScript каждый объект имеет связанный с ним прототип объекта, и эти прототипы образуют цепочку. Когда свойство или метод не найдены в объекте, JavaScript просматривает цепочку прототипов, чтобы найти его в прототипе объекта или в прототипах его предков.
https://www.dev-notes.ru/articles/javascript/what-is-prototype-chaining/
В Symfony 6.4 реализована поддержка числовых кодов ISO 3166-1, улучшено ограничение Type, повышена точность форматирования временных сообщений, улучшена работа утилит фильтрации Finder...
https://www.dev-notes.ru/articles/symfony/new-in-symfony-6-4-dx-improvements-part-1/
В этой статье я рассмотрю регулярные выражения, также известные как Regex, и попытаюсь убедить вас в том, что их наличие в вашей кодовой базе — плохая идея. Для краткости я не буду пытаться объяснить внутреннюю работу и применение Regex, но постараюсь убедить вас в необходимости их рефакторинга из вашей кодовой базы.
https://www.dev-notes.ru/articles/javascript/clean-your-javascript-get-rid-of-the-regular-expressions/
В программировании, особенно в динамичном и постоянно развивающемся мире JavaScript, путь от новичка до опытного профессионала сопряжён с множеством трудностей и кривых обучения. Один из важнейших выводов, который я вынес из своего богатого опыта, как в качестве интервьюера, так и в качестве интервьюируемого, заключается в огромной важности понимания "почему", стоящего за нашими кодовыми решениями. Именно такое глубокое понимание и способность чётко сформулировать причины каждого решения действительно отличают исключительных специалистов.
https://www.dev-notes.ru/articles/javascript/clean-your-javascript-transform-conditional-statements/
Как настроить локальную среду разработки для тестирования классов или утилит пакета в рамках локального проекта Laravel.
https://www.dev-notes.ru/articles/laravel/create-a-laravel-package-on-your-local-environment/
Docker — это инструмент, облегчающий создание, развёртывание и запуск приложений с помощью контейнеров. Контейнеры позволяют инженеру упаковать приложение со всеми необходимыми компонентами, например библиотеками и другими зависимостями, и отправить его в виде единого пакета. Это означает, что приложение будет работать на любой другой машине, независимо от настроек, которые могут отличаться от настроек машины, использовавшейся для написания и тестирования кода.
https://www.dev-notes.ru/articles/devops/what-really-happens-when-you-command-docker-run/
Иногда требуется, чтобы список отображался не вертикально, а в виде горизонтального списка (как в навигационном меню).
https://www.dev-notes.ru/articles/css/semantic-horizontal-lists/
Давайте разберёмся нужны ли бандлеры для сборки JavaScript проектов? Есть ли выгода от пакетирования, или лучше загружать множество небольших js-файлов?
https://www.dev-notes.ru/articles/frontend/web-performance-and-parallel-vs.-waterfall-downloads/
Повторные отправки форм или запросов могут быть распространённой проблемой в веб-приложениях, часто приводящей к непредвиденным последствиям. Laravel предлагает простое решение для предотвращения таких дубликатов с помощью атомарной блокировки. В этой статье мы рассмотрим реализацию атомарной блокировки для обеспечения того, чтобы отправленная форма обрабатывалась только один раз. Кроме того, мы рассмотрим, как атомарные блокировки могут предотвратить многократную диспетчеризацию одного и того же задания.
https://www.dev-notes.ru/articles/laravel/preventing-duplicate-form-submissions-using-atomic-locks/
