В начале июня в Берлине прошла одна из самых продвинутых конференций по PHP — International PHP Conference 2016. В качестве докладчиков в ней приняли участие такие специалисты, как Себастьян Бергман, Арне Бланкертс, Стефан Прибш и еще более 50 человек, которые вносят свой постоянный вклад в развитие PHP. Конференция проводилась в шикарном 4-х звездочном отеле Маритим Проарте. Доклады читались в несколько параллельных потоков на английском и немецком и затрагивали как непосредственно PHP-разработку, так и околодевелоперские темы: инфраструктуру, серверное ПО, open source-разработку и многое другое. Отдельно хочется отметить ключевые доклады, которые зажигали то искрометным юмором, то глубиной затрагиваемых тем. В этой статье мы собрали свои впечатления от самых крутых докладов, с ссылками на презентации и примеры.
PHP 7: каков он? (Себастьян Бергман)
Себастьян добирался до Берлина с приключениями — технические неполадки с самолетом, выявленные прямо перед вылетом (хорошо, что не после!). Поэтому его доклад был перенесен на более поздний срок. Но ожидание стоило того!
Докладчик очень основательно подошел к содержанию своей речи. Основной целью его было не оставить у слушателей ни единого пробела в понимании роли и места PHP 7 в огромном мире современных языков программирования. Для этого Себастьян прошелся очень подробно по принципам работы многих языков. Было уделено особое внимание истории развития и парадигмам программирования. Докладчик показал на примерах, как язык менялся от версии к версии, какие новые черты приобретал, и на сколько лучше становился от этого. В итоге можно сказать, что PHP 7 является императивный языком, который поддерживает процедурное, а также объектно-ориентированное программирование. Он имеет ограниченную поддержку функционального программирования. Также существуют расширения для аспектно-ориентированного программирования. PHP 7 динамический, неявно, и слабо типизированный, но при желании поддерживает явную типизацию и строгую проверку типов. Благодаря этому докладу мы смогли глубже понять тот инструмент, с которым мы работаем каждый день.
Настройка балансировщика уровня Enterprise с бесплатным ПО. (Себастьян Фельдман)
Себастьян Фельдман — ведущий разработчик в одной из IT-компании Мюнхена. Он описал, как он настраивает балансировщики нагрузок. Он делает ставку на то, что доступность является ключевым фактором в онлайн-бизнесе, и если веб-сайт или услуга не доступны для клиентов — это всегда плохо для бизнеса. Из доклада мы узнали, как настроить балансировщик, чтобы достичь высокой производительности и высокой доступности под нагрузкой с помощью бесплатного программного обеспечения Nginx и HAProxy. Доклад содержал множество примеров конфигурации, а также обзор инструментов для мониторинга. Особое внимание Себастьян уделил настройке операционной системы: агрегированию сетевых адаптеров, изменению размера TCP-буфера. Докладчик поделился информацией о том, почему увеличивается производительность соединения с использованием протоколов SPDY и http2. Также был очень познавателен его опыт перехода на SSL и проверки соответствия требованиям безопасности (с помощью https://www.ssllabs.com). Очень интересной была часть про стратегии перехода на другой
Just married: NodeJs and PHP (Арне Бланкертс)
Когда Node.js впервые открылся миру в 2009 году, многие заявили, что наступает конец PHP. Тем не менее, около шести лет спустя, обе среды живут и процветают, занимая свои ниши! Но почему бы не объединить лучшее, что есть в обоих языках — это может стать отличным решением для покрытия потребностей следующего поколения веб-приложений. Этот доклад познакомил нас с системной и программной архитектурой, которая сочетает в себе Node.js, PHP и Redis и дает действительно мощный веб-стек для решения современных задач. С помощью такого решения можно создавать приложения с постоянным websocket-соединением, в которых сам сервер посылает клиенту информацию по мере необходимости, при этом не создавая дополнительной нагрузки на сеть — ведь соединение постоянное! Доклад понравился именно тем, что данная тема тесно связана с некоторыми текущими проектами, и было очень познавательно узнать подход именно этого именитого специалиста.
Symfony2 лучшие практики из окопов (Стефан Коопмансхап)
Symfony2 отличный фреймворк и на нем довольно легко создать свое первое приложение. У Symfony хорошая документация, но, как и с любой документацией, в ней сложно описать все нюансы и подводные камни документируемого кода.
Многие детали и хорошие методики лучше всего познаются при работе над своим проектом. Во время этого доклада Стефан разобрал основные моменты в работе с проектами на Symfony, на которые стоит обратить внимание, поделился с присутствующими знаниями и опытом, добытыми в окопах реальных проектов.
В обычных условиях разработчикам пришлось бы уворачиваться от таких спорных моментов, как от пуль в Матрице, самим решать, как лучше поступить, пробовать, искать решение.
Будь то вопрос про подробности конфигурации, о которой вы всегда забывали, или как лучше абстрагировать логику в нужных местах, у Стафана, на всё есть мнение, подкрепленное опытом, и он был рад им поделиться. Например использование внедрения зависимостей, работы с конфигурацией проекта, вынесение бизнес-логики в сервисы, или вопросы стандартизации — спектр рассмотренных вопросов был довольно велик.
Один из наших проектов, который сейчас находится в разработке, как раз написан с использованием этого фреймворка. Слушая доклад, время от времени ловили себя на мысли, что сами или поступили бы аналогично, или переделали так, как порекомендовал Стефан. Доклад будет интересен начинающим разработчикам, так и тем, кто уже разработал не один проект на Symfony, чтобы еще раз убедиться, что принятые при разработке решения были правильными. Также есть вероятность, что после доклада вы еще раз взглянете на код проекта и поймете, как его можно улучшить.
Как управлять утилитами проекта в 2016 (Арне Бланкертс, Себастиан Хойер)
Сегодня управление зависимостями в PHP проектах осуществляется, в основном, с помощью Composer.
В то время, как это является полностью обоснованным для библиотек, управление утилитами при помощи Composer приведет к установке всех зависимостей этих инструментов. Кроме того, что это замедляет установку, еще происходит смешивание этих зависимостей с зависимостями приложения. И хотя многие инструменты доступны как полностью автономные phar-архивы, ручную установку и обновление их трудно назвать удобным процессом.
Если бы только был способ автоматизировать это.
Именно о phive (phar.io), который был создан для решения этой проблемы, и шла речь в докладе. Арне и Себастьян рассказали подробнее про эту утилиту и показали ее в действии. Проект все еще находится в стадии альфа-версии и для установки доступно совсем немного утилит. На данный момент это phpab, phpcpd, phpdox, phploc, phpunit, phpbu. Также возможна загрузка утилит по ссылке или с Github (указав пользователя и имя проекта). Видно. что приложение еще не достигло стабильной версии, но его уже можно пробовать использовать, возможно, сначала для небольших проектов. Идея утилиты довольно интересная, и кто знает, может, через некоторое время мы все будем ею пользоваться.
Docker в производстве (Роберт Лемке)
Вы, скорее всего, уже слышали о Docker, возможно, использовали его в качестве среды разработки для запуска вашего проекта на локальном компьютере. Но дальнейшее использование Docker на боевых серверах — совсем другое дело.
В своем докладе Роберт озвучил основные моменты, на которые стоит обратить внимание при использовании Docker в производстве. А учесть нужно довольно много вещей — мониторинг, развертывание, дебаг, безопасность, бекапы, хранение данных.То есть вопросы, реализация которых может сильно отличаться при развертывании на одном сервере для разработки, и при развертывании в облаке на боевом окружении.
Также Роберт помог получить более глубокое понимание работы с Docker на практике.
Начав с базовых концептов, мы рассмотрели практические сценарии для
Docker — довольно интересная технология, и не смотря на то, что она упоминается буквально на каждом шагу, все еще сравнительно редко используется в боевых окружениях. Прослушав этот доклад, желание использовать его в производстве подкрепилось знаниями и полезными советами по выбору необходимых инструментов и сервисов, без которых пришлось бы изобретать велосипеды.
Прокачай свою команду (Стефан Коопмансхап)
Как технический руководитель проекта, руководитель команды или ментор, в любой момент вы можете столкнуться с тем, что ваша команда остановилась в своем развитии. Причин тому множество: членам вашей команды может не хватать времени, мотивации, средств, желания. Между тем, каждому лиду нужно, чтобы ребята в команде работали эффективно, были способны быстро переключиться на другой проект и оставались вовлеченными в профессиональное комьюнити. Для этого тимлид должен держать руку на пульсе и стремиться не только к высоким показателям по проекту, но и к профессиональному росту каждого члена команды. Как этого добиться, рассказал Стефан Коопмансхап.
Стефан перечислил все известные инструменты развития команды и привел примеры из личного опыта, как сделать так, чтобы разработчики сами подталкивали себя выкладываться по полной. Конечно, в докладе было много очевидных моментов, но Стефану удалось структурировать все многообразие инструментов работы с командой и создать полноценную “инструкцию”.
Стефан помог взглянуть на обязанности лида с другой стороны и предложил решение действительно серьезной проблемы. Кроме этого, его доклад сам по себе мотивировал к развитию и повышению уровня знаний, заставил задуматься о том, сколько времени и сил стоит тратить на развитие человека в команде и проектной команды в целом.
Современное приложение с Angular 2 — аккуратное, простое и понятное (Анас Раза Фирдоуси)
Современный темп развития веб-технологий требует гибкого и стабильного фреймворка с поддержкой на длительное время. Анас Раза Фирдоуси (Anas Raza Firdous) из PayPal уверен, что именно Angular 2 способен беспрерывно эволюционировать и сможет выдержать испытание временем.
Свой доклад Анас посвятил преимуществам Angular 2 и продемонстрировал, как думать и проектировать приложения с точки зрения Angular 2, TypeScript и реактивного программирования с RxJS.
Анас говорил о том, что Angular 2 сочетает в себе простоту в использования Angular 1, но при этом исправляет многие подводные камни и сложности первой версии, рассказал об изменениях в Angular 2 и их причинах. На практическом примере Анас продемонстрировал особенности и некоторые возможности фреймворка, которых достаточно для начала разработки. Также докладчик посоветовал, как изучить Angular 2 более детально.
Переводим свой проект на PHP 7 (Джон Когсхолл)
С самого релиза PHP 7 комьюнити разработчиков обсуждает преимущества и недостатки последней версии, а также особенности миграции на PHP 7. Джон Когсхолл предложил свой опыт миграции проекта, рассказал о проблемах, с которыми ему пришлось столкнуться, и способах их решения.
Джон уделил внимание как особенностям новой версии языка, так и нюансам миграции проекта на PHP 7: что нужно знать о PHP 7 для перехода, что изменилось в новой версии, каких проблем можно ожидать при миграции и как их быстро и безболезненно решить.
Конечно, каждый разработчик может самостоятельно почитать о различиях между версиями и предположить, что и как может сломаться. Однако Джон не ограничился теорией и подкрепил доклад примерами из собственного опыта. Благодаря этому доклад получился ярким и живым.
Заключение
International PHP Conference — это один из ключевых ивентов для PHP-разработчика. Как сказано на сайте конференции, ее основная цель — поделиться практическими ноу-хау в PHP и веб-разработке. Благодаря этой поездке мы не только получили огромное количество новой полезной информации, которая пригодится в работе, но и смогли лично пообщаться с экспертами веб-разработки мирового уровня и получить от них ответы на свои вопросы. Приятным бонусом стали доклады на «околодевелоперские» темы, которые помогли увидеть важные нюансы в работе.
Автор: NIX Solutions