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

https://www.dev-notes.ru

@snakenf
Download Telegram
#laravel #eloquent #php #tips #backend

При использовании функции updateOrCreate() как узнать, была ли запись только что создана или только обновлена? Ну, вы можете использовать wasRecentlyCreated!

@dev_notes_ru
👍1
#laravel #db #database #mysql #backend

Разделение хостов баз данных для оптимизации в Laravel

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

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

Кроме того, в большинстве случаев дисковый ввод/вывод распределяется между операциями чтения и записи. Большие объёмы записи могут привести к задержке ввода/вывода, замедляя операции чтения.

📄 Читать статью

@dev_notes_ru
👍3
#laravel #tips #caching #example #php #backend

Пример кода Laravel: Кэширование.

Он взят из проекта с открытым исходным кодом pixelfed: не просто кэширование данных, а манипулирование их значениями.

Источник: https://github.com/pixelfed/pixelfed/blob/dev/app/Services/LikeService.php

@dev_notes_ru
👍21
#laravel #eloquent #php #tips #backend

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

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

@dev_notes_ru
🔥3
#database #mysql #replication #backend

Как настроить MySQL репликацию Master-Slave

В облачных вычислениях репликация данных "master-slave" означает хранение одной и той же информации на нескольких серверах. Один сервер управляет группой, а другие устройства выполняют работу в пределах одного узла.

Репликация позволяет создавать регулярные ежедневные резервные копии, которые могут восстановить главную базу данных MySQL в случае сбоя в работе хранилища. Это также позволяет одновременно обрабатывать данные, не перегружая master сервер.

📄 Читать статью

@dev_notes_ru
👍2🔥1
#laravel #php #tips #backend

Совет по Laravel💡: Проверка правильности JSON

Часто нам нужно проверить, является ли заданная строка валидным JSON. Laravel предоставляет элегантный метод isJson, чтобы помочь в этом. Он использует новую функцию json_validate в PHP 8.3 и json_decode для более ранних версий 🚀.

@dev_notes_ru
👍3😁1
#laravel #php #tips #backend

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

@dev_notes_ru
5
#database #replication #backend

Типы репликации баз данных

Репликация базы данных — это как создание копий важных документов, чтобы иметь резервные копии на случай, если с оригиналом что-то случится. Существуют различные способы создания таких копий, например, одна основная копия (master), которая обновляется, а затем создаются копии (slave) этой обновлённой версии. Другой способ — иметь несколько основных копий (master), обновляемых и совместно использующих эти обновления. Далее рассмотрим различные типы репликации баз данных.

📄 Читать статью

@dev_notes_ru
👍3
#php #tips #backend

Советы по PHP: Оптимизируйте выражения If!

При написании выражений if с несколькими условиями упорядочивайте их от самого быстрого к самому медленному.

Почему? PHP использует метод короткого замыкания. Если предыдущее условие не выполняется, последующие не проверяются, что экономит время обработки.

@dev_notes_ru
👍8🔥1
#frontend #css

Синтаксис относительного цвета — примеры использования

Поддержка синтаксиса относительного цвета в CSS теперь повсеместна (вперёд, к взаимодействию!), поэтому рассмотрим некоторые базовые (и всё ещё очень полезные) варианты использования, например, применение альфы к цвету, который у вас есть под рукой.

📄 Читать статью

@dev_notes_ru
👍1
#laravel #pest #php #testing #backend

Совет по Pest💡: Ожидания более высокого порядка

Знаете ли вы, что Pest поставляется с "Ожиданиями высшего порядка"? Он позволяет выполнять ожидания для свойств и/или методов заданного объекта. В результате код становится намного чище 🚀.

@dev_notes_ru
👍2
#frontend #sass #scss #vite #webpack

Ускорение компиляции Sass в Vite и Webpack

Vite поставляется со встроенной поддержкой Sass, а также других CSS-препроцессоров. Просто установите npm sass, импортируйте файл .scss, и он заработает.

Однако в этом была своя загвоздка. При каждом импорте Sass новый экземпляр Sass запускается, компилируется и завершается. Если у вас есть один импортированный файл точки входа Sass, импортирующий другие файлы Sass, это не так уж и важно. Но если используется однофайловый компонент(SFC) Vue с lang="scss", то для каждого SFC создавался новый экземпляр Sass.

Это может привести к большим потерям времени.

В начале этого года OddBird помог Sass добавить новый Compiler API, позволяющий повторно использовать один экземпляр Sass для нескольких компиляций. Хотя можно использовать новый API в собственных настройках компиляции Sass, было приятно увидеть, что команда Vite добавила его поддержку в версии 5.4.0.

📄 Читать статью

@dev_notes_ru
👍1
#php #psr11 #backend

PSR11 прост, но хорошо продуман... всего два основных интерфейса

- get($id): Возвращает запись.
- has($id): Проверяет, есть ли в контейнере данная запись.

@dev_notes_ru
👍2
#backend #php #tips

Почему я предпочитаю функции массива циклам

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

Можно вспомнить такие функции, как array_reduce, array_map, array_filter и т. д. Каждая из этих функций выполняет определённые действия для каждого элемента массива и возвращает новое значение.

📄 Читать статью

@dev_notes_ru
👍1
#css #grid #tips #frontend

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

Использование имен делает код более читаемым и упрощает процесс проектирования.

@dev_notes_ru
👍1
#backend #laravel #collection #tips

Понимание операции сведения в Коллекциях Laravel

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

Концепция операций сведения поначалу может показаться пугающей. Однако как только поймёте основную идею, обнаружите, что это мощный инструмент, который может упростить код и сделать его более выразительным. В этой статье мы разложим операции сведения на простые для понимания концепции и приведём практические примеры с использованием метода reduce() коллекции Laravel.

📄 Читать статью

@dev_notes_ru
👍1
#laravel #tips #migration #backend

Совет по Laravel💡: Сгенерированные колонки

Знаете ли вы, что Laravel может работать со сгенерированными колонками в миграциях из коробки? Нет необходимости писать сырой SQL в миграции для создания этих колонок 🚀.

@dev_notes_ru
👍3