#статьи
🤯 Как выбрать стратегию кэширования: разбор 7 популярных алгоритмов
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
Читать статью
👉 Новости 👉 База вопросов
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое полиморфизм в РНР?
Полиморфизм в РНР позволяет использовать методы с одинаковым именем, но разным поведением в зависимости от типа обьекта. Это достигается через интерфейсы или абстрактные классы, которые задают общие методы, а конкретные классы реализуют их по-своему.
👉 Новости 👉 База вопросов
Полиморфизм в РНР позволяет использовать методы с одинаковым именем, но разным поведением в зависимости от типа обьекта. Это достигается через интерфейсы или абстрактные классы, которые задают общие методы, а конкретные классы реализуют их по-своему.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#ЛитКод
Задача: 441. Arranging Coins
У вас есть n монет, и вы хотите построить лестницу из этих монет. Лестница состоит из k рядов, где i-й ряд содержит ровно i монет. Последний ряд лестницы может быть неполным.
Дано целое число n, верните количество полных рядов лестницы, которые вы сможете построить.
Пример:
👨💻 Алгоритм:
1⃣ Если мы глубже посмотрим на формулу задачи, мы можем решить её с помощью математики, без использования итераций.
2⃣ Напомним, что условие задачи можно выразить следующим образом: k(k + 1) ≤ 2N.
3⃣ Это можно решить методом выделения полного квадрата, (k + 1/2)² - 1/4 ≤ 2N. Что приводит к следующему ответу: k = [sqrt(2N + 1/4) - 1/2].
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 441. Arranging Coins
У вас есть n монет, и вы хотите построить лестницу из этих монет. Лестница состоит из k рядов, где i-й ряд содержит ровно i монет. Последний ряд лестницы может быть неполным.
Дано целое число n, верните количество полных рядов лестницы, которые вы сможете построить.
Пример:
Input: n = 5
Output: 2
Explanation: Because the 3rd row is incomplete, we return 2.
class Solution {
function arrangeCoins($n) {
return (int)(sqrt(2 * $n + 0.25) - 0.5);
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😇 PDO или ORM?
PDO — для тех, кто ценит полный контроль. Пишете SQL вручную, понимаете, что происходит под капотом. Гибкость максимальна, но код засоряется повторениями, а сложные запросы становятся испытанием при развитии проекта.
ORM (Eloquent, Doctrine) — путь удобства. Работаете с объектами вместо SQL, код становится чище, а разработка быстрее. Но магия абстракции может привести к неожиданным SQL-запросам, проблемам с производительностью и сложной отладке.
👉 Новости 👉 База вопросов
PDO — для тех, кто ценит полный контроль. Пишете SQL вручную, понимаете, что происходит под капотом. Гибкость максимальна, но код засоряется повторениями, а сложные запросы становятся испытанием при развитии проекта.
ORM (Eloquent, Doctrine) — путь удобства. Работаете с объектами вместо SQL, код становится чище, а разработка быстрее. Но магия абстракции может привести к неожиданным SQL-запросам, проблемам с производительностью и сложной отладке.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Ваш файл
РЕШЕНИЕ 1: Команды в терминале
Если нужно что-то найти ОДИН РАЗ, используйте одну из этих команд:
🟠
🟠
🟠
РЕШЕНИЕ 2: Изменение режима логирования на "daily"
В файле
Это заставит Laravel создавать новый лог-файл каждый день (например,
РЕШЕНИЕ 3: Пакет Log Viewer
Пакет opcodesio/log-viewer предоставляет удобную панель для просмотра логов.
РЕШЕНИЕ 4: Внешние платные инструменты
Сервисы ОТСЛЕЖИВАНИЯ ОШИБОК, которые автоматически собирают и организуют ошибки:
🟠 Sentry
🟠 Bugsnag
🟠 Flare
Сервисы ДЛЯ УПРАВЛЕНИЯ ЛОГАМИ:
🟠 Papertrail
🟠 Loggly
🟠 LogDNA
👉 Новости 👉 База вопросов
laravel.log
слишком большой? Трудно читать/искать нужную информацию?РЕШЕНИЕ 1: Команды в терминале
Если нужно что-то найти ОДИН РАЗ, используйте одну из этих команд:
tail -n 100 storage/logs/laravel.log
– показать последние 100 строкtail -f storage/logs/laravel.log
– потоковое обновление лога в реальном времениgrep -i "error" storage/logs/laravel.log
– поиск ошибок (без учета регистра)РЕШЕНИЕ 2: Изменение режима логирования на "daily"
В файле
.env
установите:LOG_CHANNEL=daily
Это заставит Laravel создавать новый лог-файл каждый день (например,
laravel-2025-01-01.log
).РЕШЕНИЕ 3: Пакет Log Viewer
Пакет opcodesio/log-viewer предоставляет удобную панель для просмотра логов.
РЕШЕНИЕ 4: Внешние платные инструменты
Сервисы ОТСЛЕЖИВАНИЯ ОШИБОК, которые автоматически собирают и организуют ошибки:
Сервисы ДЛЯ УПРАВЛЕНИЯ ЛОГАМИ:
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое инкапсуляция и как она реализуется в РНР?
Инкапсуляция - это принцип ООП, при котором данные и методы, работающие с этими данными, объединяются в одном классе, а доступ к этим данным ограничивается с помощью модификаторов доступа (public, private, protected). Это позволяет скрыть внутренние детали реализации и управлять доступом к данным.
👉 Новости 👉 База вопросов
Инкапсуляция - это принцип ООП, при котором данные и методы, работающие с этими данными, объединяются в одном классе, а доступ к этим данным ограничивается с помощью модификаторов доступа (public, private, protected). Это позволяет скрыть внутренние детали реализации и управлять доступом к данным.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
😐 Ускоряем работу в PhpStorm: самые полезные хоткеи
И снова горячие клавиши. Вот подборка для работы с кодом:
🟠 Alt + Enter: универсальный контекстный помощник, отображающий доступные действия в зависимости от положения курсора.
🟠 Ctrl + P: показать подсказку по параметрам метода или функции.
🟠 Ctrl + Shift + I: быстрый просмотр реализации метода или функции.
👉 Новости 👉 База вопросов
И снова горячие клавиши. Вот подборка для работы с кодом:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Buggregator — удобная отладка
Buggregator — это идеальный инструмент отладки, который работает как сервер VarDumper, профилировщик Xhprof, локальный SMTP-сервер, локальный Sentry и многое другое.
👉 Новости 👉 База вопросов
Buggregator — это идеальный инструмент отладки, который работает как сервер VarDumper, профилировщик Xhprof, локальный SMTP-сервер, локальный Sentry и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как используется наследование в РНР?
Наследование в РНР позволяет одному классу (подклассу) наследовать методы и свойства другого класса (родительского класса). Это позволяет повторно использовать код и создавать иерархические связи между классами, где подклассы могут расширять или изменять функциональность родительского класса, сохраняя при этом общие черты.
👉 Новости 👉 База вопросов
Наследование в РНР позволяет одному классу (подклассу) наследовать методы и свойства другого класса (родительского класса). Это позволяет повторно использовать код и создавать иерархические связи между классами, где подклассы могут расширять или изменять функциональность родительского класса, сохраняя при этом общие черты.
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#полезное
🤓 Laravel использует
Это также может быть очень полезно при разработке приложения, в котором пользователи могут настраивать выполнение задач с нужной им периодичностью.
Вот как я использовал его, чтобы дать пользователям возможность создавать и запускать автоматические отчёты по расписанию
👉 Новости 👉 База вопросов
Cron\CronExpression
для определения времени выполнения запланированных задач.Это также может быть очень полезно при разработке приложения, в котором пользователи могут настраивать выполнение задач с нужной им периодичностью.
Вот как я использовал его, чтобы дать пользователям возможность создавать и запускать автоматические отчёты по расписанию
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😎 Пример HTTP-сервера на PHP с использованием файберов. Улучшенная версия
Статья показывает, как сделать быстрый HTTP-сервер на PHP с файберами и расширением ev, обходя ограничения socket_select() и добиваясь лучшей производительности
Подробнее
👉 Новости 👉 База вопросов
Статья показывает, как сделать быстрый HTTP-сервер на PHP с файберами и расширением ev, обходя ограничения socket_select() и добиваясь лучшей производительности
Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🛞 PHP под капотом: как работает генерация случайных чисел
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
Хабр
👉 Новости 👉 База вопросов
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
Хабр
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое миграции базы данных на примере Laravel?
Миграции - это способ описания изменений схемы базы данных в виде кода. Они помогают отслеживать версии изменений, легко разворачивать базу данных на новых средах и управлять откатами. Этот подход делает процесс работы. модификации базы данных более упорядоченным и удобным для командной
👉 Новости 👉 База вопросов
Миграции - это способ описания изменений схемы базы данных в виде кода. Они помогают отслеживать версии изменений, легко разворачивать базу данных на новых средах и управлять откатами. Этот подход делает процесс работы. модификации базы данных более упорядоченным и удобным для командной
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👍 Laravel Wayfinder
На той неделе команда Laravel выпустила новый инструмент — Wayfinder — в бета-версии: тыкГитхаб
Он генерирует TypeScript-функции, которые можно импортировать на фронтенде для ваших контроллеров и маршрутов
👉 Новости 👉 База вопросов
На той неделе команда Laravel выпустила новый инструмент — Wayfinder — в бета-версии: тыкГитхаб
Он генерирует TypeScript-функции, которые можно импортировать на фронтенде для ваших контроллеров и маршрутов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 Теперь PHPUnit по умолчанию использует in-memory SQLite базу данных для тестов
Ранее эти настройки в файле
👉 Новости 👉 База вопросов
Ранее эти настройки в файле
phpunit.xml
были закомментированы. Теперь они будут активны по умолчаниюPlease open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Подборка 5 полезных шпаргалок по верстке и гиту
Сохраняй, чтобы не потерять
👉 Новости 👉 База вопросов
Сохраняй, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM