DevConf 2012, как это было

На днях мне повезло в очередной раз сходить на одну из самых интереснейших IT конференций – DevConf. В этом году, местом была выбрана гостиница Измайлово. И это было правильно, т.к. в окресностях нашлось много баров для приятного времяприпровождения  🙂

День первый: доклады DevConf-2012

К половине одиннадцатого утра в конференц-зал вереницей начали подтягиваться IT’шники. Настроение у всех было приподнятое, где-то уже завязывались беседы и слух ласкали знакомые слова. Из зала доносилась музыка и я пошел посмотреть, что же там такое. Оказывается на сцене выступала группа LiveVersion.

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

Дальше пару слов сказали представитель сообществ (js, asp). И народ разошелся по докладам. Надо сказать, программа была интересной и весьма обширной. В этом году я, если честно, немного расслабился, и не составил себе чёткий план посещения докладов. Выбрал лишь первый.

Развертывание многослойной веб-системы // Сергей Котлов (RealWeb)

Название было очень многообещающим, однако сам доклад как-то не впечатлил. Думал будут действительно “раскрыты темы”, однако всё свелось к тому, что юзайте народ TeamCity и будет вам счастье. Интересно было услышать про эволюцию от bash скриптов до TeamCity. Мы, кстати, в компании прошли тот же путь 🙂  Сергей рассказывал про их систему AdHands. Она управляет показами баннеров на различных сайтах.

 ActiveRecord vs Mongoid // Иван Немытченко (7bits)

Дальше я решил заглянуть в секцию к рубистам. Думал в этот раз опять увидеть Тимофея Цветкова, но он не пришел.

 

Тут народ обсуждал, что же лучше юзать. Однако холиваров не было, победила дружба. Иван даже показал, как можно в рамках одного веб-приложения использовать сразу и ActiveRecord и Mongoid. Рубистов кстати активно хантили (как впрочем и PHPшников), а вот холивары были в холле.

   

Меня кстати, всегду удивляло, что холиваров много (консоль VS GUI, Windows VS Linux, IDE VS Vim), а решение всегда одно – юзайте инструмент, которым вы лучше можете выполнять поставленную задачу. Ну так и в этом случае. Так что я заменил vs на & 🙂

PHP 5.4 – особености перехода // David Soria Parra (PHP, Git)

Пожалуй один из самых значимых (не скажу, что новых, не скажу, что интересных, именно значимых) докладов. Автор рассказывал об особенностях php 5.4, и о том, как их применять. Например для php 5.3 один мой хороший товарищ накодил систему применения примесей (mix-in) для кода, а в 5.4 для этой цели специально создали трейты. Например, можно сделать трейт Singleton с его getInstance() и юзать в классах. Казалось бы, делаем абстракцию уровнем выше и все дела. Однако полной реализации мешает отсутствие в PHP множественного наследования (и слава Богу). Так вот, трейты как раз могут служить аналогом ножественного наследования, когда в класс нужно подмешать (mix-in) определйнное поведение (например метод toArray()). Ну и банальный подъем производительности после перехода 5.3 -> 5.4 уже его оправдывает.

Рефакторинг и второе рождение проекта на Zend Framework 2 // Алексей Пархоменко (iProjects)

Ну, на этот доклад я просто нее мог не сходить. Алексей начал с раскрытия понятия рефакторинга и целей его проведения. Основная идея – всегда понимайте зачем вам нужен рефакторинг. Ставьте цель, а не пишите код ради кода. Хоть вначале я немного заснул, ну реально баянили Фаулера, то потом мне стало очень интересно. Рассматривался ZF 2 под разными углами, в сравнении с другими фреймворками (Yii, Symfony 2). В общем по результатам ZF2 оказался хуже чем ZF1. Профилировка показала, что идёт слишком много вызовов компонента ZF/DI (Dependency Injection). Так сказать – плата за гибкость. Хотя думаю, в ZF тоже не дураки сидят, и наверняка делали аналогичные тесты. Думаю к релизу ситуация будет лучше. Ведь сколько раз мы видели, когда бетка была совсем сырой, а вот релиз – красота. Так что ждёмс-с новостей с фронта ZF веб-разработки.

см. оригинальные слайды презентации

Обед.

Дальше был перерывчек на обед. Народу собралось порядочно, а в твиттере шутили про змейку из айтишников. Еда была так себе, а вот десерты – просто шикарны.

 

Php в облаке Azure на примере Drupal // Паньков Артём (Инфо-системы для бизнеса)

Хотя я и не любитель Drupal, мне было интересно послушать как можно разместить php веб-приложение в облаке от Microsoft.

OpenStack – открытая облачная платформа // Илья Алексеев, Russian OpenStack Community

Казалось бы рынок виртализации уже существует и там есть такие мастодонты, как VMWare, Parallels. И тут мы видим не просто успешный старт, а ещё и поддержку крупных вендоров. Это всё о проекте OpenStack. В составе OpenStack есть несколько программных средств для управления виртуальными машинами, организации хранилища данных и образов виртуальных машин. Больше всего мне понравилось то, что OpenStack работает с множеством гипервизоров (Xen, KVM и т.д.) и форматов образов виртаульных машин. Прям руки чешутся всё это попробовать.

Проблемы использования постоянных соединений и их решения // Сергей Аверин (Badoo)

Badoo’шники уже не первый год участвуют в DevConf’е, и каждый год получают заслуженное внимание. Вот и в этот раз Сергей Аверин выступил с докладом об особенности использованяи постоянных соединений в контексте как всей инфраструктуры, так и общение своего десктопного приложения с php-сервером в частности. Получилось познавательно.

Опыт эксплуатации большого Ruby проекта // Александр Чистяков

Александр рассказывал о своём взгляде на развитие проекта. Он выступал в нём сначала в роли консультанта, а потом полноправного системного администратора. Получилось очень познавательно, пожалуй самый практический из всех докладов. Вообще хочется побольше таких success-stories. Начали делать проект, грабли, грабли, грабли, PROFIT! Именно пути решения проблем и интересны. Так например в их проекте в качестве БД использовалась не MySQL, а Postgres.

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

Yii, его разработка и Yii2

 

Rails & Security // Егор Хомяков

Да-да, это тот самый Егор, который взломал github.

День второй, Мастер-классы на DevConf 2012

В этот раз я решил пойти не только на саму конференцию, но и на мастер-классы. И не зря.

Производительность PHP (от основателя PHP)

В мастер-классе Расмус показывал, как можно измерить и улучшить производительность веб-приложения на PHP на примере WordPress. Для себя я узнал о двух новых инструментах.

Xhprof

Xhprof позволяет собирать данные о работе скрипта, количество потреблённой памяти, стоимости вызовов тех или иных функций. Очень полезная штука. В отличии от xdebug, данные можно собирать на каждой страничке без существенного оверхеда. Таким образом, постоянно быть в курсе расхода ресурсов. После установки Pecl расширения можно добавить скрипт вызовы в append и prepend файлы, и тогда будет происходить профилировка каждой странички.

HipHop PHP

Неожиданное решение – использовать HipHop от Facebook для анализа кода. Во время компиляции кода PHP в C HipHop проводит статический анализ кода, да такой, который позволяет выявить очень много ошибок, которые при других методах анализа даже и не всплыли бы. Буквально за пару минут Расмус выдал на гора несколько десятков багов в последней сборки WordPress!

Расмуму задавали много вопросов, например такие:

Q:  Почему интерфейс функций PHP не стандартизирован, как в Ruby? Разное наименование функций, разный порядок следования аргументов, почему так?

A: Дело в том, что PHP – это очень тонкий слой абстракции над CИшными библиотеками. Библиотеки разные, в них есть разные функции с разным порядком следования аргументов. PHP проецирует их интерфейс выше. Т.е. порядок следования аргументов в PHP такой же, как и в нижележащей библиотеки. Отсюда такое разнообразие. Конечно мы могли бы стандарттизировать их, но тогдабы слой абстракции был бы толще и производительность ниже. Мы считаем, что это – задача фреймворков.

После  была небольшая автограф и фото-сессия.

см. слайды с доклада PHP Perfomance (пока их нет, Расмус обещал выложить сюда).

Секреты MongoDB – масштабируемость и производительность

В этом мастер-классе автор показывал, как можно создать веб-приложение с использованием MongoDB. Делали сервис, который на основе загруженных данных из XML, позволял найти по карте ближайшие рестораны в радиусе N километров.

Почему MySQL тормозит или отладка проблем производительности MySQL приложений / Светлана Смирнова, MySQL

Светлана презентовала свою книгу, рассказывала о различных способах отладки MySQL запросов.

Outro

Конференция удалась, я узнал много нового (ну фразочка прямо из South Park). На самом деле стоило приезжать хотябы только ради мастер-классов по PHP И Mongo. Доклады были интересные, отдельное спасибо всем, кто принял участие в afterparty, классно посидели. Теперь с новыми силами и идеями дальше в бой!

Ссылки

DevConf.ru: An American in Moscow
Влад Федорков: Секреты производительности сфинкс, Ежедневная работа с MySQL и Percona Tools
Ещё один фотоотчёт с DevConf 2012 от Андрея Борю
Yii, его разработка и Yii2 (Видео)

8 Comments

    1. Возможно попутал, я в это время на другом докладе сидел. А можешь дать ссылку на презентацию пр этому докладу?

    1. Пока нет ( Как найду буду обновлять пост.

  1. Спасибо за слайды.

    “по результатам ZF2 оказался хуже чем ZF1. Профилировка показала, что идёт слишком много вызовов компонента ZF/DI (Dependency Injection). Так сказать — плата за гибкость”.

    Очень грустно читать подобные отзывы. Особенно в свете перспективы рефакторинга одного приложения, написанного на очень старой версии ZF. Вот и выбирай: вторая сырая версия или последний стабильный релиз первой ветки…

    1. Пожалуйста, Василий! Блин, мне тоже не очень понравилось это дело. Не думал, что ZF2 такой сырой сейчас. В общем в прод его пока ставить нельзя. По поводу Symfony2 – там twig клёвый, но тормозной. Я тут присматриваюст к PhalconPhp. Но пока не щупал.

Leave a Reply to Андрей Токарчук Cancel reply