The Dragon Code News
265 subscribers
259 photos
9 videos
4 files
292 links
Рассказываем о том, над чем работаем и что может быть полезным разработчикам 🙂

dragon-code.pro
Download Telegram
Тейлор стырил у меня двадцатку...

...в чате техпода одновременно с этим написали "вернём в течение 10-ти рабочих дней"

🤣🤣🤣
😁5
Тейлор вернул двадцатку)))

Думал я не замечу, что ли?)))))))))))
🤣3👍2
Батя дома 😎
🔥2
Подкинули идею использования порядка индексов для увеличения производительности.

Кейс: Надо выбрать зарегистрированных сегодня и забанненых пользователей.

Суть в сравнении скорости работы индексов в зависимости от их порядка - is_active + created_at или created_at + is_active.

Решил проверить на практике:

- PHP 8.5.6
- Laravel 13
- Postgres 18
- Миграция с созданием 1 млн записей: https://laravel.su/pastebin/TP82RzZb
- Бенчмарк: https://laravel.su/pastebin/ieEPbf0D

Сравнение по 10к раз каждый.

Результат:

+-------+------------------------+------------------------+
| # | is_active + created_at | created_at + is_active |
+-------+------------------------+------------------------+
| min | 2.02 ms | 2.117 ms |
| max | 3.049 ms | 3.146 ms |
| avg | 2.432 ms | 2.555 ms |
| total | 19453.767 ms | 20442.837 ms |
+-------+------------------------+------------------------+
| order | 1 | 2 |
+-------+------------------------+------------------------+


Таким образом, переходя за грань фанатизма даже в хайлоаде, можно следить за порядком полей, а так смысла нет экономить на спичках, учитывая что результат не сильно отличается.
1👍3
😁19
Конвертер Markdown to Jira

Забирайте, кому нужен

- Репозиторий
- Live site
👍3🤷‍♂1
Поработал некоторое время со скиллом Jira Markup, созданным из официальной документации по разметке.

Нейронка хоть на слабой, хоть на сильной модели работает с ним нестабильно и непредсказуемо. Часто требовалось по несколько раз повторять запрос форматирования текста с сохранением результата.

Надоело.

В итоге пошёл другим путём - заменил текстовое описание на JS скрипт.

Оригинал скрипта взят из репозитория Markdown to Jira, сверху дописав обёртку для работы с CLI.

В итоге получился лёгкий 46-килобайтный стабильно работающий скрипт.

Само собой, для его работы нужна предустановленная NodeJs.

Был ещё вариант с Bun, но... просто глянь на скрин первого коммента под катом 🙂
🔥1
Не знаю что это, но выглядит забавно)))

GPT-5.5 says
Russian-speaking software developer known for open-source PHP/Laravel packages and developer tools.

Claude Opus 4.8 says
Open-source developer known in the Laravel/PHP community, creator of packages like Laravel-Lang and contributions to various Laravel tools.


https://intheweights.com
🔥3
Avril Lavigne… 41 год.

https://youtu.be/TIy3n2b7V9k
🔥3😢2
😁10🤣7👍4
1😁8🥰31
Media is too big
VIEW IN TELEGRAM
Запустили краудфандинг!!!

11 сентября в Art Village под Москвой собираем небольшую PHP-конференцию на 120 участников: один поток, 8 докладов и много живого общения.

Средства на мероприятие собираем через краудфандинг. Можно взять офлайн-билет, доступ к записям, футболку «Вы вымрете, а я останусь» или просто поддержать проект любой суммой.

https://planeta.ru/campaigns/pyhnik26
1👍1🔥1💩1
This media is not supported in your browser
VIEW IN TELEGRAM
В репозитории GitHub пропала возможность публиковать Latest релизы? Решение найдено!

После ситуации с массовым взломом GitHub аккаунтов, в число которых попало четыре проекта Laravel-Lang, компания GitHub оперативно усилила безопасность репозиториев.

Одним из следствий этого стала непонятная причина публикации новых релизов - у некоторых репозиториев всё как обычно, указали тег, ввели описание, ткнули "Latest" и готово, а у некоторых, даже в рамках одной организации, кнопка "Latest" отсутствовала, и можно было создать только "Pre-release".

Нашёл способ решения этой проблемы!

1. Опубликуйте "Pre-release"
2. Вернитесь на страницу релизов
3. Нажмите на Edit (кнопка с карандашом)
4. Прокрутите вниз и выберите "Release label" - "None".
5. Жмите "Update release"

Теперь, внезапно, этот релиз будет иметь метку "Latest" и, если вернуться на страницу его редактирования, там также будет выбран пункт "Latest".
С этих самых пор, новые релизы будут иметь возможность публикации "Latest" версий.

Работает даже с иммутабельными релизами.
🤡3👍1
Laravel Model Settings

Новый проект для удобного управления настройками моделей.

Есть возможность работать как с персональными настройками модели, так и с глобальными в рамках класса моделей.

Например:

class User extends Model
{
use HasSettings;
}

class Post extends Model
{
use HasSettings;
}

$user->defaultSettings()->set('foo', 111);
$post->defaultSettings()->set('foo', 222);

$post->settings()->set('foo', 333);
$post->settings()->set('bar', 444);

$user->settings()->get('foo'); // 111
$post->settings()->get('foo'); // 333
$post->settings()->get('bar'); // 444


https://github.com/TheDragonCode/laravel-model-settings
👍53🔥3💩1
Laravel Model Settings 1.1.0

Пакет хранит настройки отдельных Eloquent-моделей и общие значения по умолчанию.

В версии 1.1.0:

get() и all() получают настройки одним SQL-запросом;
— добавлена поддержка UUID и ULID;
— появились касты payload для разных моделей, включая поддержку spatie/laravel-data;
— добавлена совместимость с MySQL, MariaDB, PostgreSQL и SQLite.

class User extends Model
{
use HasSettings;
}

$user->defaultSettings()->set('timezone', 'UTC');

$user->settings()->get('timezone'); // UTC
$user->settings()->set('timezone', 'Europe/Amsterdam');
$user->settings()->get('timezone'); // Europe/Amsterdam

$user->settings()->forget('timezone');
$user->settings()->get('timezone');// UTC


При обновлении учтите: конфиг переименован в model_settings.php.

GitHub · Релиз 1.1.0
🔥1💩1
От скучной генерации к инженерии с ИИ

ИИ быстро генерирует код, но без контекста, декомпозиции и проверок работа с агентами превращается в ожидание и бесконечные правки. В докладе поговорим об AI-разработке как об управляемом инженерном процессе.

Данил Щуцкий — backend-разработчик с опытом более 15 лет, автор Laravel-сообщества и YouTube-канала CutCode. Консультирует команды по архитектуре и высоконагруженным системам, развивает open source и инструменты для работы с ИИ.

На примере AI Factory и AI Workspace Данил покажет, зачем нужны отдельные этапы исследования, планирования, реализации и проверки — и как превратить работу с кодинг-агентами в повторяемый процесс с понятными правилами и контролем результата.

🌿 Присоединиться к Пыхнику
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4💩2🤣1
Composer 2.10.1 изменил правила игры

[ тыц, тыц, тыц ]

Если вы устанавливаете зависимости только из опенсурс репозиториев, тогда разницы не заметите.

Но если у вас есть свой собственный репозиторий, из которого по ssh тянутся зависимости, тогда готовьтесь видеть в консоли 404 Not Found при загрузке по HTTPS.

Причина в том, что Composer отключил fallback switch, когда при недоступности ресурса он менялся на другой - source-dist и dist-source.

Теперь нужно явно определять КАК нужно устанавливать зависимости.

1. Внесите изменения в файл composer.json (порядок важен):
 {
"config": {
- "preferred-install": "dist"
+ "preferred-install": {
+ "company/*": "source",
+ "*": "dist"
+ }
}
}


Можно через консоль:

composer config 'preferred-install.company/*' source
composer config 'preferred-install.*' dist


2. Уберите параметры --prefer-source и --prefer-dist из composer install.

Лучше иметь такой набор:

composer install --no-progress --no-interaction --optimize-autoloader --classmap-authoritative --strict-psr-autoloader --no-dev
👍10