Вышла расшифровка моего доклада про пакетные метрики, дополнение к SOLID. Опубликована на хабре:
-
Расшифровка "Теория программирования: пакетные принципы и метрики"
17 марта 2021
-
Новости Yii 2021, выпуск 1
5 марта 2021
Первый выпуск новостей за год. Релизы пакетов, интересное из разработки и немного про финансы.
-
PHP: превращаем ошибку в исключение локально
20 февраля 2021
В PHP часто для обработки ошибки в функциях вроде
dns_get_record()
используют оператор@
:$result = @dns_get_record($hostname, DNS_A); if (!$result) { throw new \RuntimeException('Unable to get record.'); }
Проблем несколько:
- Использование
@
не очень хорошо сказывается на производительности - Часто подавляется слишком много разных ошибок.
Есть способ лучше:
set_error_handler( static function (int $errorNumber, string $errorString) use ($hostname): ?bool { throw new \RuntimeException( sprintf('Unable to get record: "%s". ', $hostname) . $errorString, $errorNumber ); } ); $result = dns_get_record($hostname, DNS_A); restore_error_handler();
- Использование
-
PHP, OpenSSL и ошибка certificate verify failed
17 февраля 2021
При попытке использования OpenSSL на некоторых системах возникает ошибка:
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Исправляется довольно просто:
- Сливаем https://curl.haxx.se/ca/cacert.pem.
- В php.ini добавляем
openssl.cafile="/путь/до/cacert.pem"
.
Так же точно исправляется ошибка "cURL error 60".
Вроде просто, но почему-то подавляющее большинство советов на эту тему, в том числе большинство ответов на StackOverflow, говорят "отключить проверку", что, конечно же, приводит к возможности атаки man in the middle.
-
Онлайн митап от ВсеИнструменты.Ру о PHP, MySQL, нагрузках и асинхронности
4 февраля 2021
12 февраля в 17:00 состоится митап, в котором я приму непосредственное участие. Темы:
- Best Practice из Go для PHP.
- Оптимизация MySQL в условиях HighLoad.
- Холивар про асинхронность в PHP.
-
Интервью с Hexlet
4 февраля 2021
Ещё одно интервью с Hexlet. На этот раз текстом и брал его Святослав Иванов. Про то, как я втянулся в PHP, про сам язык, его сообщество, OpenSource и Yii.
-
PHP Russia 2020 переносится на 28 июня 2021 года
23 января 2021
Ещё раз пришлось перенести конференцию. Самим это, конечно, очень не нравится, но поделать нечего. Нам, как и всем остальным, хочется нормального оффлайнового общения, а оно пока невозможно.
-
Евгений Россинский про прыгунов
14 января 2021
Когда я занимаюсь наймом, то смотрю в том числе на длительность работы на каждом месте. Если нигде человек не задерживался, это может быть индикатором многих неприятностей.
Об одной из них в интервью рассказал Евгений Россинский, СТО ivi и член ПК Highload и РИТ:
Люди, которые прыгают из одной компании в другую, проработав по году, не отвечают за свои слова. Это значит, что те архитектурные решения, которые они сделали, проверяет кто-то другой. И они не получают того самого опыта, который нужен для жизни долгоиграющего сервиса. Ты устроился работать в компании, проработал там два месяца, написал какой-то сервис или сделал какую-нибудь фичу, а когда эта фича через 7-8 месяцев перешла в суровую эксплуатацию, ты увольняешься. Но кто будет отвечать за то, что эту хрень написал ты?
-
2020
2 января 2021
Год получился непростым, непривычным, немного страшным и непредсказуемым, но, в общем, неплохим. Итоги в этот раз чуть отстали, но не написать их не могу, как-никак, стабильно подвожу их с 2010.
-
Новости Yii 2020, выпуск 8
30 декабря 2020
Успел составить предновогодний выпуск. Тройку полностью не выпустили, но начали. В января будут ещё пакеты.