12 февраля в 17:00 состоится митап, в котором я приму непосредственное участие. Темы:
- Best Practice из Go для PHP.
- Оптимизация MySQL в условиях HighLoad.
- Холивар про асинхронность в PHP.
4 февраля 2021
12 февраля в 17:00 состоится митап, в котором я приму непосредственное участие. Темы:
4 февраля 2021
Ещё одно интервью с Hexlet. На этот раз текстом и брал его Святослав Иванов. Про то, как я втянулся в PHP, про сам язык, его сообщество, OpenSource и Yii.
23 января 2021
Ещё раз пришлось перенести конференцию. Самим это, конечно, очень не нравится, но поделать нечего. Нам, как и всем остальным, хочется нормального оффлайнового общения, а оно пока невозможно.
14 января 2021
Когда я занимаюсь наймом, то смотрю в том числе на длительность работы на каждом месте. Если нигде человек не задерживался, это может быть индикатором многих неприятностей.
Об одной из них в интервью рассказал Евгений Россинский, СТО ivi и член ПК Highload и РИТ:
Люди, которые прыгают из одной компании в другую, проработав по году, не отвечают за свои слова. Это значит, что те архитектурные решения, которые они сделали, проверяет кто-то другой. И они не получают того самого опыта, который нужен для жизни долгоиграющего сервиса. Ты устроился работать в компании, проработал там два месяца, написал какой-то сервис или сделал какую-нибудь фичу, а когда эта фича через 7-8 месяцев перешла в суровую эксплуатацию, ты увольняешься. Но кто будет отвечать за то, что эту хрень написал ты?
2 января 2021
Год получился непростым, непривычным, немного страшным и непредсказуемым, но, в общем, неплохим. Итоги в этот раз чуть отстали, но не написать их не могу, как-никак, стабильно подвожу их с 2010.
30 декабря 2020
Успел составить предновогодний выпуск. Тройку полностью не выпустили, но начали. В января будут ещё пакеты.
30 ноября 2020
На днях релизнулся PHP 8. Он не так богат на полезные возможности, как PHP 7.0 или PHP 7.4, но определённо хорош как производительностью с новым JIT, так и тысячей приятных мелочей.
О новых возможностях коротко можно почитать на специальной странице, которую мы подготовили вместе Романом Пронским, JetBrains и сообществом.
В честь выхода мы провели стрим с участием двух видных разработчиков этого релиза: Дмитрия Стогова и Никиты Попова.
Запись можно посмотреть на YouTube.
По поводу стабильности могу сказать, что, определённо можно пробовать переводить на восьмёрку продакшн. Большинство серьёзных багов отловили в бетах. Yii 1, Yii 2 и Yii 3 к PHP 8 готовы.
12 ноября 2020
Вышел очередной выпуск новостей про Yii и новая порция релизов. Опубликовал на хабре.
9 ноября 2020
Unit-тесты должны быть изолированы. То есть тесты должны проходить если выполнять из по-одному или если включить в PHPUnit режим выполнения в случайном порядке через phpunit.xml.dist
:
<phpunit executionOrder="default">
Для этого, если тест работает с окружением (например, с файловой системой), окружение нужно подчищать. Причём подчищать и до и после через setUp()
и tearDown()
:
final class MyTest extends PHPUnit\Framework\TestCase
{
public function setUp(): void
{
$this->cleanup();
$path = realpath(sys_get_temp_dir());
mkdir($path, 755);
}
public function tearDown(): void
{
$this->cleanup();
}
private function cleanup(): void
{
$path = realpath(sys_get_temp_dir());
rmdir($path)
}
Зачистка делается два раза и до и после потому как если какой-то тест упадёт, зачистка в tearDown()
не выполнится и окружение "встанет".
24 октября 2020
Недавно у меня умер SSD и заставил настраивать заново всё окружение. Опробованные Linux по тем или иным причинам не зашли (но я ещё попробую, может пропустил что). Вернулся на Windows 10.
Для тестов фреймворка мне необходимы несколько версий PHP и в этот раз удалось сделать удобно. В Windows Terminal у меня теперь несколько профилей с git bash и в каждом отдельная версия PHP.
Делается так:
C:\php74
, C:\php80
.{ "guid": "{e084a08a-ad94-499d-9573-1d5904b4e9a0}", "name": "Git Bash with PHP 8", "suppressApplicationTitle": true, "icon" : "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico", "commandline": "cmd.exe /C \"SET PATH=%PATH%;C:\\php80\\&& \"%PROGRAMFILES%\\Git\\bin\\bash.exe\" -login -i -l\"", "startingDirectory": "D:\\src\\" }, { "guid": "{08a7817f-8812-4eb0-b4b7-a4939fc9d14a}", "name": "Git Bash with PHP 7", "suppressApplicationTitle": true, "icon" : "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico", "commandline": "cmd.exe /C \"SET PATH=%PATH%;C:\\php74\\&& \"%PROGRAMFILES%\\Git\\bin\\bash.exe\" -login -i -l\"", "startingDirectory": "D:\\src\\" }