PHP Meetup

Святковий PHP Meetup



    
Святковий PHP Meetup

У передчутті свят команда Avivi Academy підготувала особливу зустріч. Три лекції, присвячені тонкощам використання PHP коду на всіх етапах розробки. За допомогою чого правильно тестувати та залишатись SOLIDним розробником.

Як в онлайн-режимі розвивати команду, а найголовніше, як полегшити життя верстальщика. Про все це і навіть більше читайте далі.

Розпочав лекторій веб-розробник (PHP/Ruby/JS), автор фреймворку Codeception — Михайло Бондарчук. Автор книги “О паттернах в мышлении”. Спікер у PHPKonf (Стамбул, 2015), RSConf (Мінськ, 2016), J&Beyond (Барселона, 2016), Голландській PHP Конференції (2016). Його основна місія — популяризувати тестування серед розробників.

Тема лекції:

Що таке BDD та при чому тут плюмбуси?

Коли до компанії звертається замовник для створення веб-додатку, найскладніше всього знайти взаєморозуміння між розробниками та клієнтом. Одні та другі, часто, розмовляють на різних мовах і не розуміють, що таке плюмбуси або JSQ. На початку спільної роботи одразу з’являються три основні проблеми: специфікація, комунікація, кейси. Для вирішення цих задач, на допомогу приходить BDD. Методологія розробки веб-додатку, націлена на продукт взаємодії. Працює на Agile. Засновник Ден Норз, який зрозумів, що тести верстальщиків не ефективні.

«BDD стрімко увійшов в світ розробки. Але чомусь не з того кінця. Більшість розробників вважають, що BDD це Behat, Cucumber або тестування, але ця методологія більше відноситься до менеджмента», — пояснює Михайло.

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

«Існує принцип Трьох Амігосів, на переговорах повинні бути три людини: замовник / бізнес-аналітик, розробник і тестувальник. Ще може бути перекладач, але він не рахується».

Завдяки комунікації на переговорах команда може скласти зрозумілий для кожного сценарій. Це модель визначення системи користувачів. Він складається із трьох етапів: які умови спочатку, які дії будуть зроблені та що буде отримано в результаті. Навіть після цього, професійний тестувальник повинен задавати питання для будь-якої можливої ситуації при роботі з додатком.

Починати описувати сценарій потрібно на мові Cherkin (мова форматування, завдяки якій можна використовувати українську та російську мови). Потрібно прописувати позитивні та негативні варіанти сценарію. Може викликати інформаційний шум.

BDD допомагає працювати зі сценаріями та тестами в PHP одночасно. Кожен пункт сценарію прописується в коді так, щоб його можна було протестувати. Таким чином, розробник отримує вагомий тест, який відповідає за кожен пункт прописаного сценарію. Команда знає, що робить тест, а замовник бачить роботоспроможність системи. Найкраще, спочатку визначити специфікацію, а потім проводити тестування. Воно може проводитись на двох рівнях: User lvl, Domaine lvl, в залежності від специфікації проекту. Завжди перевіряйте код на баги, недопрацвання etc.

BDD підходить не для кожного проекту. Є два приклада використання BDD: готовий бізнес або старт-ап. Для другого, методологія не буде дуже доречною. А от у роботі із бізнесом BDD допомогає його автоматизувати. Проте, не кожен замовник готовий витрачати багато часу на прописування сценаріїв та вигадування аспектів роботи додатку.

Більше про плюмбуси та тести:

Наступним прийняв святкову естафету можливостей PHP Микола Паламарчук. Розробник в UpWork, 10 років досвіду в web development. Спікерські практики в WebCamp: PHP (Одеса, 2016) та PHP fwdays (Київ, 2015, 2017).

Тема лекції:

Be SOLID

Комп’ютер та людина — невід’ємні частки одного цілого, які взаємодоповнюють один одного. А програмісти — перекладачі людської мови на мову транзисторів. Із таких тезисів розпочав свою лекцію Микола Паламарчук. Верстальщики розуміють мову модулів та спрощують розробку, наприклад, за допомогою SOLID.

    Принцип SOLID розшифровується з 5-ти абревіатур:
  • SRP - доступні готові рішення підходять не всім елементам;
  • OCP - приховуємо складні деталі, відкриваємо прості інтерфейси;
  • LSP - модулі повинні пам’ятати із чого вони складаються;
  • ISP - складні інтерфейси ускладнюють розуміння;
  • DIP - модулі не повинні знати один про одного.

«Всі структурні дії коду у SOLID нагадують життя та думки розробника. Або конструктор LEGO» — пояснює Микола.

Зібрати SOLID можна не тільки у конструкторі, але і за допомогою паттернів ООП. Для цього варто знати, що у кожного класу повинні бути свої окремі функції, які не залежатимуть від класу інтерфейсу. Деталі реалізації приховані, а складні інтерфейси розділені між собою. Спадкоємці поводять себе так само, як їхні пращури.

SOLID добре застосовується із фреймворками та модулями. У цьому союзі SOLID може контролювати кожен окремий модуль та його задачі і розділяти між собою елементи дуже складного інтерфейсу.

«Якщо ми беремо два плагіни і робимо між ними зв’язок, то для цього використовуємо мікросервіси. І як не дивно, SOLID чудово із ними поєднується» —, розповідає лектор.

В мікросервісах також використовується SOLID, але не як об’єкт, а як функція. Навіть кожен розробник побудований на принципах SOLID. Наприклад, кожен учасник проекту виконує свою роботу, замовник не знає всіх аспектів роботи, а тім-лід “віддувається” за всіх:)

Завдяки принципам SOLID можна розробляти модульні додатки на PHP, а також використовувати інші принципи розробки. А найголовніше - не обов’язково використовувати приципи ОПП SOLID, щоб заробляти гроші.

Фінальна лекція у Avivi Academy перевірена реальним професійним досвідом Full Stack Web-Developerа — Дмитра Карповича.

Тема лекції:

Огляд екосистеми РНР-проектів та кращих практик

Життя кожного проекту для верстальщиків складаєтсья із трьох основних етапів: розробка, деплоймент, супорт. Для того, щоб полегшити життя, найкраще всього використовувати PHP із фреймворками (Laravel, Phalcon etc.). А для того, щоб зекономити час, потрібно знати основи PHP standards recomendations.

«Ці стандарти, у майбутньому, допоможуть не перевчатись з одного фреймворка до іншого. І це підійде як для логування, так і для роботи в команді», — пояснює Дмитро.

Щоб не перетворювати свій репрезиторій на папку з ренедером потрібно використовувати Composer Dependensies. Це одна із найголовніших частин екосистеми PHP.

Найкраще та найзручніше програмне забезпечення для написання коду PhpStorm. Підтримка та оновлення програми дозволяє ефективно писати свій код. Вагомий мінус для компаній, велика вартість оплати софту.

Тестування є невід’ємною частиною розробки будь-якого додатку і при роботі з PHP найкраще робити його за допомогою Codeception.

Основи PHP standards recomendations заключаються не тільки в полегшенні життя розробників, але у налаштувані загальної атмосфери у команді. Під час роботи над проектом є багато зручних фіч, які допоможуть в розробці.

«Найкращою рекомендацією для успішної командної роботи залишається дружити. І використовувати Git, а ще краще Git Flow», — ділиться Дмитро.

Окрім команди IT-розробників, у кожному проекті є ще менеджери та замовники. Для зміни завдань, планів чи правок найкраще використовувати дошки Trello або Jira. Окрім софту для менеджменту, задля успішної комунікації між кожним учасником процесу потрібно вміти користуватись месенджерами. А головне, знати якими. Лектор радить використовувати такі платформи як Telegram, Workpalace або Slack. І золоте правило для кожної команди - тімібілдінг.

Після етапу розробки, в житті проекту наступає етап запуску на серевер. Для цього найкраще використовувати Docer composе або HachiCorp.

Тема лекції:

Огляд екосистеми РНР-проектів та кращих практик

Після того, як проект запущений на сервері, його життя не закінчується, а набирає обертів. На цьому етапі від замовників можна почути скарги на те, що “якась кнопочка не працює”. Тут у дію вступає підтримка коду. Для моніторингу помилок у коді PHP оптимальним буде використання програм Sentry та New Relic.

Та цим, життя проекту в екосистемі PHP не закінчується. Що ж відбувається далі, дивіться у повній версії лекції:

«Випадково отримав можливість відвідати PHP MeetUp і був приємно здивований тим, що, навіть незважаючи на головний біль і те, що я не є php-розробником, все ж таки було дуже цікаво слухати доповіді хлопців з Києва. Дякую доповідачам за плюмбуси з Ріка і Морті в доповіді по bdd, про кращі засоби і практики в php розробці в другій доповіді, за метафоричні порівняння використання підходу solid + хорошу порцію айтішного гумору - Ви зробили мені вечір! Те, чим ви займаєтесь - це реально дуже класно. Буду з нетерпінням чекати на наступну 'випадкову' можливість знову прийти до вас у гості. Ви молодці!», — ділиться враженнями на нашій сторінці у Facebook Олександр Широкий.

Дякуємо кожному, хто хоче ставати кращим! І не забуваємо, що у новому році подій та курсів ставатиме тільки більше. Чекаємо на вас у Avivi Academy.


Як Нас Знайти

Контакти

м. Хмельницький

вул. Подільська, 109

Пiдписатись на Оновлення