JIT в PHP8, JWT для SSO, кривые оптимизации Zend VM, рамбл ток о фрилансе.
Еще немного про производительность интерпретатора PHP. Уже гоняют бэнчмарки на экспериментальной ветке https://github.com/zendtech/php-src. 7ая версия стала прорывом в нескольких смыслах. 7.1 несколько быстрее 7 за счет оптимизации opcache расширения. А JIT/PHP8 потенциально еще удвоит производительность интерпретатора. Лучше один раз увидеть результаты бэнчмарка. Надеюсь, что в PHP8 добавят pthread как core extension.
На недавней Symfony-конфереции Фабьен Потенсье анонсировал грядущий выход нового продукта Symfony Flex. Что-то вроде “Make Symfony Great Again”. На реддите есть коротенький тред, в котором один из участников объяснил свое понимание Flex: обертка вокруг composer, упрощающая менеджмент бандлов/зависимостей. Посмотрим, что за зверь. Обещают релиз на начало 2017, т.е. ждать осталось недолго.
Только вышла Symfony 3.2, но это не означает, что цикл разработки фреймворка остановился и в 3.3 — выйдет в конце мая 2017 — в Security компонент добавлена JSON-аутентификация. Вместо привычной формы с логином и паролем мы должны отправить POST-запрос на определенный конфигом endpoint с JSON’ом на борту. В этом JSON должна быть указана пара login/password. Это нововведение упростит реализацию JWT-решений и может пригодиться для SSO. В ответ на такой JSON может прийти JWT, передаваемый серверу при каждом реквесте в заголовке.
Выложили два видео с прошедшего митапа комьюнити ThinkPHP. Тарас Омельяненко выступил с докладом по их подходам к разработке большого приложения на PHP. В большей степени доклад посвящен циклу разработки и сопутствующим ему инструментам: Swagger, git (flow), Jenkins CI, Docker, Ansible, балансировка нагрузки и т.д. Одна мысль показалась наиболее ценной — предложить клиенту комплексное решение, в котором уже есть все от документации и спецификаций API до CI. На первых порах это может быть реализовано просто, но вы задаете тон последующей разработке. С определенного момента по другому уже делать продукт не получается.
Второй доклад от Антона Шевчука о векторах карьерного роста. Куда можно податься в разработке. Антон коснулся ролей tech lead, team lead, архитектора, наставника — лично не люблю этот термин; у меня он ассоциируется с пирамидами из 90х — ухода из IT, работе на фрилансе и развитии не только профессиональных навыков, но и социальных. В целом доклад получился позитивным и расслабленным. Посыл доклада: развивайтесь и становитесь лучше. Хорошо смотрится на полуторном ускорении. В конце подкаста я похоливарю о преимуществах и недостатках фриланса. Во время доклада аудитория преимущественно реагировала негативно и мне захотелось вступить в открытую дискуссию на эту тему.
Немного про composer. В статье автор углубляется в тему скриптов в composer.json. Можно создавать свои команды в секции script, так и вызывать команды по определенному событию. В первом варианте composer может быть использован как своеобразный аналог Makefile. На тему скриптов достаточно хорошо и лаконично написано в мануале composer’а.
В PHP комьюнити в телеграмме Aleh Kashnikau скинул ссылку на статью от Никиты Попова — активного контрибьютора PHP — о неочевидном поведении интерпретатора.
Речь идет о следующем фрагменте кода:
$a = 1;
$c = $a + $a++;
var_dump($c); // int(3)
$a = 1;
$c = $a + $a + $a++;
var_dump($c); // int(3)
Все становится на свои места, если глянуть на опкоды для Zend VM. Проблема в очередности инструкций POST_INC и использовании прямого доступа к переменной. Последнее называется compiled variables (CV) оптимизация. Выводы из статьи:
В связи с этой статьей также хочу напомнить про сервис, который полезно иметь нам в закладках: https://3v4l.org/. Здесь можно посмотреть какой результат выполнения PHP-кода будет в разных версиях интерпретатора PHP/HHVM. Также можно глянуть опкоды, что иногда — как в этом случае — проясняет ситуацию.
Под занавес любопытный проект GDelt (the “Global Database of Events, Language and Tone”) и возможности взаимодействовать с ним посредством BigQuery от Google. BigQuery предоставляет возможность хранить и обрабатывать данные в облаке. Обещают терабайты обрабатывать за секунды и петабайты за минуты. Вернемся к GDelt. Это база данных почти всех событий происходящих на планете в реальном времени с 1 января 1979 года. Помимо прочих, важное достояние этой базы — она открытая. Для взаимодействия с Google Cloud Platform актуально использовать google-cloud-php. Внимание! SQL-запросы платные. Чем больше обработанных данных, тем больше платите. За Тб обработанных в рамках запроса данных нужно платить — по заявлению автора статьи — ~5USD.
Оффтопик. Преимущества/недостатки работы на фрилансе.
Недостатки:
В целом, нужно примерять на себя больше ролей и отдавать им драгоценное время.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More