📢
Привет! На связи Бурый.
Если вам ближе ВКонтакте - теперь можно читать и там.
📱 ВКонтакте: https://vk.com/buriy_dev
🔥 Подписывайтесь - контент одинаково полезен везде!
👇 А вам удобнее читать в Telegram или ВК? Делитесь в комментариях!
Бурый.dev - теперь и во ВКонтакте!Привет! На связи Бурый.
Если вам ближе ВКонтакте - теперь можно читать и там.
📱 ВКонтакте: https://vk.com/buriy_dev
🔥 Подписывайтесь - контент одинаково полезен везде!
👇 А вам удобнее читать в Telegram или ВК? Делитесь в комментариях!
Бурый.dev | TG | MAX | VK👍4❤1👏1
🐘 Архитектура: Как не утонуть в легаси
Привет! На связи Бурый.
В работе часто сталкиваюсь с разным кодом. В основном - с легаси. Проектам по 5 - 10 лет, код живёт своей жизнью, структура разная, договорённости терялись вместе с уволившимися разработчиками.
Задача: обновлять код и постепенно приводить его к единой структуре, принятой в компании.
Нельзя просто взять и переписать всё. У нас есть задачи, дедлайны, работающий прод. Рефакторинг ради рефакторинга - недопустимо, бизнес не поймёт.
🎯 Мой подход: делаем только базу.
Создаю минимальный каркас, который не ломает существующую логику, но задаёт направление.
Базовые папки:
- Application: Сценарии, которые связывают домен и инфраструктуру.
- Domain: Сущности, которые отражают реальный бизнес.
- Infrastructure: БД, HTTP-клиенты, кэш, логи - всё, что можно заменить, не трогая бизнес-логику.
⚡️ Мои рекомендации:
📌 Выделяй сущности постепенно. Не пытайся охватить всё сразу. Начни с одной - той, которая чаще всего меняется и конечно, с той, которая затрагивается в решаемой задаче.
📌 Создай базовые папки. Даже если они пустые - это сигнал. Новый код будет ложиться туда, а не в легаси.
📌 Соблюдай баланс. Если задача на три дня, а рефакторинг займёт неделю - сделай минимум. Но этот минимум должен быть шагом в правильную сторону.
Чистый код - это не цель. Это инструмент, чтобы жить было легче.
Не надо идеально. Надо - лучше, чем было. Задать направление, чтобы каждая следующая бизнес задача встраивалась в новую структуру.
—
❓ А у вас в проектах есть единая структура? Или каждый пишет как хочет? Делитесь в комментариях!
🔥 Подписывайтесь! Дальше будет еще больше живых советов из практики!
dev161.ru
Привет! На связи Бурый.
В работе часто сталкиваюсь с разным кодом. В основном - с легаси. Проектам по 5 - 10 лет, код живёт своей жизнью, структура разная, договорённости терялись вместе с уволившимися разработчиками.
Задача: обновлять код и постепенно приводить его к единой структуре, принятой в компании.
Нельзя просто взять и переписать всё. У нас есть задачи, дедлайны, работающий прод. Рефакторинг ради рефакторинга - недопустимо, бизнес не поймёт.
Создаю минимальный каркас, который не ломает существующую логику, но задаёт направление.
Базовые папки:
src/
├── Application/
├── Domain/
└── Infrastructure/
- Application: Сценарии, которые связывают домен и инфраструктуру.
- Domain: Сущности, которые отражают реальный бизнес.
- Infrastructure: БД, HTTP-клиенты, кэш, логи - всё, что можно заменить, не трогая бизнес-логику.
Чистый код - это не цель. Это инструмент, чтобы жить было легче.
Не надо идеально. Надо - лучше, чем было. Задать направление, чтобы каждая следующая бизнес задача встраивалась в новую структуру.
—
dev161.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1👏1👀1
Привет! На связи Бурый.
В прошлом посте о логах я рассказывал про PSR-3 и обещал показать свою реализацию CombineLogger. Выполняю обещание 🔥
Откуда взялся CombineLogger?
В проектах, над которыми я работаю, везде используется Psr\Log\LoggerInterface. Это стандарт, который позволяет не привязываться к конкретной библиотеке.
Но возникла проблема: интерфейс один, а логгеров нужно несколько.
Хочется писать в файл и отправлять в output или в GrayLog. А код везде принимает только один LoggerInterface.
Решение с кодом и примерами:
➡️ https://dev161.ru/php-multi-logger-6
—
❓ А как ты логируешь в своих проектах? Используешь несколько каналов или всё в одну кучу?
🔥 И не забудь подписаться :)
В прошлом посте о логах я рассказывал про PSR-3 и обещал показать свою реализацию CombineLogger. Выполняю обещание 🔥
Откуда взялся CombineLogger?
В проектах, над которыми я работаю, везде используется Psr\Log\LoggerInterface. Это стандарт, который позволяет не привязываться к конкретной библиотеке.
Но возникла проблема: интерфейс один, а логгеров нужно несколько.
Хочется писать в файл и отправлять в output или в GrayLog. А код везде принимает только один LoggerInterface.
Решение с кодом и примерами:
—
🔥 И не забудь подписаться :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥1👏1😍1
Привет! На связи Бурый.
Теперь все полноценные статьи я публикую на своём сайте
➡️ https://dev161.ru
Мессенджеры и соцсети стали нестабильными - блокировки, ограничения, доступ затруднён
Сайт - это моя территория, где контент всегда доступен и ничего не пропадёт.
🤝 Что остаётся прежним:
- Анонсы и ссылки - всегда здесь
- Обсуждение по-прежнему в комментариях
- Обратная связь и вопросы приветствуются
—
🔥 И подписывайся, чтобы ничего не пропустить
Всё, побежал кодить :)
Теперь все полноценные статьи я публикую на своём сайте
Мессенджеры и соцсети стали нестабильными - блокировки, ограничения, доступ затруднён
Сайт - это моя территория, где контент всегда доступен и ничего не пропадёт.
🤝 Что остаётся прежним:
- Анонсы и ссылки - всегда здесь
- Обсуждение по-прежнему в комментариях
- Обратная связь и вопросы приветствуются
—
Всё, побежал кодить :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👏2
Привет! На связи Бурый.
Коллекции - это круто. Но у коллекций по умолчанию есть один минус - их нельзя перебирать в цикле. Почему я всё равно выбираю коллекции?
Сейчас расскажу:
➡️ https://dev161.ru/php-iterator-aggregate-7
❓ А ты используешь коллекции в проектах?
🔥 И подписывайся, чтобы ничего не пропустить
~
Коллекции - это круто. Но у коллекций по умолчанию есть один минус - их нельзя перебирать в цикле. Почему я всё равно выбираю коллекции?
Сейчас расскажу:
~
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Привет! На связи Бурый.
Сегодня предлагаю поразмышлять: код должен становиться лучше? И если да - то когда?
➡ https://dev161.ru/nice-refactoring-8
❓ А ты как решаешь? Рефакторить код или оставить простым?
🔥 И подписывайся, чтобы ничего не пропустить
~
Сегодня предлагаю поразмышлять: код должен становиться лучше? И если да - то когда?
~
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎1
Все новые статьи, советы по разработке и анонсы дублирую в Max. Там информация всегда доступна.
Подписывайся → https://max.ru/id616507661604_biz
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Привет! На связи Бурый.
⚡Cитуация: клиент отправил запрос к вашему api, ждёт ответ, а тебе нужно сделать что-то тяжёлое. Отправить письмо, обработать видео, записать логи в базу.
Клиент не должен ждать!
➡ https://dev161.ru/php-finish-request-9
❓ А ты используешь эту функцию? Или предпочитаешь очереди?
🔥 И подписывайся, чтобы ничего не пропустить.
~
⚡Cитуация: клиент отправил запрос к вашему api, ждёт ответ, а тебе нужно сделать что-то тяжёлое. Отправить письмо, обработать видео, записать логи в базу.
Клиент не должен ждать!
~
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Привет! На связи Бурый.
Сегодня рассказываю, как можно обойтись без очередей для долгих задач - обработка видео, сложный парсинг и фоновые процессы.
Сканирование + атомарный захват: альтернатива очередям.
➡ Читать статью: https://dev161.ru/scan-and-atomic-without-queue-11
❓ Сталкивался с задачами, где очереди избыточны? Как решал?
🔥 И подписывайся, чтобы ничего не пропустить.
Бурый.dev
Сегодня рассказываю, как можно обойтись без очередей для долгих задач - обработка видео, сложный парсинг и фоновые процессы.
Сканирование + атомарный захват: альтернатива очередям.
Бурый.dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔1
🚀 Иду на Дон Дев Конф @DonDevConf
Привет! На связи Бурый.
Обычно я тут про код пишу, но сегодня про событие. В конце мая в Ростове пройдёт Дон Дев Конф + Фест (23–24 мая).
Мероприятие идёт два дня, но я планирую быть только 23 мая - на самой конференции. Послушать доклады про веб-разработку, пообщаться с коллегами из Wildberries, Яндекса, Т-банка.
Второй день - это IT-фестиваль на природе, это больше про отдых 😄
Детали:
- Где: Ростов-на-Дону, Медиапарк Южный регион ДГТУ
- Когда: 23 мая 9:30
- Формат: офлайн
Это отличный повод отложить клавиатуру и пообщаться с коллегами вживую.
Все подробности и билеты тут:
👉 https://rocketdev.timepad.ru/event/3730466/
Привет! На связи Бурый.
Обычно я тут про код пишу, но сегодня про событие. В конце мая в Ростове пройдёт Дон Дев Конф + Фест (23–24 мая).
Мероприятие идёт два дня, но я планирую быть только 23 мая - на самой конференции. Послушать доклады про веб-разработку, пообщаться с коллегами из Wildberries, Яндекса, Т-банка.
Второй день - это IT-фестиваль на природе, это больше про отдых 😄
Детали:
- Где: Ростов-на-Дону, Медиапарк Южный регион ДГТУ
- Когда: 23 мая 9:30
- Формат: офлайн
Это отличный повод отложить клавиатуру и пообщаться с коллегами вживую.
Все подробности и билеты тут:
👉 https://rocketdev.timepad.ru/event/3730466/
👍6
Привет, на связи Бурый!
Коллеги из @avitotech делились плейлистом с небольшими роликами про паттерны и практики написания кода.
Формат удобный: коротко, наглядно.
Кому проще смотреть, чем читать - рекомендую.
Плейлист существует уже год, но он всё ещё актуален.
🎬 Ссылка на плейлист:
https://vkvideo.ru/video/playlist/-152990965_33
—
❓ Смотрите такие видео или по старинке читаете статьи?
🔥 И подписывайся, чтобы ничего не пропустить.
Коллеги из @avitotech делились плейлистом с небольшими роликами про паттерны и практики написания кода.
Формат удобный: коротко, наглядно.
Кому проще смотреть, чем читать - рекомендую.
Плейлист существует уже год, но он всё ещё актуален.
🎬 Ссылка на плейлист:
https://vkvideo.ru/video/playlist/-152990965_33
—
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Привет, на связи Бурый!
Давно не писал - так вышло. Работа, задачи. Но я вернулся :)
За это время накопилось мыслей, и первая статья готова.
Репозитории - ещё один шаг к чистому коду.
↖️ https://dev161.ru/repository-pattern-clean-code-12
—
🔥 Подписывайся, чтобы ничего не пропустить.
Давно не писал - так вышло. Работа, задачи. Но я вернулся :)
За это время накопилось мыслей, и первая статья готова.
Репозитории - ещё один шаг к чистому коду.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Привет, на связи Бурый!
Фоновые процессы под контролем - Supervisor в Docker.
Как использую я, пишу тут 👇
↖ https://dev161.ru/process-orchestration-supervisor-13
—
🔥 Подписывайся, чтобы ничего не пропустить.
Фоновые процессы под контролем - Supervisor в Docker.
Как использую я, пишу тут 👇
—
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚽️ Я обычно пишу здесь про PHP, но сегодня хочу начать с вещей, которые к коду, на первый взгляд, отношения не имеют.
У каждого из нас рано или поздно появляется свой проект — тот, что делаешь «для души», в свободное от основной работы время. И почти всегда он вытаскивает далеко за пределы привычного стека.
Мой проект как раз дорос до состояния, когда мне хочется им поделиться.
👉 https://dev161.ru/ultimsport-14
Буду рад любой обратной связи — баги, идеи, пожелания.
⚡️ Как обычно, на связи Бурый! Подписывайся ❤️
У каждого из нас рано или поздно появляется свой проект — тот, что делаешь «для души», в свободное от основной работы время. И почти всегда он вытаскивает далеко за пределы привычного стека.
Мой проект как раз дорос до состояния, когда мне хочется им поделиться.
👉 https://dev161.ru/ultimsport-14
Буду рад любой обратной связи — баги, идеи, пожелания.
⚡️ Как обычно, на связи Бурый! Подписывайся ❤️
👍2