Forwarded from Тимлид Очевидность | Евгений Антонов
#минуткарекламы
5 июля старт Podlodka Soft Skills Crew – нашей новой конференции про софт-скиллы для инженеров!
🟢 Интенсив продлится две недели. Встречаемся дважды в день: утром и вечером
Вас ждут: крутые спикеры, сессии в лайве, ламповое общение и обмен кейсами в слаке, записи (для тех, кто не успевает на лайв).
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай на ознакомительные бесплатные сессии!🔥
P.S. От себя добавлю, что тематика выглядит довольно похоже на первые, очень полюбившиеся мне, сезоны тимлидкрю. Надеюсь на много полезных мыслей, позитивные впечатления, новые знакомства:)
5 июля старт Podlodka Soft Skills Crew – нашей новой конференции про софт-скиллы для инженеров!
🟢 Интенсив продлится две недели. Встречаемся дважды в день: утром и вечером
Вас ждут: крутые спикеры, сессии в лайве, ламповое общение и обмен кейсами в слаке, записи (для тех, кто не успевает на лайв).
🟢 Тема первой недели: Коммуникации
Во время неё узнаем, как общаться с другими людьми без стресса, даже если вы "интроверт". Обсудим принципы хорошей обратной связи руководству и коллегам. А ещё научимся распознавать манипуляции и защищаться от них.
🟢 Тема второй недели: Problem solving
Познакомимся с моделями мышления, научимся проходить поведенческие и проблемные интервью (типичные для FAANG). А также расширим своё видение и узнаем, как думают топ-менеджеры и предприниматели.
Подробности нашего свежего формата уже на сайте, смотри и успевай на ознакомительные бесплатные сессии!🔥
P.S. От себя добавлю, что тематика выглядит довольно похоже на первые, очень полюбившиеся мне, сезоны тимлидкрю. Надеюсь на много полезных мыслей, позитивные впечатления, новые знакомства:)
podlodka.io
Онлайн-конференция Podlodka Soft Skills Crew, сезон #7
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Наткнулся на свежую презентацию концепции будущей версии Bitrix Framework 3 — хотят соблюдать PSR, использовать composer и twig. Но это пока лишь концепция, ждут реакции партнёров и разработчиков. И пока не понятно как поддержать обратную совместимость, а это важный момент. https://youtu.be/SU_vUZL-190
YouTube
Новый Bitrix Framework: концепции и прототип. Дмитрий Медведев, Иван Челищев, «1С-Битрикс»
Доклад в рамках технопотока на партнерской конференции 1С-Битрикс «Давай встретимся».
Доклад — Новый Bitrix Framework: концепции и прототип:
— новый Bitrix Framework: концепция и прототип;
— совместимость продукта с PHP8.
Спикеры:
Дмитрий Медведев, ведущий…
Доклад — Новый Bitrix Framework: концепции и прототип:
— новый Bitrix Framework: концепция и прототип;
— совместимость продукта с PHP8.
Спикеры:
Дмитрий Медведев, ведущий…
Весьма живая дискуссия на тему On-premise vs Cloud СУБД: https://youtu.be/xUnZ-kLqtvw
— что мы имеем ввиду, говоря «база в облаке»?
— невозможно добиться времени ответа в единицы миллисекунд на публичном облаке, нужно своё железо и своя сеть;
— если у вас 20 микросервисов, которые нужно опросить для отображения одной страницы, причём не все запросы можно сделать параллельно, то latency становится важной характеристикой!
— стоимость обслуживания On-premise против Managerd решения в облаке, где точка пересечения?
— не бывает плохих архитектур, бывают дорогие архитектуры!
— как часто обновляться? История с упавшим Snowflake;
— где физически хранить данные, если базы в облаке: сетевые диски против локальных.
И другие интересные истории, рекомендую!
— что мы имеем ввиду, говоря «база в облаке»?
— невозможно добиться времени ответа в единицы миллисекунд на публичном облаке, нужно своё железо и своя сеть;
— если у вас 20 микросервисов, которые нужно опросить для отображения одной страницы, причём не все запросы можно сделать параллельно, то latency становится важной характеристикой!
— стоимость обслуживания On-premise против Managerd решения в облаке, где точка пересечения?
— не бывает плохих архитектур, бывают дорогие архитектуры!
— как часто обновляться? История с упавшим Snowflake;
— где физически хранить данные, если базы в облаке: сетевые диски против локальных.
И другие интересные истории, рекомендую!
YouTube
Круглый стол: Базы данных и где они обитают (On-premise vs Cloud)
Понравилось видео и хочешь узнать что-то еще про тимлидство? Забирай весь плейлист на https://is.gd/kChYnl или купи билет на следующий сезон конференции https://is.gd/auKynm
Подпишись на канал – каждую неделю мы выкладываем новые видео про то, как устроена…
Подпишись на канал – каждую неделю мы выкладываем новые видео про то, как устроена…
Нужно было переустановить PHP проект, который не трогал уже три года. Запустил Ansible плейбуки, всё установилось и заработало с первого раза. Вот что Infrastructure as a Code животворящий делает!
Порекомендую видео доклада: https://youtu.be/--lenvvFwrg?t=4216
Весьма позитивный опыт перевода всех разработчиков веб-студии с Windows на Linux + Docker для упрощения развёртывания проектов. Особенность веб-студии в том, что проектов много и иногда разработчику нужно переключаться, работать с несколькими параллельно, причём там могут быть разные версии PHP и свои инфраструктурные особенности.
Классическая история проб и ошибок:
— от локальной разработки на Windows
— через разработку на удалённых dev серверах
— подход к OpenServer, Vagrant
— переход на Desktop Linux (LAMP)
— перевод проектов в Docker с обвязкой из нескольких сервисных контейнеров: nginx-proxy, dns-gen, mailcathcer, portainer
— Minikube vs k3s
— А что с WSL?
Заголовок видео «Митап Разработка современного e-com на Битрикc», но в докладе нет Битрикс-специфики, советы применимы к любому PHP проекту.
Весьма позитивный опыт перевода всех разработчиков веб-студии с Windows на Linux + Docker для упрощения развёртывания проектов. Особенность веб-студии в том, что проектов много и иногда разработчику нужно переключаться, работать с несколькими параллельно, причём там могут быть разные версии PHP и свои инфраструктурные особенности.
Классическая история проб и ошибок:
— от локальной разработки на Windows
— через разработку на удалённых dev серверах
— подход к OpenServer, Vagrant
— переход на Desktop Linux (LAMP)
— перевод проектов в Docker с обвязкой из нескольких сервисных контейнеров: nginx-proxy, dns-gen, mailcathcer, portainer
— Minikube vs k3s
— А что с WSL?
Заголовок видео «Митап Разработка современного e-com на Битрикc», но в докладе нет Битрикс-специфики, советы применимы к любому PHP проекту.
Ядро Битрикс - история и планы
Пятиминутка PHP
Для этого выпуска подкаста я пригласил двух разработчиков ядра Битрикс: Дмитрия Медведева (https://facebook.com/medveddev) и Ивана Челищева (https://www.facebook.com/chelishchev). Обсудили историю развития Битрикс, что такое ядро и Bitrix Framework, что такое D7, как выглядит разработка под Битрикс сейчас и какие планы на будущее.
Про технологии в актуальной версии D7:
- Используются суперглобальные массивы $_GET, $_POST?
- ORM, QueryBuilder и работа с базой
- Active Record или Data Mapper?
- Почему не Doctrine?
- Миграции и система обновлений
- Поддержка различных СУБД?
- Почему нет PostgreSQL?
- Роутинг и точки входа
- Шаблонизация, защита от XSS, подключение внешних шаблонов
- Работа с очередями, агенты
- IoC контейнер или Service Locator?
- Autowiring в контроллере
- Консольные команды на основе symfony/console
- Другие внешние библиотеки
- Сборка PHP кода
- Сборка фронтенд кода: инструмент Bitrix CLI на основе Rollup
Что планируется в будущем Bitrix Framework 3?
Про технологии в актуальной версии D7:
- Используются суперглобальные массивы $_GET, $_POST?
- ORM, QueryBuilder и работа с базой
- Active Record или Data Mapper?
- Почему не Doctrine?
- Миграции и система обновлений
- Поддержка различных СУБД?
- Почему нет PostgreSQL?
- Роутинг и точки входа
- Шаблонизация, защита от XSS, подключение внешних шаблонов
- Работа с очередями, агенты
- IoC контейнер или Service Locator?
- Autowiring в контроллере
- Консольные команды на основе symfony/console
- Другие внешние библиотеки
- Сборка PHP кода
- Сборка фронтенд кода: инструмент Bitrix CLI на основе Rollup
Что планируется в будущем Bitrix Framework 3?
Вы пользовались сервисом Яндекс.Кью? Я что-то слышал, но не вникал. Сервис объединяющий сообщества с вопросами и ответами, возможно это что-то типа Quora.
Решил зарегистрировать сообщество «Пятиминутка PHP», присоединяйтесь: http://amp.gs/j8Tw4
Решил зарегистрировать сообщество «Пятиминутка PHP», присоединяйтесь: http://amp.gs/j8Tw4
Яндекс Кью
«Пятиминутка PHP» — сообщество Яндекс Кью
Сообщество о языке программирования PHP. Исследуем тренды в веб-разработке, поднимаем темы про развитие языка PHP, фреймворков и инструментов. А также про инфраструктуру, администрирование Linux и DevOps подходы.
Подписался на телеграм канал про разработку Yii3 из первых рук. Я не использую Yii в своих проектах, но канал читается классно и интересно, как живой changelog или дневник разработчика: http://amp.gs/j8zqX
Telegram
Хроники Yii3
Описание процесса разработки фреймворка из первых рук 😎
Обсуждение:
https://t.me/yii3ru
Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0
Поддержать разработчиков:
https://opencollective.com/yiisoft
Обсуждение:
https://t.me/yii3ru
Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0
Поддержать разработчиков:
https://opencollective.com/yiisoft
Какую СУБД выбрать? Какой язык программирования? «Любой правильный выбор устаревает, если ваш продукт проживёт достаточно долго» — подслушано на Podlodka Techlead Crew http://amp.gs/j8RiL
Разработка больших проектов на Битрикс
Пятиминутка PHP
Второй подкаст в серии про Битрикс. Иван Поддубный (https://vk.com/north_leshiy) из компании Вебпрактик рассказывает про свой опыт разработки крупных проектов на Битрикс и сравнивает с другими фреймворками (Laravel) и стеками технологий.
Derick Rethans, автор Xdebug, раз в месяц описывает в своём блоге, что нового в разработке отладчика за последний месяц.
В июле Derick работал над Xdebug 50 часов, но финансовая поддержка от сообщества через Patreon и GitHub Sponsors пока не велика и покрывает лишь 25 часов работы.
В июле добавилась поддержка Enum из PHP 8.1, но ещё предстоит добавить поддержку IDE, например уже открыты тикеты для PhpStorm и VS Code.
Добавлено наглядное отображение переменных, использующих First Class Callable Syntax.
Ближайшая версия Xdebug 3.1 будет работать с PHP 7.2 - 8.1
Ещё пара изменений с поддержанием отладочной сессии по HTTP, а также хитрости с отладкой долгоживущих PHP процессов.
Идёт работа над Xdebug Cloud - платный сервис для проксирования сессий отладки, который пригодится в случае невозможности прямого подключения Xdebug к IDE. Стартовый тарифный план 49 фунтов в месяц.
На своём YouTube канале Derick опубликовал два новых видео о настройке профилировщика Xdebug и об утилите KCacheGrind для просмотра результатов профилирования.
http://amp.gs/j8JSj
В июле Derick работал над Xdebug 50 часов, но финансовая поддержка от сообщества через Patreon и GitHub Sponsors пока не велика и покрывает лишь 25 часов работы.
В июле добавилась поддержка Enum из PHP 8.1, но ещё предстоит добавить поддержку IDE, например уже открыты тикеты для PhpStorm и VS Code.
Добавлено наглядное отображение переменных, использующих First Class Callable Syntax.
Ближайшая версия Xdebug 3.1 будет работать с PHP 7.2 - 8.1
Ещё пара изменений с поддержанием отладочной сессии по HTTP, а также хитрости с отладкой долгоживущих PHP процессов.
Идёт работа над Xdebug Cloud - платный сервис для проксирования сессий отладки, который пригодится в случае невозможности прямого подключения Xdebug к IDE. Стартовый тарифный план 49 фунтов в месяц.
На своём YouTube канале Derick опубликовал два новых видео о настройке профилировщика Xdebug и об утилите KCacheGrind для просмотра результатов профилирования.
http://amp.gs/j8JSj
Как запретить eval() в PHP? Интересная статья от Александра Майорова: http://amp.gs/j828d
Для начала важно уточнить, что eval() — это не функция, а языковая конструкция. Если бы это была функция, то можно было бы воспользоваться директивой в php.ini файле disable_functions.
В своей статье Александр рассказывает, как нашел фрагмент кода в исходниках PHP, который запускает выполнение eval и как написать собственное расширение, отключающее eval. При этом можно выдать явную ошибку «eval не пройдёт!» или ошибку замаскированную под синтаксическую.
В целом хорошая тема для RFC в будущие версии PHP — возможность отключить eval через настройки в php.ini.
Для начала важно уточнить, что eval() — это не функция, а языковая конструкция. Если бы это была функция, то можно было бы воспользоваться директивой в php.ini файле disable_functions.
В своей статье Александр рассказывает, как нашел фрагмент кода в исходниках PHP, который запускает выполнение eval и как написать собственное расширение, отключающее eval. При этом можно выдать явную ошибку «eval не пройдёт!» или ошибку замаскированную под синтаксическую.
В целом хорошая тема для RFC в будущие версии PHP — возможность отключить eval через настройки в php.ini.
PHP fwdays'21 — знаменитая и хорошо себя зарекомендовавшая за предыдущие годы конференция пройдёт в online формате 4 сентября: https://bit.ly/2XnCUeb
Будет бесплатная трансляция всех докладов в день проведения, но если хотите посмотреть позже в записи, то нужно приобрести билет.
Окончательно программа будет сформирована к 30 августа, а пока вот что интересненького ожидается:
— Fault tolerant workflow orchestration on PHP — Антон Титов про Temporal IO + RoadRunner
— Реальный опыт успешного переноса Laravel микросервисов в AWS Lambda при помощи Vapor (огонь!)
— Интересный доклад на тему запрета наследования с помощью final — нужно ли? И когда?
— Оптимизация тестирования от автора PHPUnit, Sebastian Bergmann
— Про Full Stack фреймворки и как генерировать фронетнд с помощью бэкенда на PHP (назад в будущее?)
В общем, я добавляю в календарь напоминание на 4 сентября: https://bit.ly/2XnCUeb
Будет бесплатная трансляция всех докладов в день проведения, но если хотите посмотреть позже в записи, то нужно приобрести билет.
Окончательно программа будет сформирована к 30 августа, а пока вот что интересненького ожидается:
— Fault tolerant workflow orchestration on PHP — Антон Титов про Temporal IO + RoadRunner
— Реальный опыт успешного переноса Laravel микросервисов в AWS Lambda при помощи Vapor (огонь!)
— Интересный доклад на тему запрета наследования с помощью final — нужно ли? И когда?
— Оптимизация тестирования от автора PHPUnit, Sebastian Bergmann
— Про Full Stack фреймворки и как генерировать фронетнд с помощью бэкенда на PHP (назад в будущее?)
В общем, я добавляю в календарь напоминание на 4 сентября: https://bit.ly/2XnCUeb
Новости из мира CakePHP, новое в верссии 5.0:
— будет требовать PHP 8;
— весь код максимально типизирован (параметры методов и возвращаемые значения);
— убран весь deprated код ветки 4.x.
Roadmap: http://amp.gs/j85rJ
Там же по ссылке есть список идей на версию CakePHP 6
— будет требовать PHP 8;
— весь код максимально типизирован (параметры методов и возвращаемые значения);
— убран весь deprated код ветки 4.x.
Roadmap: http://amp.gs/j85rJ
Там же по ссылке есть список идей на версию CakePHP 6
Swiftmailer умер, да здравствует Symfony Mailer!
Это перевод статьи из блога Symfony: https://symfony.com/blog/the-end-of-swiftmailer
Начиная с Symfony 4.3 (май 2019) у нас появился новый компонент Symfony Mailer. С каждым релизом он наращивал функцинальность, добавляя больше сторонних поставщиков и некоторые недостающие функции, которые уже были доступны в старом Swiftmailer, например, поддержку DKIM и электронные подписи.
Начиная с версии Symfony 5.3 можно сказать, что все функции Swiftmailer теперь доступны и в Symfony Mailer.
Пришло время официально прекратить поддержку Swiftmailer в пользу Symfony Mailer. Дату окончания поддержки Swiftmailer - конец ноября 2021 года, т.е. одновременно с выпуском Symfony 5.4 LTS и 6.0.
На самом деле новый компонент Symfony Mailer мог бы выйти под названием Swiftmailer 7. Давайте немного погрузимся в то, как я решил создать Symfony Mailer вместо выпуска Swiftmailer 7. Текущая кодовая база для Swiftmailer была основана Swiftmailer 4.0, который вышел примерно во времена Symfony 1.2 (декабрь 2008)!
В течение многих лет я пытался поэтапно модернизировать Swiftmailer, вводя пространства имен, переходя к автозагрузчику Composer, удаляя специальную (и тяжелую) «последовательность загрузки», пытаясь перейти на DI и диспетчер событий Symfony. Но все мои усилия всегда заканчивались тупиком. Слишком много концептуальных проблем. У Swiftmailer странное и сложное наследование классов, а экземпляры сообщений не являются объектами данных, что затрудняет сериализацию. Ему также не хватает некоторых современных функций, таких как поддержка шаблонизатора Twig и системы подключения сторонних поставщиков для отправки почты. Обе функции можно было бы добавить в текущую кодовую базу, но это был бы хаос. Другая проблема заключается в том, как Swiftmailer поддерживает асинхронную отправку – это плохо работает и механизм не гибкий. Я могу продолжать и продолжать, но вы поняли суть.
Итак, в какой-то момент я решил начать все сначала. Вместо того, чтобы пытаться модернизировать код поэтапно, я скопировал код и начал сначала работать над изоляцией компонента Symfony Mime. Затем я максимально реорганизовал остальную кодовую базу, в результате появился Symfony Mailer.
Symfony Mailer имеет довольно много общего кода со Swiftmailer, но не имеет его особенностей и архитектурных проблем.
Переход с Swiftmailer на Symfony Mailer – это относительно простая задача, поскольку концепции в этих двух библиотеках одинаковы.
Это перевод статьи из блога Symfony: https://symfony.com/blog/the-end-of-swiftmailer
Начиная с Symfony 4.3 (май 2019) у нас появился новый компонент Symfony Mailer. С каждым релизом он наращивал функцинальность, добавляя больше сторонних поставщиков и некоторые недостающие функции, которые уже были доступны в старом Swiftmailer, например, поддержку DKIM и электронные подписи.
Начиная с версии Symfony 5.3 можно сказать, что все функции Swiftmailer теперь доступны и в Symfony Mailer.
Пришло время официально прекратить поддержку Swiftmailer в пользу Symfony Mailer. Дату окончания поддержки Swiftmailer - конец ноября 2021 года, т.е. одновременно с выпуском Symfony 5.4 LTS и 6.0.
На самом деле новый компонент Symfony Mailer мог бы выйти под названием Swiftmailer 7. Давайте немного погрузимся в то, как я решил создать Symfony Mailer вместо выпуска Swiftmailer 7. Текущая кодовая база для Swiftmailer была основана Swiftmailer 4.0, который вышел примерно во времена Symfony 1.2 (декабрь 2008)!
В течение многих лет я пытался поэтапно модернизировать Swiftmailer, вводя пространства имен, переходя к автозагрузчику Composer, удаляя специальную (и тяжелую) «последовательность загрузки», пытаясь перейти на DI и диспетчер событий Symfony. Но все мои усилия всегда заканчивались тупиком. Слишком много концептуальных проблем. У Swiftmailer странное и сложное наследование классов, а экземпляры сообщений не являются объектами данных, что затрудняет сериализацию. Ему также не хватает некоторых современных функций, таких как поддержка шаблонизатора Twig и системы подключения сторонних поставщиков для отправки почты. Обе функции можно было бы добавить в текущую кодовую базу, но это был бы хаос. Другая проблема заключается в том, как Swiftmailer поддерживает асинхронную отправку – это плохо работает и механизм не гибкий. Я могу продолжать и продолжать, но вы поняли суть.
Итак, в какой-то момент я решил начать все сначала. Вместо того, чтобы пытаться модернизировать код поэтапно, я скопировал код и начал сначала работать над изоляцией компонента Symfony Mime. Затем я максимально реорганизовал остальную кодовую базу, в результате появился Symfony Mailer.
Symfony Mailer имеет довольно много общего кода со Swiftmailer, но не имеет его особенностей и архитектурных проблем.
Переход с Swiftmailer на Symfony Mailer – это относительно простая задача, поскольку концепции в этих двух библиотеках одинаковы.
Symfony
The end of Swiftmailer (Symfony Blog)
Now comes the time to officially end the maintenance of Swiftmailer in favor of Symfony Mailer. I've set the end of maintenance date to the end of November 2021, at the same time as the Symfony 5.4 LT...