Рассматриваем 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 - демо проект показывающий…
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
Продолжаем знакомство с миром #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
Напоминаю, что не время отдыхать. Время кодить!
Прошло несколько дней с начала акции помощи проекту #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
Микродайджест багри-видосиков:
👉 На нашем канале публикуются записи лайвкод-стримов Павла на тему рефакторинга 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
Сегодня планируется очередной стрим на канале по Buggregator и разработке. Продолжение рефакторинга вебхуков https://youtube.com/live/UqHMUSAfZa0
YouTube
Buggregator livecoding - Рефакторинг Webhooks и покрываем тестами (Часть 2 из 2)
На стримах я пишу код, делаю рефакторинг кода, доабвляю новые фичи и пишу тесты для Багри.
#php #buggregator #spiral #development
#php #buggregator #spiral #development