63
Як прокачати трьох студентів за п’ять тижнів Artem Genvald Km Code'n'Coffee #12 26.02.2015

Як прокачати трьох студентів за п’ять тижнів

Embed Size (px)

Citation preview

Page 1: Як прокачати трьох студентів за п’ять тижнів

Як прокачати трьох студентів за п’ять тижнів

Artem Genvald

Km Code'n'Coffee #1226.02.2015

Page 2: Як прокачати трьох студентів за п’ять тижнів

Я очікував на щось таке...

Page 3: Як прокачати трьох студентів за п’ять тижнів

Або таке...

Page 4: Як прокачати трьох студентів за п’ять тижнів

Але отримав таке :)

Page 5: Як прокачати трьох студентів за п’ять тижнів

Опитування студентів

Оцініть свої знання за шкалою від 0 до 10. Де:

0 - абсолютно нічого не знаю10 - знаю бездоганно

Page 6: Як прокачати трьох студентів за п’ять тижнів

Біллі 0 1 2 3 4 5 6 7 8 9 10

PHP

JavaScript

CSS

HTML

PHP-Framework Symfony2

Doctrine ORM

PHP best practice

PhpStorm

Шаблонізатор TWIG

SQL

MySQL DB

Git, GitHub Workflow

Design Patterns

TDD, PHPUnit

BDD, Behat & Mink

Web-Development Workflow

Page 7: Як прокачати трьох студентів за п’ять тижнів

Віллі 0 1 2 3 4 5 6 7 8 9 10

PHP

JavaScript

CSS

HTML

PHP-Framework Symfony2

Doctrine ORM

PHP best practice

PhpStorm

Шаблонізатор TWIG

SQL

MySQL DB

Git, GitHub Workflow

Design Patterns

TDD, PHPUnit

BDD, Behat & Mink

Web-Development Workflow

Page 8: Як прокачати трьох студентів за п’ять тижнів

Діллі 0 1 2 3 4 5 6 7 8 9 10

PHP

JavaScript

CSS

HTML

PHP-Framework Symfony2

Doctrine ORM

PHP best practice

PhpStorm

Шаблонізатор TWIG

SQL

MySQL DB

Git, GitHub Workflow

Design Patterns

TDD, PHPUnit

BDD, Behat & Mink

Web-Development Workflow

Page 9: Як прокачати трьох студентів за п’ять тижнів

Як організувати практику, щоб було цікаво і студентам, і керівнику

● Придумати цікаве і корисне завдання

● Придумати цікавий робочий процес

● Викладатись на максимум і вимагати цього ж

● Давати не тільки критику, але і похвалу

● Краще багато маленьких завдань, ніж одне велике

● Не скупитись ділитись знаннями

Page 10: Як прокачати трьох студентів за п’ять тижнів

Про проект

Lost and Found - Бюро знахідок

● Подача/перегляд оголошень

● GPS-координати знайденої/загубленої речі

● Пошук співпадінь, прив’язка до категорій

● Соціалізація

● https://github.com/stfalcon-studio/lost-and-found

Page 11: Як прокачати трьох студентів за п’ять тижнів

Рефакторити доводилось не тільки код, але й робочі місця

Page 12: Як прокачати трьох студентів за п’ять тижнів

До рефакторинга

Page 13: Як прокачати трьох студентів за п’ять тижнів

Після рефакторинга

Page 14: Як прокачати трьох студентів за п’ять тижнів

Робота в команді

Page 15: Як прокачати трьох студентів за п’ять тижнів
Page 16: Як прокачати трьох студентів за п’ять тижнів

Trello

Page 17: Як прокачати трьох студентів за п’ять тижнів

Маркуваннятікетів

кольорами

Page 18: Як прокачати трьох студентів за п’ять тижнів

З першого поглядувидно стан справ

Page 19: Як прокачати трьох студентів за п’ять тижнів

Перший тиждень● Уроки по Git на Code School● Реєстрація на GitHub● Розгортання Symfony● Code Style● phpDocumentor● Проектування бази даних● Semantic Versioning● Опис перших сутностей та міграції● Перший робочий функціонал: форма для

додавання речей, адмінка

Page 20: Як прокачати трьох студентів за п’ять тижнів

Code Style

Page 21: Як прокачати трьох студентів за п’ять тижнів

Што, кря…?

Page 22: Як прокачати трьох студентів за п’ять тижнів

Code Style

● PSR-0, PSR-1, PSR-2, PSR-3, PSR-4

● Symfony Coding standards

● TWIG Coding standards

● phpcs

Page 23: Як прокачати трьох студентів за п’ять тижнів

RTFM! Читаємо документацію

Page 24: Як прокачати трьох студентів за п’ять тижнів

Batsignal

Page 25: Як прокачати трьох студентів за п’ять тижнів

Читаємо документацію! Кря...

Page 26: Як прокачати трьох студентів за п’ять тижнів

Другий тиждень● Версіонування даних● Сторінка перегляду окремої речі● Доробки в адмінці (batch actions, плюшки від Sonata)● Підключення Leaflet.js● Шаблонізатор TWIG● ORM, DBAL● FormType в Symfony● Сесія, флеш-повідомлення● Валідація● Різні маркери категорії● YAGNI, KISS, DRY● Реєстрація користувачів через Facebook● Сторінка профілю користувача● Можливість позначення території для загубленої речі

Page 27: Як прокачати трьох студентів за п’ять тижнів

Leaflet Draw

Page 28: Як прокачати трьох студентів за п’ять тижнів

Третій тиждень● PHPUnit● DoctrineExtensions: Tree● Popus on markers● Emails● Вивід карти загублених/знайдених речей● AJAX● Виправлення багів● Service Container в Symfony2● Як слідкувати за інформацією в світі PHP?● Розділення функціоналу по ролям● F.A.Q.

Page 29: Як прокачати трьох студентів за п’ять тижнів

Skype >>> Slack

Page 30: Як прокачати трьох студентів за п’ять тижнів

Підключаємо сервіси оцінки якості коду

Page 31: Як прокачати трьох студентів за п’ять тижнів

● Travis CI● Scrutinizer● Codecov● Packagist● VersionEye● SensioLabs Insight● HHVM● Gitter

Page 32: Як прокачати трьох студентів за п’ять тижнів

Code Coverage

Page 33: Як прокачати трьох студентів за п’ять тижнів

Scrutinizer

Page 34: Як прокачати трьох студентів за п’ять тижнів

SensioLabs Insight

Page 35: Як прокачати трьох студентів за п’ять тижнів

Парне програмування

Page 36: Як прокачати трьох студентів за п’ять тижнів

Четвертий тиждень● Консольна команда для пошуку співпадінь● Events and Event Dispatcher● Запит контактів автора оголошення● Форма зворотнього зв’язку● Завантаження фотографії для оголошень● Переклади інтерфейсу● Статистика загублених і знайдених речей в

бекенді● Вивчення Behat та перші тести● SonataSeoBundle● Корисні фічі PhpStorm

Page 37: Як прокачати трьох студентів за п’ять тижнів

Scrum

Page 38: Як прокачати трьох студентів за п’ять тижнів

Team Lead

Page 39: Як прокачати трьох студентів за п’ять тижнів

sКРЯm

● короткі спрінти: 3-4 дні для гнучкості● тікети на команду, в команді тікети розподіляють

самостійно● тім-лід приймає пулл-реквести в свій бранч● в кінці спрінта - демо● я приймаю тільки один великий пулл-реквест в

develop в кінці спрінта

Page 40: Як прокачати трьох студентів за п’ять тижнів

П’ятий тиждень● Refactoring

● Кастомізація адмінки

● Покриття тестами існуючого функціоналу

● Верстка

● Повідомлення між користувачами

● SonataMediaBundle

● CSRF tokens

● RESTful API

Page 41: Як прокачати трьох студентів за п’ять тижнів

Story points

● Перший тиждень - 41

● Другий тиждень - 85

● Третій тиждень - 63

● Четвертий тиждень - 84,5

● П’ятий тиждень - 33,5...

Page 42: Як прокачати трьох студентів за п’ять тижнів

Типові баги, факапи, фейли

Page 43: Як прокачати трьох студентів за п’ять тижнів

Типові баги, факапи, фейли

● закомітили вендори і кеш

● код з однієї фічі попадав в бранч іншої

● не переглядали diff під час коміту, попадав

зайвий код

● вперто не видаляли закоментований код

● зламані міграції

Page 44: Як прокачати трьох студентів за п’ять тижнів
Page 45: Як прокачати трьох студентів за п’ять тижнів

Повторне опитування студентів в кінці практики

Page 46: Як прокачати трьох студентів за п’ять тижнів

Біллі 0 1 2 3 4 5 6 7 8 9 10

PHP

JavaScript

CSS

HTML

PHP-Framework Symfony2

Doctrine ORM

PHP best practice

PhpStorm

Шаблонізатор TWIG

SQL

MySQL DB

Git, GitHub Workflow

Design Patterns

TDD, PHPUnit

BDD, Behat & Mink

Web-Development Workflow

Page 47: Як прокачати трьох студентів за п’ять тижнів

Віллі 0 1 2 3 4 5 6 7 8 9 10

PHP

JavaScript

CSS

HTML

PHP-Framework Symfony2

Doctrine ORM

PHP best practice

PhpStorm

Шаблонізатор TWIG

SQL

MySQL DB

Git, GitHub Workflow

Design Patterns

TDD, PHPUnit

BDD, Behat & Mink

Web-Development Workflow

Page 48: Як прокачати трьох студентів за п’ять тижнів

Діллі 0 1 2 3 4 5 6 7 8 9 10

PHP

JavaScript

CSS

HTML

PHP-Framework Symfony2

Doctrine ORM

PHP best practice

PhpStorm

Шаблонізатор TWIG

SQL

MySQL DB

Git, GitHub Workflow

Design Patterns

TDD, PHPUnit

BDD, Behat & Mink

Web-Development Workflow

Page 49: Як прокачати трьох студентів за п’ять тижнів

Статистика RescueTime від Діллі

Page 50: Як прокачати трьох студентів за п’ять тижнів

Бейджики

Page 51: Як прокачати трьох студентів за п’ять тижнів

Біллі● копіпастер level 2● мауглі● пінг-понгер● merge-conflict● вотЕтаПаварот● йошкін кот level 2● feature-inventor level 2● renamer…● селфі-спамер● sprint #1 done● sprint #2 done

Page 52: Як прокачати трьох студентів за п’ять тижнів

Віллі● pair-programming● копіпастер level 2● F.A.Q. (friendly)● йошкін кот● sprint #1 done● sprint #2 done

Page 53: Як прокачати трьох студентів за п’ять тижнів

Діллі● javascript-slave● pair-programming● монетизатор● Робін● sКРЯm-master● Behat-сапер● sprint #1 done● sprint #2 done

Page 54: Як прокачати трьох студентів за п’ять тижнів

Чуваки на правильному шляху

Page 55: Як прокачати трьох студентів за п’ять тижнів

Перший отриманий хабар :)

Page 56: Як прокачати трьох студентів за п’ять тижнів

Плани на наступну практику● Покращення алгоритму пошуку співпадінь● API● Покращений пошук● Кластеризація маркерів при зумі● Публікація в соціальні мережі● Рейтинг користувачів, бейджики● Нотифікація про знайдені поряд речі● Прив’язування оголошення до події● Функціонал блогу● RabbitMQ?● ElasticSearch?● MongoDB?

Page 57: Як прокачати трьох студентів за п’ять тижнів

Як я прокачав себе

Page 58: Як прокачати трьох студентів за п’ять тижнів

Як я прокачав себе

● time management

● project management

● оновив свої знання

● вивчив те, що не знав

● на скільки добре я пояснюю матеріал?

Page 59: Як прокачати трьох студентів за п’ять тижнів

Практика закінчилась

Тепер я вільний!

Page 60: Як прокачати трьох студентів за п’ять тижнів

А де ж Поночка? :)

Page 61: Як прокачати трьох студентів за п’ять тижнів

А ось вона =)

Яна - HR at Stfalcon.com

Page 62: Як прокачати трьох студентів за п’ять тижнів
Page 63: Як прокачати трьох студентів за п’ять тижнів

Happy End

To be continued...