msavin | Backend & PHP
الذهاب إلى القناة على Telegram
Пишу про пыху и backend разработку. Менторю, смотри закреп ЛС - @msavin_dev
إظهار المزيد802
المشتركون
لا توجد بيانات24 ساعات
+27 أيام
+230 أيام
أرشيف المشاركات
PHPStorm contribution
Приняли мой PR в phpstorm-stubs, который уменьшает вес сборки аж на 40 кБ 😄, если верить команде
du -ch .gitattributes .gitignore .php-cs-fixer.php docker-compose.yml phpunit.xml.dist .github 2>/dev/null | grep total$
Однако правил я это не с целью оптимизации, а потому что KICS ругался, что docker-compose у них написан небезопасно
Теперь я могу всем рассказывать, что оптимизировал топ IDE, а у вас появилась пара легких идей как законтрибьютить в крупный проект
P.S. Кто-нибудь использует .gitattributes в рабочих проектах?+2
Ассистент n8n
Нашел сегодня инструмент автоматизации, и не могу оторваться весь день.
Пока сделал workflow, в котором можно из телеги попросить (как голосом так и текстом) создать встречу, отправить имейл, загуглить что-то, но число инструментов с которыми можно интегрироваться практически бесконечно, а этим еще и ChatGPT рулит
Пока непонятно, как это мне поможет, но собирать такой конструктор оочень интересно
Нашел вот такую нейросетку, с которой в частности можно проводить mock interview (вдруг вы собрались на ВУ)
Довольно однотипно отвечает, но хорошо задает вопросы: я даже узнал о существовании Snyk и Trivy (DevSecOps продукты)
Меня лично хватило минут на 20 разговора. Прикольно что все разговоры записываются и транскрибируются, можно потом произношение поправить, грамматику
В общем, как минимум пару раз поиграться рекомендую
Когда-то давно, именно этот доклад побудил меня обвешаться различными инструментами контроля качества моего кода.
Во-первых, чтобы не было повода бояться, что сломаю прод своими правками.
Во-вторых, чтобы меньше думать о качестве кода, и больше о решении самой задачи.
Рекомендую к просмотрю всем, у кого на проекте нет проблемы с тем, чтобы залить задачу в master
Aspect Oriented Programming (AOP)
Случайно натолкнулся на эту интересную интересную парадигму, по сути расширяющую OOP.
Лучше всего о ней рассказано в статье:
https://habr.com/ru/articles/199378/
Лучшее применение этому - логирование (всегда раздражает напичкивать метод logging statements).
И хотя эта парадигма популярна в java (и даже поддерживается в Spring), для PHP я не нашел популярных библиотек:
- https://github.com/ytake/Laravel-Aspect
- https://github.com/Matthimatiker/AspectPHP
- https://github.com/swoft-cloud/swoft (фрейморк с AOP)
Поэтому пока эта парадигма служит лишь для общего развития
P.S. Как думаете, почему в PHP этот подход не получил схожей популярности?
Плагины Zsh: Git
Недавно открыл для себя, что Zsh (командная оболочка) поддерживает плагины, и, как оказалось, у меня уже был установлен по умолчанию один из них — плагин для Git
Плагин представляет собой по большей части набор алиасов, и вот те, которые я взял на вооружение:
-
g — вместо git
- gp — вместо git push
- gl — вместо git pull
- gpsup — вместо git push --set-upstream origin $(git_current_branch) (как меня раздражало это печатать каждый раз 😢 )
Так как Git пожалуй самая используемая в разработке утилита, всем настоятельно рекомендую - это сэкономит вам кучу времени!Patches для Composer вместо Fork'ов 🔧
Все мы знаем, что когда баг в библиотеке вендора мешает прямо сейчас, самый быстрый способ — форкнуть репозиторий и указать ссылку на форк в composer.json как git repository. Это достаточно распространенная практика, но оказывается, что это не всегда лучший вариант.
Пока я работал с Rector, я заметил интересный способ решения подобных проблем через патчи
🔍Есть статья, описывающая существующие плагины для патчинга пакетов
❗️P.S. К сожалению, на моем MacOS этот механизм не захотел работать, несмотря на установленный gpatch. Рекомендую использовать Docker для корректной работы этой функции.
Обо мне
Меня зовут Михаил. Я работаю тимлидом на 2-х проектах, пишу бэкенд на PHP
Я контрибьютил в Docker, ClickHouse, JetBrains, Laravel и др. Подробнее можно посмотреть в моем аккаунте на ГитХаб
Топ посты:
- CI/CD
- Тестирование
Параллельно менторю ребят
Вчера написал PR в Rector (инструмент автоматического рефакторинга) 💻
Идея PR - добавить named arguments по всей кодовой базе в один клик
PR мой не приняли, так как не совпадает с планом развития самого инструмента (смотрите обсуждение), поэтому вынес в отдельный repo
Что примечательно, ранее я уже открывал 2 Issue (1, 2) в этот проект, и их тоже не приняли 🙄, зато Tomas Votruba поставил мне звездочку на один из проектов
Идея же рождалась долго: сначала Валентин Удальцов на своем хардкорном курсе обратил внимание на то, что всегда пишет имена аргументов для читаемости
После этого я раза 2 к ряду искал баг связанный с тем, что я перепутал порядок аргументов для str_contains (вместо сена писал иголку)
Затем на работе я сделал таску в другой команде, а лид команды на ревью требовал добавлять везде имена аргументов 😢
Мне было лень искать все места, куда надо добавить, но существующего правила я не нашел
Так и родилась идея написать свое правило. На все ушло часов 5. Как говорится, зачем делать за 10 минут, если можно автоматизировать за 10 часов, верно?😄
