Відгук на Symfony Camp 2016

29 жовтня у Києві ось уже в сьомий раз відбулася конференція під назвою Symfony Camp 2016, яка збирає сотні симфоністів з усієї України та країн-сусідів. Сама конференція проходила, як і зазвичай, в готелі «Козацький», який знаходиться в центрі Києва на Майдані Незалежності.

Це була моя перша конференція таких масштабів, тому я їхав із великими очікуваннями та бажанням послухати цікаві доповіді, які підготували організатори. З нашої студії конференцію відвідало аж шестеро людей.

Також варто зазначити, що студія Stfalcon.com виступала спонсором конференції. Окрім того, ми підготували спеціальні футболки, щоб якось виділятись серед слухачів конференції та для того, щоб привернути увагу сильних симфоністів, які шукають цікаву роботу :)

Цього року організатори підготували 7 доповідей, 2 з них — англійською.

Pragmatic APIs 101

Першу доповідь представив Вільям Дюранд (William Durand) який є одним із котриб’юторів оpen source проекту FriendsOfSymfony та робить внесок у інші PHP-проекти. Він детально пояснив, що таке REST, навів багато прикладів різних ресурсів для розробки API, приклади коду та різні можливості для тестування API. Мабуть, найбільше усіх вразила його теза про те, що RESTful API занадто складний для відтворення у реальному житті, а усі ми у 99,99% випадків не в повній мірі реалізовуємо вимоги до нього.

Применение CQRS и EventSourcing в DDD-проекте

Далі виступали Степан Мозира та Ігор Лубенець. Вони розповіли про свій досвід використання CQRS та EventSourcing для rebuid’y legacy коду. Доповідачі чітко окреслили причини переписування старого проекту, труднощі, які у них виникли під час роботи та, звичайно, розповіли про отриману від цього користь. Сама доповідь була побудована у вигляді дискусії, тому всі відвідувачі уважно слухали, а інколи і ставили запитання щодо архітектури проекту, що їх найбільше турбували.

Behat internals for advanced usage

Наступну доповідь представив Сергій Поліщук, розповівши про написання тестів на Behat. Він розказав про деякі нюанси, які можуть виникати під час роботи з Behat, розповів, як додати свої елементи та їх поведінку і поділився нюансами роботи з фікстурами. Окрім того, Сергій наводив багато прикладів зі своїх проектів та давав поради щодо написання UI-тестів. Доповідь виявилася дуже актуальною для мене, бо сам я тільки недавно почав активно писати тести на Behat. Тому дякую Сергію за корисну інформацію.

Real-Time Web applications with Websocket

Наступним виступав Станіслав Зозуля з доповіддю про використання websocket для real-time додатків. Він детально розповів, що таке Real-Time Web, для чого його використовують і якими є механізми його реалізації. Далі розповідь шла про WebSocket та шляхи його реалізації на PHP. Після представлення теоретичної частини почалась практична частина доповіді, на якій Станіслав демонстрував чат-кімнату, написану з використанням Pushpin.

Maintainable + Extensible = Clean... yes, Code!

Далі виступав гість з Хорватії Antonio Peric, який розповідав про нюанси та правила написання чистого коду. З самого початку він пояснив різницю між поганим і хорошим кодом, навів приклади дуже-дуже поганого коду. Після цього розповів про написання чистого коду та основні правила й тези, що стосуються цього:

  • правильне іменування;
  • дотримання стандартів кодування;
  • правильне вирівнювання коду;
  • по можливості не використовувати блок else;
  • написання невеликих методів\класів;
  • використання Exceptions;
  • правильне використання паттернів;
  • слідування правилам закону Деметри;
  • правильне написання коментарів, де вони чітко потрібні;
  • використання різних утиліт для аналізу коду.

Загалом, завдяки цій доповіді я освіжив в пам’яті правила написання чистого коду, а також вирішив, що надалі намагатимусь дотримуватися закону Деметри :)

Тестирование как панацея для жизни и развития

Наступним виступав Євгеній Кузьмін, який намагався знайти відповідь на питання: «А кому портрібні ці авто-тести?». Свою доповідь Євгеній почав з розповіді про страшний legacy-проект, який довелось доробляти. У проекті, який прийняв доповідач, зовсім не було ніяких тестів, тому кожна нова фіча займала багато часу та спричиняла появу великої кількості багів у інших частинах проекту. Тому Євгеній почав писати тести і тим самим переписував проблемні частини коду.

Першими, як і належить, були Unit-тести. Далі писались функціональні та UI-тести. Усю теоретичну частину доповідач майстерно поєднував з практичною, наводячи приклади коду для тестування. Також у своїй доповіді автор зачепив тему еталонних даних і розповів, де ж ці дані взяти. Загалом, доповідач розказав про всі етапи тестування, потрібні для написання зрілого проекту. Доповідь мені сподобалась, і вже в який раз я переконався у важливості покриття проекту тестами.

Dockerize with docker compose, CI then Deploy the Symfony app

Останнім виступом на Symfony Camp 2016 стала доповідь одного із організаторів, а саме Олександра Демченка, про автодеплой додатків на Symfony з використанням codeship та elastic beanstalk. Олександр детально розповів про докер-контейнери і чому потрібно використовувати саме докер, а також на практиці показав основи роботи з ним. Доповідь була доволі корисною для мене, тому що на практиці я ще не використовував докер, але усвідомив, що у вільний час потрібно спробувати попрацювати з ним.

На завершення конференції організатори розіграли різноманітні призи, серед яких чашки, футболки, ліцензії на PHPStorm. Окрім того, студія Stfalcon.com розігрувала свої призи — декілька фітнес-браслетів mi band та портативні батареї.

Тож хочу подякувати організаторам за чудово проведену конференцію та цікавих доповідачів. Уже чекаю на наступний Symfony Camp у 2017 році :)