В мае я рассказывал про OpenSource и отвечал на вопросы для Вастрик Клуба. Получилось вроде интересно.
-
Всё об OpenSource для Вастрик Клуба
7 августа 2021
-
Видео с митапа по Code Review
7 августа 2021
И ещё одна новая тема. На этот раз "Code Review". Запись сделана на мипапе компании ЭФКО в Воронеже.
-
Видео с митапа по тестированию приложений
4 августа 2021
Новая для меня тема выступления, "Тестирование приложений". Запись сделана на мипапе компании ЭФКО в Воронеже.
-
Присоединился к GetMentor
2 августа 2021
Совсем недавно Георгий Могелашвил запустил интересный проект, GetMentor. Это открытое сообщество IT-наставников, готовых делиться знаниями и опытом.
Мне менторы попадались, в основном, внутри проектов, в которых я работал и они прямо сильно помогли, срезав время на формирование моих принципов и подходов примерно вполовину. В общем, затея важная и нужная, поэтому присоединился.
Оставить заявку можно на специальной странице
// Да, знаю что ценник не совсем гумманный вышел, но по-другому пока никак. Почти всё доступное время занял Yii 3, который я очень и очень хочу выпустить.
-
Yii 3: пред-релизная поддержка компаний
29 июля 2021
Несмотря на то, что Yii 3 релизнут далеко не полностью, уже есть компании, которые его используют в продакшне. Чтобы получить больше обратной связи и одновременно поддержать уже использующие Yii 3 компании, мы запускаем пред-релизную бесплатную поддержку в форме чатов между компаниями и командой фреймворка. Будем отвечать на любые вопросы по фреймворку, собирать пожелания и критику.
Если хотите для своей компании такой чат — пишите в Telegram
@samdark
, добавим. -
Границы применимости статического анализа в публичных пакетах
16 июня 2021
В замечательном чате Валентина Удальцова «Пыхтелка» заметили релиз одной из библиотек Yii 3, Rate limiter и предложили вполне справедливые улучшения. kafkiansky сделал pull request, в который кроме, собственно, улучшений попало одно очень интересное изменение: вместо геттеров-сеттеров сделать свойства класса
CounterState
публичными и добавить на класс аннотацию@psalm-immutable
:/** * @psalm-immutable */ final class CounterState { public int $limit; public int $remaining; public int $resetTime; public bool $isLimitReached;
Почему так:
- Используется статический анализ через Psalm.
- @psalm-immutable не даст присваивать что-либо этим свойствам, если его добавить в continuous integration.
- В будущем легче будет мигрировать на read only properties.
- Никакой логики здесь нет, это plain object. С аннотациями меньше кода.
Неплохо. Я бы согласился, если бы речь шла исключительно про код внутри коммерческого проекта, который я контролирую полностью. В случае же публичного пакета:
- Мы не контролируем то, как пакет используется.
- Мы не можем гарантировать, что будет использоваться именно Psalm, что он будет запускаться в процессе CI, что вообще будет использоваться хоть какой-то статический анализ.
То есть полагаться на статический анализ полностью и выкинуть часть кода в публичных пакетах, к сожалению, не получится.
-
Приготовили PHP Russia 2021
4 июня 2021
Фактически завершили формирование программы и большую часть подготовки. Ещё работаем с докладчиками утрясаем отдельные моменты, но основное сделано. Должно получиться как минимум не хуже 2019-го. Может и лучше.
Немного мыслей на тему:
- Несколько переносов прямо сильно ударили по моральному духу всех причастных. Тут уж ничего не поделать... корона, но я не думал что будет настолько деморализовывать.
- Делать конференцию в постоянно меняющихся условиях в разы сложнее: нужны резервные докладчики, есть множество ограничений по площадке, границам и так далее.
- Ограничения - это хорошо. Придумали много всего такого, о чём в нормальных условиях не додумались бы.
- Русскоязычные докладчики хороши. Да, англоязычные специалисты в 2019-ом привезли крутой контент, но смотрю на текущую программу и понимаю что точно не хуже.
- Нужно больше общаться с командой организаторов, докладчиками и потенциальными докладчиками. И темы внезапно оказывается крутые есть, и идеи возникают замечательные и проблемы решаются иногда сами собой. Этот пункт справедлив, в общем-то, для любой командной работы.
- Очень многие не спрашивают своих работодателей на тему купить билет на конференцию и зря. Большинство работодателей с радостью это сделают: тут и мотивация и сотрудник с новыми идеями и про компанию, вероятно, услышат.
-
Делаем приятно в консоли при помощи Starship
12 мая 2021
Попробовал Starship, кросс-платформенное приглашение командной строки, написанное на Rust. Подходит к любому шеллу, в том числе к bash или Powershell под Windows.
Отлично настраивается. Из коробки показывает текущего юзера, ветку git, используемую версию того же PHP, всякое про Docker и так далее. Причём всё в зависимости от контекста текущей директории, то есть это не выглядит как бесполезный космолёт.
Ставится удивительно легко.
-
Запоминаем пароли к ssh-ключам в ssh-agent
12 мая 2021
Вводить пароли к ssh-ключам того же git каждый раз немного достаёт и неплохо было бы чтобы оно как-то само. Делается при помощи ssh-agent. Примерно так же делается и на Linux-ах и на маке и в Windows с git-bash.
- Добавляем запуск ssh-agent (смотрите ниже) в
.bash_profile
. Скрипт обычно лежит в домашней директории пользователя. В Windows это c:\Users\username. - Идём в конфиг OpenSSH, обычно это
.ssh/config
в домашней директории пользователя. Если запоминать надо пароли ко всем ключам, добавляем тудаAddKeysToAgent yes
первой строкой. Если к отдельным, добавляем в конфиги самих ключей. - Открываем новую консоль. Делаем какое-то действие с запросом пароля, вводим пароль.
- Всё, пароль запомнен, больше спрашивать не будет.
Скрипт для запуска ssh agent:
# start SSH agent SSH_ENV=$HOME/.ssh/environment function start_agent { echo "Initializing new SSH agent..." /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV} echo succeeded chmod 600 ${SSH_ENV} . ${SSH_ENV} > /dev/null /usr/bin/ssh-add; } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . ${SSH_ENV} > /dev/null #ps ${SSH_AGENT_PID} doesn't work under cywgin ps -efp ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi
- Добавляем запуск ssh-agent (смотрите ниже) в
-
Новости Yii 2021, выпуск 2
9 мая 2021
Написал второй выпуск новостей Yii. Есть новости по важным обновлениям Yii 3 и набор релизов Yii 2. Также упомянем некоторые интересные проекты, не связанные напрямую с кодом.