Рубрика «laravel»

Один запрос: 4 мс с литералами и 3 секунды из Laravel. Как плейсхолдеры в IN выключают loose index scan в MySQL - 1

Наша панель для управления серверами хранит метрики в таблице server_metricsЧитать полностью »

Про N+1 в Laravel обычно пишут три строки про with() и расходятся. Я собрал небольшой стенд на Laravel 13 и SQLite, воспроизвёл проблему, посчитал запросы для каждого способа лечения и проверил, что «не ловится» режимом запрета ленивой загрузки. Отдельно разобрал места, где eager loading не помогает или сам создаёт нагрузку. Все числа в статье получены на этом стенде на искусственных данных.

Стенд и условия

Читать полностью »

Кто я и откуда этот проект

Всем привет! Сразу скажу: я не сеньор из продуктовой компании и не гуру SaaS. Я работаю в авиации, часто уезжаю на вахты, у меня ипотека и семья. Бросить стабильный доход ради разработки я не могу, поэтому проект пилю там, где получается: по вечерам после смены и в вахтовых перерывах.

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

Читать полностью »

Мы продаём инженерные узлы для отопления и водоснабжения многоэтажек. Каждая сделка — расчёт под конкретный дом, коммерческое предложение, договор, закуп, сборка и отгрузки партиями по графику стройки. Ещё недавно эта цепочка жила в Битрикс24, отдельном калькуляторе, 1С и рабочих чатах.

Читать полностью »

Как я два месяца отдавал Яндексу пустую страницу: SSR на Laravel + Inertia на shared-хостинге

Я сделал калькулятор налога для самозанятых. Ничего сложного: ввёл доход — получил налог. Сайт должен жить на поисковом трафике, поэтому SSR был обязательным требованием с первого дня. Стек — Laravel 12, Inertia, Vue 3, хостинг — обычный shared на Beget за пару сотен в месяц, без VPS и без root.

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

Читать полностью »

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

Читать полностью »

SVG4 — каталог векторных иконок

SVG4 — каталог векторных иконок

Больше года назад я запустил SVG4Читать полностью »

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

Одной из функций проекта стал календарь прохождений. Он показывает, в какие дни пользователь играл, начинал или заканчивал игры. Я рассчитывал, что календарём будут пользоваться люди — ну или хотя бы один человек: я.

Первым по-настоящему заинтересовался робот.

За один день он открыл мой календарь 88 632 разаЧитать полностью »

Небольшая предыстория — без рассказа про сам продукт, только про боль и как я её разгребал

Изначально это был монолитный портал на Laravel 8, где user‑фронт и admin‑фронт лежали рядом с беком в одной папке.

Проект ставился каждому клиенту на его собственный хостинг, и единого портала «для всех» не существовало, между клиентами отличался и бек, и фронт. 

Читать полностью »

Для крупной федеральной компании из телеком-сектора наша команда разработала закрытую семейную платформу для сотрудников и их детей. Один родительский аккаунт объединяет несколько детских профилей, а внутри находятся тематические районы, викторины, мини-игры, творческие задания, личный прогресс, баллы и общий рейтинг.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js