#laravel #db #database #mysql #backend
Разделение хостов баз данных для оптимизации в Laravel
На сайтах с высокой посещаемостью, например, в электронной коммерции или социальных сетях, где одновременно выполняется множество операций чтения и записи, база данных будет узким местом.
Например, в MySQL производительность чтения может пострадать при одновременном выполнении операций записи, поскольку операции записи могут получить блокировки, которые могут задержать операции чтения, особенно если база данных интенсивно используется и количество одновременных операций велико.
Кроме того, в большинстве случаев дисковый ввод/вывод распределяется между операциями чтения и записи. Большие объёмы записи могут привести к задержке ввода/вывода, замедляя операции чтения.
📄 Читать статью
@dev_notes_ru
Разделение хостов баз данных для оптимизации в 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
Пример кода Laravel: Кэширование.
Он взят из проекта с открытым исходным кодом pixelfed: не просто кэширование данных, а манипулирование их значениями.
Источник: https://github.com/pixelfed/pixelfed/blob/dev/app/Services/LikeService.php
@dev_notes_ru
👍2❤1
#laravel #eloquent #php #tips #backend
При определении отношений вы можете использовать функцию
Это позволяет избежать проверки на
@dev_notes_ru
При определении отношений вы можете использовать функцию
withDefault(), чтобы предоставить значения по умолчанию для отсутствующих связанных моделей. Это позволяет избежать проверки на
null и сохранить чистоту представлений, а также легко указать значения по умолчанию.@dev_notes_ru
🔥3
#database #mysql #replication #backend
Как настроить MySQL репликацию Master-Slave
В облачных вычислениях репликация данных "master-slave" означает хранение одной и той же информации на нескольких серверах. Один сервер управляет группой, а другие устройства выполняют работу в пределах одного узла.
Репликация позволяет создавать регулярные ежедневные резервные копии, которые могут восстановить главную базу данных MySQL в случае сбоя в работе хранилища. Это также позволяет одновременно обрабатывать данные, не перегружая master сервер.
📄 Читать статью
@dev_notes_ru
Как настроить MySQL репликацию Master-Slave
В облачных вычислениях репликация данных "master-slave" означает хранение одной и той же информации на нескольких серверах. Один сервер управляет группой, а другие устройства выполняют работу в пределах одного узла.
Репликация позволяет создавать регулярные ежедневные резервные копии, которые могут восстановить главную базу данных MySQL в случае сбоя в работе хранилища. Это также позволяет одновременно обрабатывать данные, не перегружая master сервер.
📄 Читать статью
@dev_notes_ru
👍2🔥1
#laravel #php #tips #backend
Совет по Laravel💡: Проверка правильности JSON
Часто нам нужно проверить, является ли заданная строка валидным JSON. Laravel предоставляет элегантный метод
@dev_notes_ru
Совет по Laravel💡: Проверка правильности JSON
Часто нам нужно проверить, является ли заданная строка валидным JSON. Laravel предоставляет элегантный метод
isJson, чтобы помочь в этом. Он использует новую функцию json_validate в PHP 8.3 и json_decode для более ранних версий 🚀.@dev_notes_ru
👍3😁1
#laravel #php #tips #backend
Возможно, вы уже использовали кэш Laravel для хранения результатов, требующих больших ресурсов. Но знали ли вы, что в Laravel также есть хелпер
@dev_notes_ru
Возможно, вы уже использовали кэш Laravel для хранения результатов, требующих больших ресурсов. Но знали ли вы, что в Laravel также есть хелпер
once(), кэширующий результат для данного запроса.@dev_notes_ru
❤5
#database #replication #backend
Типы репликации баз данных
Репликация базы данных — это как создание копий важных документов, чтобы иметь резервные копии на случай, если с оригиналом что-то случится. Существуют различные способы создания таких копий, например, одна основная копия (master), которая обновляется, а затем создаются копии (slave) этой обновлённой версии. Другой способ — иметь несколько основных копий (master), обновляемых и совместно использующих эти обновления. Далее рассмотрим различные типы репликации баз данных.
📄 Читать статью
@dev_notes_ru
Типы репликации баз данных
Репликация базы данных — это как создание копий важных документов, чтобы иметь резервные копии на случай, если с оригиналом что-то случится. Существуют различные способы создания таких копий, например, одна основная копия (master), которая обновляется, а затем создаются копии (slave) этой обновлённой версии. Другой способ — иметь несколько основных копий (master), обновляемых и совместно использующих эти обновления. Далее рассмотрим различные типы репликации баз данных.
📄 Читать статью
@dev_notes_ru
👍3
#php #tips #backend
Советы по PHP: Оптимизируйте выражения If!
При написании выражений
Почему? PHP использует метод короткого замыкания. Если предыдущее условие не выполняется, последующие не проверяются, что экономит время обработки.
@dev_notes_ru
Советы по PHP: Оптимизируйте выражения If!
При написании выражений
if с несколькими условиями упорядочивайте их от самого быстрого к самому медленному.Почему? PHP использует метод короткого замыкания. Если предыдущее условие не выполняется, последующие не проверяются, что экономит время обработки.
@dev_notes_ru
👍8🔥1
#frontend #css
Синтаксис относительного цвета — примеры использования
Поддержка синтаксиса относительного цвета в CSS теперь повсеместна (вперёд, к взаимодействию!), поэтому рассмотрим некоторые базовые (и всё ещё очень полезные) варианты использования, например, применение альфы к цвету, который у вас есть под рукой.
📄 Читать статью
@dev_notes_ru
Синтаксис относительного цвета — примеры использования
Поддержка синтаксиса относительного цвета в CSS теперь повсеместна (вперёд, к взаимодействию!), поэтому рассмотрим некоторые базовые (и всё ещё очень полезные) варианты использования, например, применение альфы к цвету, который у вас есть под рукой.
📄 Читать статью
@dev_notes_ru
👍1
#frontend #sass #scss #vite #webpack
Ускорение компиляции Sass в Vite и Webpack
Vite поставляется со встроенной поддержкой Sass, а также других CSS-препроцессоров. Просто установите
Однако в этом была своя загвоздка. При каждом импорте Sass новый экземпляр Sass запускается, компилируется и завершается. Если у вас есть один импортированный файл точки входа Sass, импортирующий другие файлы Sass, это не так уж и важно. Но если используется однофайловый компонент(SFC) Vue с
Это может привести к большим потерям времени.
В начале этого года OddBird помог Sass добавить новый Compiler API, позволяющий повторно использовать один экземпляр Sass для нескольких компиляций. Хотя можно использовать новый API в собственных настройках компиляции Sass, было приятно увидеть, что команда Vite добавила его поддержку в версии 5.4.0.
📄 Читать статью
@dev_notes_ru
Ускорение компиляции 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 прост, но хорошо продуман... всего два основных интерфейса
-
-
@dev_notes_ru
PSR11 прост, но хорошо продуман... всего два основных интерфейса
-
get($id): Возвращает запись.-
has($id): Проверяет, есть ли в контейнере данная запись.@dev_notes_ru
👍2
#backend #php #tips
Почему я предпочитаю функции массива циклам
В PHP есть довольно много функций для работы с массивами, каждая из которых имеет своё собственное применение. В этой статье расскажу о функциях, которые обходят массив и выполняют функцию для каждого элемента в массиве.
Можно вспомнить такие функции, как
📄 Читать статью
@dev_notes_ru
Почему я предпочитаю функции массива циклам
В PHP есть довольно много функций для работы с массивами, каждая из которых имеет своё собственное применение. В этой статье расскажу о функциях, которые обходят массив и выполняют функцию для каждого элемента в массиве.
Можно вспомнить такие функции, как
array_reduce, array_map, array_filter и т. д. Каждая из этих функций выполняет определённые действия для каждого элемента массива и возвращает новое значение.📄 Читать статью
@dev_notes_ru
👍1
#css #grid #tips #frontend
Вместо того чтобы мысленно обозначать столбцы и строки, используйте области шаблонов грида. Это как дать названия блокам, сделать макет визуально описательным и более простым в управлении.
Использование имен делает код более читаемым и упрощает процесс проектирования.
@dev_notes_ru
Вместо того чтобы мысленно обозначать столбцы и строки, используйте области шаблонов грида. Это как дать названия блокам, сделать макет визуально описательным и более простым в управлении.
Использование имен делает код более читаемым и упрощает процесс проектирования.
@dev_notes_ru
👍1
#backend #laravel #collection #tips
Понимание операции сведения в Коллекциях Laravel
В Коллекциях Laravel есть хелпер, помогающий работать с массивами данных. Для работы с данными используется подход функционального программирования, и одной из операций, которую можно выполнить, является операция сведения
Концепция операций сведения поначалу может показаться пугающей. Однако как только поймёте основную идею, обнаружите, что это мощный инструмент, который может упростить код и сделать его более выразительным. В этой статье мы разложим операции сведения на простые для понимания концепции и приведём практические примеры с использованием метода
📄 Читать статью
@dev_notes_ru
Понимание операции сведения в Коллекциях Laravel
В Коллекциях Laravel есть хелпер, помогающий работать с массивами данных. Для работы с данными используется подход функционального программирования, и одной из операций, которую можно выполнить, является операция сведения
Концепция операций сведения поначалу может показаться пугающей. Однако как только поймёте основную идею, обнаружите, что это мощный инструмент, который может упростить код и сделать его более выразительным. В этой статье мы разложим операции сведения на простые для понимания концепции и приведём практические примеры с использованием метода
reduce() коллекции Laravel.📄 Читать статью
@dev_notes_ru
👍1