Вчера написал PR в Rector (инструмент автоматического рефакторинга) 💻
Идея PR - добавить named arguments по всей кодовой базе в один клик
PR мой не приняли, так как не совпадает с планом развития самого инструмента (смотрите обсуждение), поэтому вынес в отдельный repo
Что примечательно, ранее я уже открывал 2 Issue (1, 2) в этот проект, и их тоже не приняли 🙄, зато Tomas Votruba поставил мне звездочку на один из проектов
Идея же рождалась долго: сначала Валентин Удальцов на своем хардкорном курсе обратил внимание на то, что всегда пишет имена аргументов для читаемости
После этого я раза 2 к ряду искал баг связанный с тем, что я перепутал порядок аргументов для str_contains (вместо сена писал иголку)
Затем на работе я сделал таску в другой команде, а лид команды на ревью требовал добавлять везде имена аргументов 😢
Мне было лень искать все места, куда надо добавить, но существующего правила я не нашел
Так и родилась идея написать свое правило. На все ушло часов 5. Как говорится, зачем делать за 10 минут, если можно автоматизировать за 10 часов, верно?😄
Идея PR - добавить named arguments по всей кодовой базе в один клик
PR мой не приняли, так как не совпадает с планом развития самого инструмента (смотрите обсуждение), поэтому вынес в отдельный repo
Что примечательно, ранее я уже открывал 2 Issue (1, 2) в этот проект, и их тоже не приняли 🙄, зато Tomas Votruba поставил мне звездочку на один из проектов
Идея же рождалась долго: сначала Валентин Удальцов на своем хардкорном курсе обратил внимание на то, что всегда пишет имена аргументов для читаемости
После этого я раза 2 к ряду искал баг связанный с тем, что я перепутал порядок аргументов для str_contains (вместо сена писал иголку)
Затем на работе я сделал таску в другой команде, а лид команды на ревью требовал добавлять везде имена аргументов 😢
Мне было лень искать все места, куда надо добавить, но существующего правила я не нашел
Так и родилась идея написать свое правило. На все ушло часов 5. Как говорится, зачем делать за 10 минут, если можно автоматизировать за 10 часов, верно?😄
GitHub
feat: add AddNamedArgumentsRector by savinmikhail · Pull Request #6678 · rectorphp/rector-src
In two words this feature doing this:
- (new DateTimeImmutable())->format('Y-m-d');
+ (new DateTimeImmutable())->format(format: 'Y-m-d');
Also for func...
- (new DateTimeImmutable())->format('Y-m-d');
+ (new DateTimeImmutable())->format(format: 'Y-m-d');
Also for func...
👍7
Welcome post
Меня зовут Михаил. Я работаю тимлидом на 2-х проектах, пишу бэкенд на PHP
Люблю опенсорс, контрибьютил к примеру в Docker, ClickHouse, JetBrains, Laravel и др. Мой аккаунт на ГитХаб
На ютуб выкладываю записи техсобесов
Топ статьи на хабре:
- CI/CD
- Тестирование
Параллельно менторю ребят по PHP
Меня зовут Михаил. Я работаю тимлидом на 2-х проектах, пишу бэкенд на PHP
Люблю опенсорс, контрибьютил к примеру в Docker, ClickHouse, JetBrains, Laravel и др. Мой аккаунт на ГитХаб
На ютуб выкладываю записи техсобесов
Топ статьи на хабре:
- CI/CD
- Тестирование
Параллельно менторю ребят по PHP
GitHub
savinmikhail - Overview
savinmikhail has 99 repositories available. Follow their code on GitHub.
🤮49👍10🗿2❤1👎1
Patches для Composer вместо Fork'ов 🔧
Все мы знаем, что когда баг в библиотеке вендора мешает прямо сейчас, самый быстрый способ — форкнуть репозиторий и указать ссылку на форк в composer.json как git repository. Это достаточно распространенная практика, но оказывается, что это не всегда лучший вариант.
Пока я работал с Rector, я заметил интересный способ решения подобных проблем через патчи
🔍Есть статья, описывающая существующие плагины для патчинга пакетов
❗️P.S. К сожалению, на моем MacOS этот механизм не захотел работать, несмотря на установленный gpatch. Рекомендую использовать Docker для корректной работы этой функции.
Все мы знаем, что когда баг в библиотеке вендора мешает прямо сейчас, самый быстрый способ — форкнуть репозиторий и указать ссылку на форк в composer.json как git repository. Это достаточно распространенная практика, но оказывается, что это не всегда лучший вариант.
Пока я работал с Rector, я заметил интересный способ решения подобных проблем через патчи
🔍Есть статья, описывающая существующие плагины для патчинга пакетов
❗️P.S. К сожалению, на моем MacOS этот механизм не захотел работать, несмотря на установленный gpatch. Рекомендую использовать Docker для корректной работы этой функции.
GitHub
rector-src/composer.json at main · rectorphp/rector-src
Development repository for Rector. Contribute to rectorphp/rector-src development by creating an account on GitHub.
👍2❤1
Плагины Zsh: Git
Недавно открыл для себя, что Zsh (командная оболочка) поддерживает плагины, и, как оказалось, у меня уже был установлен по умолчанию один из них — плагин для Git
Плагин представляет собой по большей части набор алиасов, и вот те, которые я взял на вооружение:
-
-
-
-
Так как Git пожалуй самая используемая в разработке утилита, всем настоятельно рекомендую - это сэкономит вам кучу времени!
Недавно открыл для себя, что Zsh (командная оболочка) поддерживает плагины, и, как оказалось, у меня уже был установлен по умолчанию один из них — плагин для Git
Плагин представляет собой по большей части набор алиасов, и вот те, которые я взял на вооружение:
-
g — вместо git-
gp — вместо git push-
gl — вместо git pull-
gpsup — вместо git push --set-upstream origin $(git_current_branch) (как меня раздражало это печатать каждый раз 😢 )Так как Git пожалуй самая используемая в разработке утилита, всем настоятельно рекомендую - это сэкономит вам кучу времени!
🔥4