Оптимизация производительности в Composer 2.2

В декабре 2021 года вышло обновление пакетного менеджера Composer, версия 2.2. Заявлено увеличение производительност в некоторых случаях на 90%.

https://blog.packagist.com/composer-2-2/

Как это возможно и почему Composer раньше был на столько прожорливым? Я изучил изменения в исходном коде и вот что я нашел…

Читать далее Оптимизация производительности в Composer 2.2

Лучшая механическая клавиатура для PHP в 2022?

В обзоре участвовали следующие клавиатуры:
0:00 – Keychrone K3, Blue (оценка 4)
1:04 – Varmilo VA87Mac, Brown (оценка 4)
1:58 – Keychrone K1, Red (оценка 5-)
2:58 – Keychrone K12, Brown (оценка 3)
4:40 – Keychrone K8, Brown (оценка 5)
5:38 – GMMK, Silver (оценка 5)
8:01 – ESPORTS FL680 (оценка 4)
9:18 – Varmilo MA87M Moonlight (оценка 5-)
10:51 – подведение итогов, TOP 3 клавиатуры!

Ежегодный опрос PHP сообщества

В конце прошлого (2020) года прошел первый большой опрос русскоязычного PHP-сообщества в котором приняло участие свыше 1500 человек (результаты прошлого года).

С декабря 2021 по середину ярваря 2022 проходил аналогичный опрос, составленный активными участниками нашего сообщества. Фокус на технологиях и контенте.

Понадобится некоторое время на обработку результатов и в феврале 2022 будут опубликованы результаты в виде интерактивных графиктов и доступного для скачивания архива на сайте phpcommunity.ru. Список лучших видео, статей и инструментов будет опубликован на Хабре.

[Здесь раньше была ссылка «Принять участие в опросе». Опрос уже закрыт, скоро будет ссылка на результаты.]

Как работает OPcache?

Один из основных на сегодняшний день разработчиков PHP Никита Попов рассказал в своём блоге некоторые детали работы OPcache.

OPcahce — это расширение для PHP, которое ускоряет работу за счёт кэширования опкодов.

В этом выпуске подкаста Пятиминутка PHP сделаю краткий пересказ, поробую объяснить своими словами.

https://www.npopov.com/2021/10/13/How-opcache-works.html

YaTalks, Yii3, Tinkerwell, Mac mini M1…

Поговорим на несколько разных тем: подкаст и конференция YaTalks, первые впечатления от Yii3, PHP 8.1 уже близко, Tinkerwell, Mac mini на M1, механические клавиатуры и коврик для мыши с JSON API.

Разработка больших проектов на Битрикс

Второй подкаст в серии про Битрикс. Иван Поддубный из компании Вебпрактик рассказывает про свой опыт разработки крупных проектов на Битрикс и сравнивает с другими фреймворками и стеками технологий.

  • Что используется в Вебпрактик: Битрикс, Laravel, NodeJS
  • Почему 80% проектов на Битрикс, почему?
  • Кто типовой заказчик?
  • Как Битрикс выиграл рынок заказной разработки крупных проектов?
  • Почему страдают крупные заказчики поставившие на .NET и Ruby?
  • Есть ли у Битрикс преимущество по скорости разработки и в удобсте поддержки?
  • На сколько велика разница в подходах к кодированию между Битрикс и Laravel? Роутер? Контроллеры? Модели? ORM? API?
  • Подход по скрещиванию Laravel с Битрикс в одном проекте, в одной кодовой базе
  • Почему от этого подхода решили отказаться?
  • Какие готовые решения по бизенс-логике даёт Битрикс?
  • Админка Битрикс — хороша или нет?
  • В админке так много функций, что есть целые обучающие видеокурсы для администратора, для контент-менеджера и проч.
  • Инициатива в Drupal по переписыванию админки на React
  • Ограничения, которые накладывает Битрикс. Часто ли упираешься в архитектуру Битрикса?
  • Производительность Битрикса
  • Что делать с номенклатурой в несколько сотенд тысяч позиций и таким же количеством свойств?
  • Микросервисы на NodeJS вокруг Битрикс монолита
  • Отказ от PHP шаблонов в пользу React и SPA
  • Кадровый вопрос поиска фронтенд разработчика
  • Тренд на SPA?
  • Битрикс управление сайтом vs Битрикс24
  • Процесс деплоя Битрикс
  • Поставка Битрикс проектов с помощью Docker в Kubernetes
  • Реверс-инженеринг миграций ядра
  • Поддержка со стороны компании 1С-Битрикс
  • Темпы развития ядра
  • Взгляд на развитие Битрикса со стороны внедрения
  • Важность обратной совместимости, антипримеры перехода с Magento 1 на Magento 2, переписывание Drupal, ModX Evolution vs Revolution, Python 2 vs Python 3.
  • Top 3 проблем Битрикс: дистрибьюция (composer?), встроенный механизм миграций, полноценный DI по всему ядру

Ссылки по теме:

Ядро Битрикс — история и планы

Для этого выпуска подкаста я пригласил двух разработчиков ядра Битрикс: Дмитрия Медведева и Ивана Челищева. Обсудили историю развития Битрикс, что такое ядро и Bitrix Framework, что такое D7, как выглядит разработка под Битрикс сейчас и какие планы на будущее.

Темы выпуска:

  • Краткая справка про компанию 1С-Битрикс
  • Какие версии PHP поддерживаются?
  • Обратная совместимость
  • На сколько Bitrix Framework похож на другие PHP фреймворки?
  • Переписывание фреймворка «с нуля» в начале 2010-х
  • Гибридное ядро для поддержания обратной совместимости
  • Битрикс Управление Сайтом vs Битрикс24 — общее ядро внутри?
  • Кто заказчик для команды разработки ядра?
  • Секретный чат тимлидов разработчиков на Битрикс
  • Можно ли использовать Bitrix Framework отдельно от продуктов 1С-Битрикс?

Про технологии в актуальной версии D7:

  • Используются суперглобальные массивы $_GET, $_POST?
  • ORM, QueryBuilder и работа с базой
  • Active Record или Data Mapper?
  • Почему не Doctrine?
  • Миграции и система обновлений
  • Поддержка различных СУБД?
  • Почему нет PostgreSQL?
  • Роутинг и точки входа
  • Шаблонизация, защита от XSS, подключение внешних шаблонов
  • Работа с очередями, агенты
  • IoC контейнер или Service Locator?
  • Autowiring в контроллере
  • Консольные команды на основе symfony/console
  • Другие внешние библиотеки
  • Используется ли composer?
  • Код в публичной директории?
  • Сборка PHP кода
  • Сборка фронтенд кода: инструмент Bitrix CLI на основе Rollup
  • На сколько код в целом выглядит современно?
  • PhpStorm и плагины

Что планируется в будущем Bitrix Framework 3?

  • концептуальный прототип
  • переработанный жизненный цикл
  • Twig с CMS-ориентированными плагинами
  • пока не публично
  • сбор обратной связи от разработчиков
  • переход должен быть плавным
  • почему бы не взять Symfony или Laravel и писать поверх?
  • ориентация на PSR
  • сложность по интеграции со старым API и поддержки совместимости
  • сколько ресурсов выделено на разработку Bitrix Framework 3?
  • как организована командная разработка внутри компании 1С-Битрикс?

В завершение:

  • На Битрикс24 используется не только PHP, но и Node.js и другие технологии
  • Модель гибридного облака

Ссылки по теме:

Соревнования по программированию на платформе All Cups

В гостях Дмитрий Санников рассказывает про соревнования по программированию, ИИ, машинному обучению и высоконагруженным системам на платформе All Cups.

  • All Cups — платформа для проведения соревнований
  • Кто является автором и инициатором соревнований?
  • Визитная карточка — интересные задачи
  • Online или Offline?
  • Призовой фонд?
  • Какие языки программирования популярны на соревнованиях?
  • Как взаимодействует код участника соревнования с платформой?
  • Локальная отладка?
  • Запуск в Docker под самописным оркестратором на Django
  • Пытались ли участники взломать платформу и как?
  • Какой KPI стоит перед командой?
  • Зачем участвовать в соревнованиях по программированию?
  • Образовательная часть проекта, бесплатные курсы
  • Ближайшие мероприятия

https://cups.mail.ru/ru/

Книга: Элегантные объекты

Прочитал книгу «Элегантные объекты» Егора Бугаенко: https://www.elegantobjects.org

Автор описывает свой взгляд на «правильное ООП»,  даёт практические рекомендации и показывает наглядные примеры, итоговая цель которых – хорошо поддерживаемый код! Я полностью разделяю эту ценность: поддерживаемость – это одна из важнейших характеристик кода.

Читать далее Книга: Элегантные объекты