SDCast #124: в гостях Михаил Боднарчук, веб-разработчик из Киева, автор фреймворков для тестирования Codeception & CodeceptJS

Товарищи! После затянувшегося перерыва встречайте 124 выпуск подкаста! На этот раз у меня в гостях Михаил Боднарчук, веб-разработчик из Киева, автор фреймворков для тестирования Codeception & CodeceptJS.

В этом выпуске мы говорим, конечно же, про тестирование в целом, подходы, виды и конечно же инструменты, обсуждаем open source, и как можно на нём заработать.

Миша рассказал про историю появления и развития фреймворка для тестирования на php Codeception, его устройство и подходы к применению. Мы обсудили подходы к тестированию и практики использования фреймворка, вспомнили прошлые и настоящие альтернативы.

Так же Миша рассказал про ещё один фреймворк для тестирования, на этот раз для JavaScript CodeceptJS. Рассказал историю о том, как он начинал его писать, какие ставил цели и задачи. В этом контексте мы обсудили различные инструменты для End-to-End тестирования в браузерах, такие как Selenium, Puppeteer, Cypress и новоиспечённый Playwright. В дополнение к этому Миша рассказал интересную историю про контрибьюторов в проект из Индии.

Миша уже много лет работает сам на себя, занимается консультированием по своим фреймворкам и пытается зарабатывать на open source. Мы поговорили и об этом: Миша рассказал, как всё начиналось у него, какие есть бизнес-модели для open source, донаты и поддержка. Так же Миша рассказал про проект, которым он занимается сейчас, это система управления тестами testomat.io

Читать далее

SDCast #113: в гостях Александр Сербул, руководитель направления контроля качества интеграций и внедрений в компании 1С-Битрикс

Встречайте 113-й выпуск подкаста, в котором у меня в гостях Александр Сербул, руководитель направления контроля качества интеграций и внедрений в компании 1С-Битрикс, а так же технологический евангелист. В этом выпуске мы говорим про архитектуру, языки программирования, machine learning, нейросети, облака и многое другое. И нет, не думайте, что этот выпуск только про PHP и 1C-Битрикс!

Вначале Саша рассказал про свой довольно насыщенный и тернистый путь в IT, с чем сталкивался, какие задачи приходилось решать и какие роли играть. Саша поделился теми книгами, которые произвели на него сильное впечатление сыграли не последнюю роль в его профессиональных навыках.

Саша рассказал про общую архитектуру системы, её компоненты, сервисы, используемые языки и технологии. Отдельно мы обсудили тему облаков, облачных решений, AWS в частности, его плюсы и минусы и возможные альтернативы.

Так же Саша рассказал про Rust, чем он так хорош, где нашлось ему место и какую выгоду это принесло. Обсудили мы и тему строгой типизации в различных интерпретируемых языках, хайп вокруг неё и немного подискутировали о том, когда она не очень нужна, а когда без неё уже не обойтись.

Большой темой беседы стало машинное обучение. Саша рассказал про то, где у себя в системе они применяют машинное обучение, какие решают задачи с её помощью. Рассказал про используемые алгоритмы, фреймворки, языки и технологии.

Не обошли мы стороной и вопрос первого языка программирования. Саша поделился своим мнением на этот счёт.

Читать далее

SDCast #111: В гостях Сергей Жук, разработчик из Skyeng

Встречайте 111-й выпуск подкаста, в котором у меня в гостях Сергей Жук, разработчик из Skyeng. В этом выпуске мы говорим про удалённую работу, публичную активность разработчиков и асинхронный PHP.

Сергей живёт в Брянске, не самом айтишном городе. Мы поговорили про саморазвитие, опыт и получение знаний. Сергей рассказал про поиск удалённой работы, как начать вести свой технический блог, делать скринкасты и что это даёт. Так же Сергей рассказал про свою удалённую команду в Skyeng, как у них построены рабочие процессы. Мы обсудили важность код-ревью, документирования кода, асинхронность коммуникаций и другие важные аспекты разработки.

В какой-то момент Сергей увлёкся асинхронным PHP настолько, что он рассказывает про него на различных митапах и конференциях, записывает подкасты и даже написал несколько книг про ReactPHP! Мы обсудили для каких задач стоит применять асинхронный PHP, какие проблемы он может помочь решить и как внедрить его в уже существующий проект.

Читать далее

SDCast #109: В гостях Антон Титов, технический директор, основатель компании SpiralScout

Рад представить вашему вниманию 109-й выпуск SDCast’а с Антоном Титовым, техническим директором и основателем компании SpiralScout. В этом выпуске мы снова говорим о процессах разработки, но не только, а так же обсуждаем RoadRunner, высокопроизводительный сервер приложений PHP, написанный на Go, другие open source проекты компании, soft skills и многое другое.

В начале Антон рассказал про компанию, как она зарождалась, развивалась, какие были процессы и организация в компании в начале и как это видоизменилось к настоящему времени. Мы поговорили про удалённую работу и работу в офисе, обсудили вопросы мотивации сотрудников. Антон рассказал про внедрение в компании четырёхдневной рабочей недели, о том как этот эксперимент доказал свою полезность и закрепился на постоянной основе.

Одной из главных тем нашей беседы был конечно же проект RoadRunner. Это сервер приложений, написанный на Golang. Антон является автором и разработчиком RoadRunner. Он рассказал про проблемы php-fpm, и почему решил написать новый сервер, почему был выбран go для реализации, какова архитектура проекта и как взаимодействуют между собой go и php.

Так же мы обсудили ещё один проект Антона Cycle DataMapper ORM: зачем нужен ещё один ORM для PHP, как Cycle ORM устроен внутри и какие у него особенности.

Поговорили мы и в целом про open source, публикацию проектов, коммьюнити и обратную связ от пользователей.

Антон, являясь техническим директором компании, умудряется находить время на программирование и оставаться техническим экспертом в используемых технологиях. Я попросил его рассказать, как ему удаётся совмещать различные роли и главное, как распоряжаться своим временем, чтобы его хватало на все задачи. Так же мы поговорили про софт скилы, насколько они важны для различных ролей (разработчики, тимлиды, СТО) и как эти софт скилы прокачивать.

Читать далее

SDCast #107: в гостях Кирилл Смелов и Максим Колмаков, разработчики PhpStorm

Встречайте 107-й выпуск подкаста, в котором мы вместе с Петей из «Пятиминутки PHP», пообщались с Кириллом Смеловым и Максимом Колмаковым, разработчиками из команды PhpStorm в компании JetBrains.

В этом выпуске ребята рассказали про то, как устроена разработка PhpStorm, какая есть связь с основной платформой IntelliJ, как с технической стороны, так и социально-коммуникативной. Мы обсудили, кто и как задаёт вектор развития продукта, откуда поступают запросы на новые фичи, как происходит планирование релизов.

Также ребята рассказали про команду проекта, роли и зоны ответственности, и поделились своим впечатлением от стажёрства и наставничества над студентами и какие это даёт плоды.

Поговорили мы и о последних новых фичах языка и интересных возможностях PhpStorm, которые появились совсем недавно, или поддержка которых как раз планируется. Обсудили поддержку статических анализаторов для PHP, таких как PHPStan, Psalm. Ребята рассказали про интересную возможность менять поведение IDE через конфигурацию на PHP, так называемые META файлы.

Обсудили такую важную вещь — как обратная связь от пользователей продукта, насколько она важна для разработчиков, что даёт открытость баг-трекера коммерческого продукта и возможные каналы обратной связи.

Читать далее

SDCast #104: по следам конференции PHPRussia’19

Товарищи! Представляю вам несколько коротких интервью, записанных на конференции PHPRussia’19, которая прошла 17 мая в Москве. В начале я немного рассказал в целом про конференцию, организацию, доклады и докладчиков. А далее идут 2 интервью:

* Первое интервью с Антоном Шабовтой про асинхронный PHP, многозадачность и долгоживучесть PHP-процессов.
* Второе интервью с Антоном Моревым про Rest API и GraphQL, плюсы и минусы подходов, области и задачи применения.

Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon (http://patreon.com/KSDaemon), а так же ретвитом, постом и просто рассказом друзьям!

SDCast #103: в гостях Никита Попов

Ходит шутка, что как устроен PHP полностью знают только Никита Попов и Дмитрий Стогов. Так вот Никита в этом выпуске у меня в гостях! Последние несколько лет Никита активно участвует в развитии языка PHP, является автором многих интересных RFC, часть из которых уже внедрена в текущие версии PHP, и автором нескольких низкоуровневых библиотек, которые используются многими проектами.

В этом выпуске мы поговорили с Никитой о различных сторонах и аспектах языка и экосистемы PHP. Никита рассказал про своё знакомство с PHP, как он стал контрибьютить в проект и в итоге стал core разработчиком. Рассказал и про то, откуда он черпает идеи для новых улучшений языка.

Обсудили мы и то, как архитектура языка, заложенная на начальном этапе, влияет на текущую разработку и развитие языка, насколько легко или сложно внедрять новые возможности, подходы и парадигмы, например, многопоточность, асинхронность и прочее.

Отдельно обсудили тему появления JIT в PHP. Что это даст PHP, какие плюсы несёт, какова сложность внедрения и трудозатраты на реализацию.

Также Никита рассказал про разработку PHP за кадром: как core разработчики общаются между собой, обсуждают и планируют внедрение новых возможностей и улучшений языка.

В завершение выпуска Никита рассказал про свой предстоящий доклад на PHPRussia ’19.

Читать далее

SDCast #72: в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM

sd-podcast-logoРад представить вам 72-й выпуск SDCast’а! У меня в гостях Ильяс Салихов, директор по технологиям в компании Intaro и проекте retailCRM. В этом выпуске мы с Ильясом обсуждаем различные аспекты разработки, начиная от технических составляющих и заканчивая различными “soft skills” темами.

В начале Ильяс рассказал про проект retailCRM, как он появился, какие решает задачи, как устроен и работает. Обсудили мы архитектуру проекта и используемые технологии. Под капотом проекта используются: PHP/Symfony/Doctrine, PostgreSQL, Redis, сервисы на Python и Go и много чего ещё.

RetailCRM — это SaaS с большим количеством пользователей, где под пользователями понимается не конкретный человек, а целая компания, использующая retailCRM, внутри которой уже работает некоторое количество человек-пользователей. Сейчас сервис используют порядка 5000 магазинов, то есть пользователей-компаний, 30 млн хитов в сутки.

Ильяс рассказал, как они организуют хранение разных пользователей-компаний в базе данных и как организована работа бэкенда с этими данными. Забегая вперёд скажу, что retailCRM — это по большому счёту монолит на PHP/Symfony, где каждый пользователь-компания живёт на своём поддомене, однако все запросы обрабатываются этим самым монолитным приложением, а данные каждого пользователя-компании — это отдельная схема в базе данных PostgreSQL.

Также Ильяс рассказал про архитектуру и программные компоненты всей системы в целом. Обсудили мы вопросы миграции данных и выкладки новых версий компонентов, задачи мониторинга и обслуживания и другие сопутствующие вопросы.

Не обошли мы стороной и различные около технические темы в разработке, такие организация и инструменты командной разработки, вопросы найма и оценки квалификации программистов, расширение кругозора и обмен знаниями внутри компании.

Читать далее

SDCast #49: в гостях Александр Махомет, PHP Product Architect в компании Upwork

sd-podcast-logoВстречайте 49-й выпуск подкаста! На этот раз речь пойдет про распределенные команды разработки. У меня в гостях Александр Махомет, PHP Product Architect в компании Upwork и один из создателей проекта Frameworks days.

В компании Upwork работает порядка 350 инженеров и разработчиков, 270 из которых работают удаленно из 40 стран со всего мира. Александр рассказал как в компании в целом устроены процессы разработки, как формируются распределенные команды, на каких принципах построено взаимодействие между разработчиками и командами в целом.

Конечно же мы поговорили и про архитектуру проекта в целом. Саша рассказал из каких компонент состоит система в целом и что используется «под капотом». Рассказал так же про постепенную миграцию от монолитной архитектуры к микросервисной, как это происходило, какие были сложности и что в итоге это дало на выходе. В Upwork используется PHP как middleware между фронтендом и различными сервисами и Саша рассказал про миграцию с Zend Framework на Symfony, а так же про миграцию на PHP7.

Александр является одним из создателей проекта Framework days, и вообще активным участником различных сообществ разработчиков, так что не обошли мы стороной и эту область. Обсудили тему конференций и встреч, зачем и кому это нужно, как они устроены и организовываются, что дают всем участникам. Поговорили про различие конференций в постсоветском пространстве и Европе, возможность проведения конференций на английском языке и прочие смежные вопросы.

Читать далее

SDCast #48: в гостях Михаил Тюрин, главный системный архитектор AVITO.ru

sd-podcast-logo Рад представить вам 48-й выпуск SDCast’а! У меня в гостях Михаил Тюрин, главный системный архитектор AVITO.ru. В этом выпуске речь идет об архитектуре AVITO в целом, как оно работает изнутри и на каких технологиях базируется.

Миша работает в AVITO с основания, поэтому кому, как не ему знать как там все устроено. Мы не углублялись далеко в технические подробности, но обсуждали архитектуру системы в целом, затрагивая различные ключевые вопросы и компоненты. Миша рассказал про стек используемых технологий, как с точки зрения разработки, так и про используемые сервисы, серверы приложений, баз данных и т. д.

Мы довольно подробно разобрали, как система обрабатывает запрос, начиная от нажатия кнопки «Submit» в браузере, что происходит с данными запроса в бэкенде, какие сервисы участвуют в обработке, в какие очереди раскладываются задачи и заканчивая тем, каким образом обновляются данные во всей системе для других пользователей.

Не обошли мы стороной и вопросы отказоустойчивости, масштабирования и безопасности системы в целом, и некоторых ключевых компонентов в частности.

Так же довольно подробно пообщались про базы данных и PostgreSQL в частности. Затронули вопросы взаимодействия клиентского кода приложений с БД, обновления и миграции данных.

Миша является активным участником сообщества #PostgreSQLRussia, он сам активно выступает на разных конференциях и встречах, равно как и ребята из его команды, так что мы пообщались и на эту тему тоже.

Читать далее