Рассматриваем Storybook в контексте обновления фронтовой части нового Buggregator.
Поверхностное рассмотрение демонстрационного проекта
https://youtu.be/Zk9E3ZBDtb8
Вуху, у нас есть чат! Теперь наши высеры можно комментировать! :)
Поверхностное рассмотрение демонстрационного проекта
Ticket Booking
, в котором интегрировано всё сразу: #Spiral, #Zipkin, #Birddog, #OpenTelemetry, #Grafana, #RoadRunner, #Centrifugo и #Temporalio. https://youtu.be/Zk9E3ZBDtb8
Вуху, у нас есть чат! Теперь наши высеры можно комментировать! :)
YouTube
🔥 Обсуждение #Buggregator #Storybook, Ticket Booking с #OpenTelemetry и Real-time Chat с #Centrifugo
В этом видео мы погрузимся в мир разработки и обсудим следующие темы:
1️⃣ Будущее и текущая стадия разработки #Buggregator. Мы поговорим о #Storybook, #Nuxt3 и #Vue3, которые были внедрены в проект.
2️⃣ Рассмотрим систему Ticket Booking - демо проект показывающий…
1️⃣ Будущее и текущая стадия разработки #Buggregator. Мы поговорим о #Storybook, #Nuxt3 и #Vue3, которые были внедрены в проект.
2️⃣ Рассмотрим систему Ticket Booking - демо проект показывающий…
🔥5
PHP Fart Time
Привет, фартаны! Мы вернулись к истокам и записали видосик. За последние полгода Buggregator Server круто прорефакторился 💪, поэтому напомнить о нём будет не лишним. https://youtu.be/qsDIHwS58Q4
MOSHED-2023-8-8-0-11-49.gif
15.9 MB
А ещё мы релизнули пакет
Написано на PHP с любовью и файберами🧵
Залетайте хейтить и рефакторить код! Предлагайте идеи. Например, отличная идея - добавить поддержку MQTT протокола - если тоже пилите умный дом и вам актуально - поставьте эмоджу.
Кстати, почему там ещё нет предложения добавить команду
#Buggregator
buggregator/trap
, который поможет дампать protobuf объекты. Эта утилита умеет ловить любой трафик и даже почту, а ещё у неё есть все шансы стать шлюзом к Buggregator Cloud.Написано на PHP с любовью и файберами🧵
Залетайте хейтить и рефакторить код! Предлагайте идеи. Например, отличная идея - добавить поддержку MQTT протокола - если тоже пилите умный дом и вам актуально - поставьте эмоджу.
Кстати, почему там ещё нет предложения добавить команду
trap fart
?#Buggregator
Мы выяснили, что вам, уважаемые фартаны, интересно почитать про #Buggregator. Ну что-ж, начнём со знакомства.
🪲 Buggregator — вспомогательный инструмент для отладки. Он не призван заменить xDebug, а наоборот - усилить. Из названия понятно, что он агрегирует баги, а точнее дампы. Что пошлёте — то и сагрегирует.
Сейчас поддерживаются:
- Логи из Monolog
- События и отчёты Sentry
- Профили XHProf (рисует граф и флейм-граф)
- Дампы из Symfony var-dumper и Spatie Ray
- Mail (есть встроенный SMTP сервер)
- Виджеты Inspector dev
🎁 В линейке Buggregator несколько продуктов.
Основной продукт, который мы подразумеваем под названием Buggregator — серверное решение, готовое интегрироваться в вашу инфраструктуру наравне с другими сервисами. Запускается и работает под докером.
Это Production-Ready решение, которое можно спрятать за авторизацией (доступна интеграция с SSO с настраиваемыми скоупами) и подключить к своей базе данных (сейчас доступны MongoDB и Postgres. Хотите MySQL? Добавим!)
😸 Начните локальное использование под докером, запустив команду:
Каждый порт соответствует своему протоколу. Просто настройте ваш сервис на использование этих портов:
- 8000: HTTP Dumps, Sentry, Ray, Inspector, XHProf.
- 1025: SMTP.
- 9912: Symfony Var-Dumper.
- 9913: Monolog.
Полная документация: docs.buggregator.dev
🔨 Разработка Buggregator ведётся в нескольких репозиториях:
- buggregator/server — бэкенд на Spiral и RoadRunner.
- buggregator/frontend — фронтенд на Vuejs 3 и TailwindCSS с использованием StoryBook.
- buggregator/docs — документация
⭐️ Мы будем очень рады, если вы поддержите нас звёздочкой на гитхабе и поучаствуете в развитии проекта своими идеями, багрепортами, контрибьютингом или просто расскажете о Buggregator своему коту.
Сейчас поддерживаются:
- Логи из Monolog
- События и отчёты Sentry
- Профили XHProf (рисует граф и флейм-граф)
- Дампы из Symfony var-dumper и Spatie Ray
- Mail (есть встроенный SMTP сервер)
- Виджеты Inspector dev
🎁 В линейке Buggregator несколько продуктов.
Основной продукт, который мы подразумеваем под названием Buggregator — серверное решение, готовое интегрироваться в вашу инфраструктуру наравне с другими сервисами. Запускается и работает под докером.
Это Production-Ready решение, которое можно спрятать за авторизацией (доступна интеграция с SSO с настраиваемыми скоупами) и подключить к своей базе данных (сейчас доступны MongoDB и Postgres. Хотите MySQL? Добавим!)
😸 Начните локальное использование под докером, запустив команду:
docker run --rm --pull always -p 127.0.0.1:8000:8000 -p 127.0.0.1:1025:1025 -p 127.0.0.1:9912:9912 -p 127.0.0.1:9913:9913 ghcr.io/buggregator/server:latest
Каждый порт соответствует своему протоколу. Просто настройте ваш сервис на использование этих портов:
- 8000: HTTP Dumps, Sentry, Ray, Inspector, XHProf.
- 1025: SMTP.
- 9912: Symfony Var-Dumper.
- 9913: Monolog.
Полная документация: docs.buggregator.dev
🔨 Разработка Buggregator ведётся в нескольких репозиториях:
- buggregator/server — бэкенд на Spiral и RoadRunner.
- buggregator/frontend — фронтенд на Vuejs 3 и TailwindCSS с использованием StoryBook.
- buggregator/docs — документация
⭐️ Мы будем очень рады, если вы поддержите нас звёздочкой на гитхабе и поучаствуете в развитии проекта своими идеями, багрепортами, контрибьютингом или просто расскажете о Buggregator своему коту.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16 12💊2
Продолжаем знакомство с миром #Buggregator
💾 Trap
Рабочее название в первые дни — "Buggregator Client". Задумывался как прокси вар-дампов на Buggregator Cloud, но быстро оброс фичами и новым смыслом.
Теперь Trap — это:
- Миниатюрный сервер Buggregator, не требующий Docker для работы. Написан на файберах PHP 8.1. Раньше выводил дампы, логи, HTTP и прочие события только в консоль. Сейчас поддерживается такой же WEB интерфейс, как у старшего брата.
- Набор патчей для Symfony VarDumper. Наличие установленного Trap в вашем проекте улучшит то, как VarDumper отрисовывает Protobuf объекты.
- Набор хелперов. В Trap есть функция
Установка:
🪲 Trap сервер
Запускается из вендора:
Флаг --ui необходим для включения веб-морды на 8000 порту. Сейчас эта функция в бета-режиме.
По умолчанию Trap слушает только один порт
Trap можно запустить на тех же портах, что и основной Buggregator:
(стоит ли сделать этот список портов по умолчанию?)
Trap годится только для локального использования: тут нет SSO, а из "внешних БД", возможно, будет только SQLite, просто чтобы не хранить события в массивах 🙂
Но есть и эксклюзивные фичи:
- благодаря "локальности", Trap может находить файлы профилировщиков, если таковые были сконфигурированы в
- низкоуровневая работа с трафиком позволяет реализовать абсолютно любой протокол. Даже просто вывести сырые бинарные данные, как отдельное событие, чего-то да стоит!
🚀 Хэлперы trap()
Функция
- При вызове сразу настраиваются умолчания для отправки симфоневых дампов на локальный сервер (
-
-
- а ещё (субъективно)
🪄 Подводя итог
Trap как сервер — хорошая альтернатива, когда не хочется запускать докер а PHP установлен локально.
Trap как PHP helper — необходим, если работаете с Protobuf и gRPC. Может быть удобнее
⭐️ Также будем очень рады звёздочкам на гитхабе и контрибьюторской поддержке.
Рабочее название в первые дни — "Buggregator Client". Задумывался как прокси вар-дампов на Buggregator Cloud, но быстро оброс фичами и новым смыслом.
Теперь Trap — это:
- Миниатюрный сервер Buggregator, не требующий Docker для работы. Написан на файберах PHP 8.1. Раньше выводил дампы, логи, HTTP и прочие события только в консоль. Сейчас поддерживается такой же WEB интерфейс, как у старшего брата.
- Набор патчей для Symfony VarDumper. Наличие установленного Trap в вашем проекте улучшит то, как VarDumper отрисовывает Protobuf объекты.
- Набор хелперов. В Trap есть функция
trap()
. Это тот же Symfony dump()
, но с некоторыми изменениями. Установка:
composer require --dev buggregator/trap -W
🪲 Trap сервер
Запускается из вендора:
./vendor/bin/trap --ui
Флаг --ui необходим для включения веб-морды на 8000 порту. Сейчас эта функция в бета-режиме.
По умолчанию Trap слушает только один порт
9912
, но туда можно слать всё: и дампы, и логи, и http, переходящий в WebSocket. Мы написали инспектор траффика, который сам определяет протокол и направляет данные в нужный обработчик.Trap можно запустить на тех же портах, что и основной Buggregator:
vendor/bin/trap -p1025 -p9912 -p9913 -p8000
(стоит ли сделать этот список портов по умолчанию?)
Trap годится только для локального использования: тут нет SSO, а из "внешних БД", возможно, будет только SQLite, просто чтобы не хранить события в массивах 🙂
Но есть и эксклюзивные фичи:
- благодаря "локальности", Trap может находить файлы профилировщиков, если таковые были сконфигурированы в
php.ini
.- низкоуровневая работа с трафиком позволяет реализовать абсолютно любой протокол. Даже просто вывести сырые бинарные данные, как отдельное событие, чего-то да стоит!
🚀 Хэлперы trap()
Функция
trap()
немного отличается от dump()
:- При вызове сразу настраиваются умолчания для отправки симфоневых дампов на локальный сервер (
127.0.0.1:9912
), так что не надо лезть в .env
.-
trap()
имеет текучий интерфейс (fluent interface), а значит можно делать так:trap(FOO: $foo, BAR: $bar) // Дампаем переменные с указанием имен
->stackTrace() // Добавить красивый Stack Trace
->once() // Сработает один раз. Удобно использовать в циклах.
->if($foo instanceof FooInterface) // Условие отправки; можно функцией
->return(); // $foo вернётся как результат
-
trap()::profile()->...
в планах добавить удобства для профилирования- а ещё (субъективно)
trap
набирать и произносить удобнее, чем dump
. Так что хватит дампать, го трапать!🪄 Подводя итог
Trap как сервер — хорошая альтернатива, когда не хочется запускать докер а PHP установлен локально.
Trap как PHP helper — необходим, если работаете с Protobuf и gRPC. Может быть удобнее
dump()
. Перспективен.⭐️ Также будем очень рады звёздочкам на гитхабе и контрибьюторской поддержке.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - buggregator/trap: A local debug server and utilities set for PHP projects
A local debug server and utilities set for PHP projects - buggregator/trap
Двигаемся дальше по #Buggregator. Поговорим про перспективные направления.
👩💻 Плагин для PHP Storm
Github: buggregator/phpstorm-plugin
Появился благодаря Роману Пронскому. Сейчас это очень сырая альфа-версия, которая с багами, но уже умеет запускать Trap из вендора и отображать web-морду (считай Proof of Concept сделан).
Среди функций плагина мы ожидаем в будущем увидеть гибкие настройки и разные варианты запуска сервера (в т.ч. быстрый запуск Buggregator из докера).
Разработка плагина под IntelliJ Idea — задача не из простых. И если вы поможете нам с этим справится, то будет мегакруто!
Так что, любители👩💻 отлина, подтягивайтесь!
Рекламная вставка о пользе подтягиваний. Оказывается, это благоприятвует мужскому здоровью! Регулярно подтягивайте бутстрап и простата скажет вам спасибо! Не является лекарством.
📈 Buggregator.dev
У любого крутого проекта должен быть сайт. Крутой такой лэндосик, который будет конвертировать 90% лидов в клиентов и приносить бабки.
Наши клиенты нам бабки не приносят, поэтому лэндинг у нас не продажный, а функциональный.
🪄 Там вы можете поиграться с настоящим и общим для всех Buggregator. Все дампы общие и каждый может удалять имеющиеся или добавлять свои.
🪄 Поставьте ❤️ репозиторию Buggregator и лэндинг празднично взорвётся! Запись об этом событии также появится в общем окошке Buggregator.
🪄 В секции Contributing можно найти issues (задачи), которые можно решить без особого погружения в проект и стать почётным контрибьютором. Блок контрибьюторов также будет добавлен.
📱 Не забывайте, что у нас есть сервер Discord, в котором можно продуктивно взаимодействовать.
Ознакомительная часть закончилась. Дальше будет интерактив!😋
Github: buggregator/phpstorm-plugin
Появился благодаря Роману Пронскому. Сейчас это очень сырая альфа-версия, которая с багами, но уже умеет запускать Trap из вендора и отображать web-морду (считай Proof of Concept сделан).
Среди функций плагина мы ожидаем в будущем увидеть гибкие настройки и разные варианты запуска сервера (в т.ч. быстрый запуск Buggregator из докера).
Разработка плагина под IntelliJ Idea — задача не из простых. И если вы поможете нам с этим справится, то будет мегакруто!
Так что, любители
Рекламная вставка о пользе подтягиваний. Оказывается, это благоприятвует мужскому здоровью! Регулярно подтягивайте бутстрап и простата скажет вам спасибо! Не является лекарством.
📈 Buggregator.dev
У любого крутого проекта должен быть сайт. Крутой такой лэндосик, который будет конвертировать 90% лидов в клиентов и приносить бабки.
Наши клиенты нам бабки не приносят, поэтому лэндинг у нас не продажный, а функциональный.
🪄 Там вы можете поиграться с настоящим и общим для всех Buggregator. Все дампы общие и каждый может удалять имеющиеся или добавлять свои.
🪄 Поставьте ❤️ репозиторию Buggregator и лэндинг празднично взорвётся! Запись об этом событии также появится в общем окошке Buggregator.
🪄 В секции Contributing можно найти issues (задачи), которые можно решить без особого погружения в проект и стать почётным контрибьютором. Блок контрибьюторов также будет добавлен.
Ознакомительная часть закончилась. Дальше будет интерактив!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15 4
Напоминаю, что не время отдыхать. Время кодить!
Прошло несколько дней с начала акции помощи проекту #Buggregator.
Чего мы достигли:
🪲 Buggregator
- @markin_igor улучшил инициализацию приложения через фичу Spiral Command Sequence
- @butschster наделал кучу фичей, которые теперь нуждаются в документировании: #168, #167, #165, #157, #150
💾 Trap
- @dimajolkin обнаружил, что у файла
- @hello_l0gic решил превентивно закрыть задачи, запланированные на далёкое будущее: внести
- В это время новый пользователь багри накидал годных ишуёв #61, #60
- @roxblnfk наконец-то добавил в Trap DI конетйнер и подгрузку конфигов через DI. В следующей версии trap будет доступно конфигурирование UI порта в т.ч. через env переменные.
👩💻 PHPStorm Plugin:
- @Danil42Russia плотно занялся плагином. Уже выполнен один заход на CI и выдвинуто дельное предложение.
Если честно, я ожидал, что Trap и плагин обойдут стороной, т.к. Trap довольно специфичен, а на плагине Kotlin и узкая специфика JB плагинов. И мы будем видеть большинство участников на доке и Server, т.к. там привычный стэк или кодить не надо.
Всё вышло наоборот: один пришел — оказался магистром плагинов, другой взял psalm (мягко говоря, не конфетка) и никто не пошёл в доку. Что же вы творите на работе, если на выходных берётесь за такое?🙃
В общем, большое спасибо всем участникам! Взяли хороший темп✊ ✊ ✊
Поделитесь с нами в комментариях, а что вам мешает начать контрибьютить?
Мем дня от @markin_igor
Прошло несколько дней с начала акции помощи проекту #Buggregator.
Чего мы достигли:
- @markin_igor улучшил инициализацию приложения через фичу Spiral Command Sequence
- @butschster наделал кучу фичей, которые теперь нуждаются в документировании: #168, #167, #165, #157, #150
- @dimajolkin обнаружил, что у файла
/bin/trap
выставлены не самые удобные права для запуска, и пофиксил это. А также взялся за бэклог по уменьшению psalm baseline и значительно уменьшил его.- @hello_l0gic решил превентивно закрыть задачи, запланированные на далёкое будущее: внести
trap()
в список debug-функций EA Extended плагина для PHPStorm и добавить киллер-фичу трэпа — команду joke
. Последняя из-за невнятного ТЗ немного подзависла.- В это время новый пользователь багри накидал годных ишуёв #61, #60
- @roxblnfk наконец-то добавил в Trap DI конетйнер и подгрузку конфигов через DI. В следующей версии trap будет доступно конфигурирование UI порта в т.ч. через env переменные.
- @Danil42Russia плотно занялся плагином. Уже выполнен один заход на CI и выдвинуто дельное предложение.
Если честно, я ожидал, что Trap и плагин обойдут стороной, т.к. Trap довольно специфичен, а на плагине Kotlin и узкая специфика JB плагинов. И мы будем видеть большинство участников на доке и Server, т.к. там привычный стэк или кодить не надо.
Всё вышло наоборот: один пришел — оказался магистром плагинов, другой взял psalm (мягко говоря, не конфетка) и никто не пошёл в доку. Что же вы творите на работе, если на выходных берётесь за такое?
В общем, большое спасибо всем участникам! Взяли хороший темп
Поделитесь с нами в комментариях, а что вам мешает начать контрибьютить?
Мем дня от @markin_igor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16😁1 1
Микродайджест багри-видосиков:
👉 На нашем канале публикуются записи лайвкод-стримов Павла на тему рефакторинга SMTP в Buggregator: две части уже в релизе, ещё две на подходе.
📱 Часть 1
📱 Часть 2
👉 Сегодня и завтра Павел планирует на стримить рефакторинг вебхуков багри и переписывание джобов на Symfony Messenger в связке с RoadRunner.
👉 В очередной раз порадовал канал CutCode: в этот раз Данил сделал то, чего мы не смогли сделать сами — профессионально обозрел #Buggregator.
Встречаем лучший существующий обзор Багрегатора:
📱 Смотреть
👉 Кстати, зацените наш промо-ролик на английском. #ChatGPT очень старался.
📱 Заценить
👉 На нашем канале публикуются записи лайвкод-стримов Павла на тему рефакторинга SMTP в Buggregator: две части уже в релизе, ещё две на подходе.
👉 Сегодня и завтра Павел планирует на стримить рефакторинг вебхуков багри и переписывание джобов на Symfony Messenger в связке с RoadRunner.
👉 В очередной раз порадовал канал CutCode: в этот раз Данил сделал то, чего мы не смогли сделать сами — профессионально обозрел #Buggregator.
Встречаем лучший существующий обзор Багрегатора:
👉 Кстати, зацените наш промо-ролик на английском. #ChatGPT очень старался.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Buggregator introduction
#buggregator #php #docker
🔥12
Сегодня планируется очередной стрим на канале по Buggregator и разработке. Продолжение рефакторинга вебхуков https://youtube.com/live/UqHMUSAfZa0
YouTube
Buggregator livecoding - Рефакторинг Webhooks и покрываем тестами (Часть 2 из 2)
На стримах я пишу код, делаю рефакторинг кода, доабвляю новые фичи и пишу тесты для Багри.
#php #buggregator #spiral #development
#php #buggregator #spiral #development
🔥8 4
YouTube
Быстрый старт c Temporal. С нуля до рабочего прототипа на Spiral Framework
🚀 Изучаем Temporal workflows с самого начала! В этом подробном 2.5-часовом стриме мы пошагово создаем полноценный workflow для обработки платежей используя Temporal и Spiral Framework.
Репозиторий: https://github.com/php-fart/temporal-quick-start
Что вы…
Репозиторий: https://github.com/php-fart/temporal-quick-start
Что вы…
Мы получили обратную связь, что нихрена не понятно, как стартануть разработку с нашим стеком (#Spiral, #Temporal, #RoadRunner, #Buggregator) и как настроить DEV-окружение.
Поэтому через 4 часа мы покажем, как быстренько всё развернуть и что-то запустить.
Код будем сразу заливать в публичный репозиторий.
Поэтому через 4 часа мы покажем, как быстренько всё развернуть и что-то запустить.
Код будем сразу заливать в публичный репозиторий.
🔥36 14😁13 2 2💊1