GitHub repository: https://github.com/stfalcon-studio/lost-and-found
Відео з презентації: https://www.youtube.com/watch?v=3EgilE_fpkI
До нас на студію прийшли три студенти проходити практику. Потрібно було дати їм завдання і організувати навчальний процес. Розробляли проект "Бюро знахідок" на PHP Framework Symfony2. Ділюсь своїм досвідом, як я це зробив і що в результаті вийшло.
Imagine that you've been given an old project, a Food Delivery app, with the backend written in Laravel 8 and PHP 8.0. The web and mobile interfaces communicate with the backend through an API, but it's currently performing poorly with an average response time of 600ms. The product owner has requested you to optimize the performance and wonders if it's possible to reduce it by a factor of 10. What would you do?
Topics to be Covered:
Nginx Cache
Rememberable package
Redis Cache
Queues: Redis/SQS
Horizon
Octane: Swoole / Roadrunner
Upgrading PHP and Laravel
While you may be familiar with most of these points and possibly already using them, the focus will be on ensuring that you're using them correctly and effectively. In a real-world example, I will demonstrate how we managed to reduce average response times by 10 times. We'll explore what's hidden under Laravel's package magic and discuss ways to mitigate the negative impact on project performance.
By the end of this performance optimization session, you will not only have improved your performance but also gained a deeper understanding of how to utilize the Laravel framework more efficiently.
Oleksandr Brychuk "UniSender architecture. Growth from 100kk to 1.5kkk letter...Fwdays
Architecture in 2013 comes from scratch, so is there any hope for the future? Business is primarily about money, but what if the balance between technical improvements and a beautiful look is not maintained.
"Emergency 2015" - the limit after which you need to make drastic changes in the technical component. Carte blanche from business and a rough idea of where to start the transformation.
Why did you choose to go through refactoring? Why did you decide to split the monolith into microservices in 2015, when the hype was just emerging, instead of SOA and monolith? How did you choose where to start? How AWS S3 defeated Ceph and helped save the nerves and funds of DevOps? What nodes of the system have provided us with the opportunity to grow 10-15 times in 5 years without spending much more money on vertical scaling? Stable 1.5 billion letters in 2020.
Павло Юрійчук — Перехід на Angular.js. Howto
1.Що таке Angular.JS на думку Менеджера і Розробника
2. Екосистема для розробки на Angular.JS
3. Причини для переходу і непереходу на Angular.JS
4. Предметна область, поради, книги
5. Ознаки, що Ви на вірному шляху
Цю презентацію значно доповнює схожа, але трохи інша. англомовна презентація Павла: "Pavlo Yuriychuk — Switching to Angular.js. Silk way"
Imagine that you've been given an old project, a Food Delivery app, with the backend written in Laravel 8 and PHP 8.0. The web and mobile interfaces communicate with the backend through an API, but it's currently performing poorly with an average response time of 600ms. The product owner has requested you to optimize the performance and wonders if it's possible to reduce it by a factor of 10. What would you do?
Topics to be Covered:
Nginx Cache
Rememberable package
Redis Cache
Queues: Redis/SQS
Horizon
Octane: Swoole / Roadrunner
Upgrading PHP and Laravel
While you may be familiar with most of these points and possibly already using them, the focus will be on ensuring that you're using them correctly and effectively. In a real-world example, I will demonstrate how we managed to reduce average response times by 10 times. We'll explore what's hidden under Laravel's package magic and discuss ways to mitigate the negative impact on project performance.
By the end of this performance optimization session, you will not only have improved your performance but also gained a deeper understanding of how to utilize the Laravel framework more efficiently.
Oleksandr Brychuk "UniSender architecture. Growth from 100kk to 1.5kkk letter...Fwdays
Architecture in 2013 comes from scratch, so is there any hope for the future? Business is primarily about money, but what if the balance between technical improvements and a beautiful look is not maintained.
"Emergency 2015" - the limit after which you need to make drastic changes in the technical component. Carte blanche from business and a rough idea of where to start the transformation.
Why did you choose to go through refactoring? Why did you decide to split the monolith into microservices in 2015, when the hype was just emerging, instead of SOA and monolith? How did you choose where to start? How AWS S3 defeated Ceph and helped save the nerves and funds of DevOps? What nodes of the system have provided us with the opportunity to grow 10-15 times in 5 years without spending much more money on vertical scaling? Stable 1.5 billion letters in 2020.
Павло Юрійчук — Перехід на Angular.js. Howto
1.Що таке Angular.JS на думку Менеджера і Розробника
2. Екосистема для розробки на Angular.JS
3. Причини для переходу і непереходу на Angular.JS
4. Предметна область, поради, книги
5. Ознаки, що Ви на вірному шляху
Цю презентацію значно доповнює схожа, але трохи інша. англомовна презентація Павла: "Pavlo Yuriychuk — Switching to Angular.js. Silk way"
Добірка порад про те, як можна покращити автоматизовані Web UI тести написані на Python.
Посилання:
1 - https://roman-pobotin.herokuapp.com/
2 - https://coggle.it/diagram/X_LGRlQdf7sXQu4Q/t/start-as-qa
3 - http://aqa-topics.herokuapp.com/
4 - https://github.com/Goraved/Typhon-web-UI
"Incremental rollouts and rollbacks with business metrics control at every st...Fwdays
Let's talk about the types and methods of deployments, the problems faced by engineers and ops during deployments. Possible ways of control and different approaches to it. How to choose metrics that should be monitored during releases.
Using Argo Rollouts as an example, we will analyze cases of monitoring technical and business metrics, forecasting, and rollback automation.
Огляд технік актуальних масових атак із використанням фішингових розсилок. Механізми доставки шкідливого коду. Поширені типи приманок та способи їх знешкодження. Помилки, яких припускаються ІТ та ІБ фахівці при реагуванні на інциденти. Те, про що забувають.
Скрипти, powershell, вразливості MS Office. Типові ознаки malware та робота з ними.
JS Fest 2019/Autumn. Роман Савіцький. Webcomponents & lit-element in productionJSFestUA
В далекому 2016 році світ почув про вебкомпоненти, а одна ще тоді не дуже розумна команда, якій приходилось верстати дуже багато, вирішила спробувати те все в продукті, який би допоміг зменшити верстку. Про біди вебкомпонентів відомо всім, але про те, як вижити і дійти з альфи до стабільної версії знають не багато. Використання lit-element & lit-html і вирішення наболілих проблем, ось справня ціль моєї доповіді. Happy end обіцяю.
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...Collaborator.pro
Презентація Ольги Резнікової з SEO-конференції Collaborator, що відбулася 20 жовтня 2023 року.
Тези доповіді:
1. Болі аутрічерів та керівників команд з лінкбілдингу: трудомісткі завдання та витрати на інструменти
2. Як використовувати Google таблиці в аутріч-команді та які завдання можна автоматизувати
3. Автоматизація процесу аутріч та контроль витрат для керівника команди
4. Автоматизація проведення досліджень для лінкбілдерів
5. Як використовувати Python в аутріч-процесі
6. Приклади скриптів
7. Як впровадити автоматизацію у вашій команді
Відео доповіді дивіться на Youtube-каналі Collaborator
Про спікерку:
Ольга має понад 5 років досвіду в SEO і Digital-маркетингу. Починала з фрилансу, потім працювала інхаус. У 2022 році керувала відділом лінкбілдінгу в Promodo. Наразі працює у iGaming агенції на Мальті. Прагне до постійного розвитку hard і soft skills.
We at MacPaw practice the approach of service teams. And as one of such teams, the responsibility for delivering software across various environments, from testing to production, falls on our shoulders. In this presentation, I will explain how we are trying to standardize our approach to software delivery in environments with diverse tech stacks and development approaches. The presentation will cover methods such as GitOps, dynamic environments, and event-based software delivery.
Юрий Грузинский. Як самописні скрипти і методики допомагають в роботі по SEO:...Octopus Events
1. Навіщо при роботі по SEO працювати за напіврічними стратегіями та як правильно їх будувати?
2. Кейс 1: як неочевидні дані можуть впливати на конверсію? Скрипт по сбору статистики погодних умов для проекту в агротематиці.
2. Кейс 2: як у декілька кліків проаналізувати та отримати повний список всіх логів на багатосторінковому сайті? Скрипт, написаний за допомогою Python та Jupyter Notebook.
3. Кейс 3: оперативна заміни мета-тегів на нестабільних сторінках сайту. Скрипт по зміні динамічних мета-тегів на сайті кінотеатру.
4. Кейс 4: функціонал адміністрування SEO-задач на сайті. Технічне завдання для додаткових фіч адмінки сайту, щоб спросити роботу з ручними та рутинними задачами.
5. Кейс 5: як зробити репрезентативні прогнози на этапі пресейлу. Методологія Олексія Чекушина та автоматизовані скрипти від Netpeak — прогнози як в сина маминої подруги.
6. Кейс 6: автоматизований прорахунок ссилочної та їх історична вартість. Скрипт, з допомогою якого можно прорахувати вартість ссилочного профілю та визначити точний бюджет.
7. Кейс 7: як автоматично налаштувати відправку урлів на переіндексацію. Скрипт, що визначає сторінки, які необхідно відправити на переіндексацію та автоматизувати краулінговий бюджет.
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...Fwdays
Developing and managing large projects can become a challenge for developers. This presentation will show how to overcome these challenges, using the example of one of the largest open-source PHP projects. We will discuss approaches to code organization, coding standards, effective tools, as well as the role of code review and testing. We won't forget about design patterns either.
Як робити рефакторинг в продукті з бурхливою історієюAleksandr Brychuk
— Ознаки, що проект потребує рефакторингу (крім кількості FAQ, що каже команда, коли дивиться на код). Вплив рефакторингу на бізнес — все стає простіше. Чому б не переписати «з нуля». Рефакторинг під час розробки вкрай дрібними кроками.
— Чотири ознаки, що пора зупинитися.
— Рефакторинг по-бойскаутські: «Залишай місце, з якого пішов, кращим, ніж воно було до тебе. При виконанні будь-якої задачі зменшуй технічний борг».
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....HOWWEDOIT
— Ознаки, що проект потребує рефакторингу (крім кількості FAQ, що каже команда, коли дивиться на код). Вплив рефакторингу на бізнес — все стає простіше. Чому б не переписати «з нуля». Рефакторинг під час розробки вкрай дрібними кроками.
— Чотири ознаки, що пора зупинитися.
— Рефакторинг по-бойскаутські: «Залишай місце, з якого пішов, кращим, ніж воно було до тебе. При виконанні будь-якої задачі зменшуй технічний борг».
"Request Lifecycle at Prom.ua", Vitaliy KharytonskiyFwdays
A detailed journey of a single user request through prom.ua infrastructure including hardware, networks, services, and databases.
This talk will feature an explanation of our architecture and reasons behind its current state and external and internal challenges which arise in a high load project built completely on premise.
Практика студентів на складі одягу H&M у Польщіtetiana1958
Пропонуємо студентам Державного біотехнологічного університету активно поринути у аспекти логістики складу одягу H&M.
Метою практики є не тільки отримання теоретичних знань, а й їх застосування практично.
More Related Content
Similar to Як прокачати трьох студентів за п’ять тижнів
Добірка порад про те, як можна покращити автоматизовані Web UI тести написані на Python.
Посилання:
1 - https://roman-pobotin.herokuapp.com/
2 - https://coggle.it/diagram/X_LGRlQdf7sXQu4Q/t/start-as-qa
3 - http://aqa-topics.herokuapp.com/
4 - https://github.com/Goraved/Typhon-web-UI
"Incremental rollouts and rollbacks with business metrics control at every st...Fwdays
Let's talk about the types and methods of deployments, the problems faced by engineers and ops during deployments. Possible ways of control and different approaches to it. How to choose metrics that should be monitored during releases.
Using Argo Rollouts as an example, we will analyze cases of monitoring technical and business metrics, forecasting, and rollback automation.
Огляд технік актуальних масових атак із використанням фішингових розсилок. Механізми доставки шкідливого коду. Поширені типи приманок та способи їх знешкодження. Помилки, яких припускаються ІТ та ІБ фахівці при реагуванні на інциденти. Те, про що забувають.
Скрипти, powershell, вразливості MS Office. Типові ознаки malware та робота з ними.
JS Fest 2019/Autumn. Роман Савіцький. Webcomponents & lit-element in productionJSFestUA
В далекому 2016 році світ почув про вебкомпоненти, а одна ще тоді не дуже розумна команда, якій приходилось верстати дуже багато, вирішила спробувати те все в продукті, який би допоміг зменшити верстку. Про біди вебкомпонентів відомо всім, але про те, як вижити і дійти з альфи до стабільної версії знають не багато. Використання lit-element & lit-html і вирішення наболілих проблем, ось справня ціль моєї доповіді. Happy end обіцяю.
Ольга Резнікова. Безкоштовна автоматизація процесів лінкбілдінгу на базі Pyth...Collaborator.pro
Презентація Ольги Резнікової з SEO-конференції Collaborator, що відбулася 20 жовтня 2023 року.
Тези доповіді:
1. Болі аутрічерів та керівників команд з лінкбілдингу: трудомісткі завдання та витрати на інструменти
2. Як використовувати Google таблиці в аутріч-команді та які завдання можна автоматизувати
3. Автоматизація процесу аутріч та контроль витрат для керівника команди
4. Автоматизація проведення досліджень для лінкбілдерів
5. Як використовувати Python в аутріч-процесі
6. Приклади скриптів
7. Як впровадити автоматизацію у вашій команді
Відео доповіді дивіться на Youtube-каналі Collaborator
Про спікерку:
Ольга має понад 5 років досвіду в SEO і Digital-маркетингу. Починала з фрилансу, потім працювала інхаус. У 2022 році керувала відділом лінкбілдінгу в Promodo. Наразі працює у iGaming агенції на Мальті. Прагне до постійного розвитку hard і soft skills.
We at MacPaw practice the approach of service teams. And as one of such teams, the responsibility for delivering software across various environments, from testing to production, falls on our shoulders. In this presentation, I will explain how we are trying to standardize our approach to software delivery in environments with diverse tech stacks and development approaches. The presentation will cover methods such as GitOps, dynamic environments, and event-based software delivery.
Юрий Грузинский. Як самописні скрипти і методики допомагають в роботі по SEO:...Octopus Events
1. Навіщо при роботі по SEO працювати за напіврічними стратегіями та як правильно їх будувати?
2. Кейс 1: як неочевидні дані можуть впливати на конверсію? Скрипт по сбору статистики погодних умов для проекту в агротематиці.
2. Кейс 2: як у декілька кліків проаналізувати та отримати повний список всіх логів на багатосторінковому сайті? Скрипт, написаний за допомогою Python та Jupyter Notebook.
3. Кейс 3: оперативна заміни мета-тегів на нестабільних сторінках сайту. Скрипт по зміні динамічних мета-тегів на сайті кінотеатру.
4. Кейс 4: функціонал адміністрування SEO-задач на сайті. Технічне завдання для додаткових фіч адмінки сайту, щоб спросити роботу з ручними та рутинними задачами.
5. Кейс 5: як зробити репрезентативні прогнози на этапі пресейлу. Методологія Олексія Чекушина та автоматизовані скрипти від Netpeak — прогнози як в сина маминої подруги.
6. Кейс 6: автоматизований прорахунок ссилочної та їх історична вартість. Скрипт, з допомогою якого можно прорахувати вартість ссилочного профілю та визначити точний бюджет.
7. Кейс 7: як автоматично налаштувати відправку урлів на переіндексацію. Скрипт, що визначає сторінки, які необхідно відправити на переіндексацію та автоматизувати краулінговий бюджет.
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...Fwdays
Developing and managing large projects can become a challenge for developers. This presentation will show how to overcome these challenges, using the example of one of the largest open-source PHP projects. We will discuss approaches to code organization, coding standards, effective tools, as well as the role of code review and testing. We won't forget about design patterns either.
Як робити рефакторинг в продукті з бурхливою історієюAleksandr Brychuk
— Ознаки, що проект потребує рефакторингу (крім кількості FAQ, що каже команда, коли дивиться на код). Вплив рефакторингу на бізнес — все стає простіше. Чому б не переписати «з нуля». Рефакторинг під час розробки вкрай дрібними кроками.
— Чотири ознаки, що пора зупинитися.
— Рефакторинг по-бойскаутські: «Залишай місце, з якого пішов, кращим, ніж воно було до тебе. При виконанні будь-якої задачі зменшуй технічний борг».
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....HOWWEDOIT
— Ознаки, що проект потребує рефакторингу (крім кількості FAQ, що каже команда, коли дивиться на код). Вплив рефакторингу на бізнес — все стає простіше. Чому б не переписати «з нуля». Рефакторинг під час розробки вкрай дрібними кроками.
— Чотири ознаки, що пора зупинитися.
— Рефакторинг по-бойскаутські: «Залишай місце, з якого пішов, кращим, ніж воно було до тебе. При виконанні будь-якої задачі зменшуй технічний борг».
"Request Lifecycle at Prom.ua", Vitaliy KharytonskiyFwdays
A detailed journey of a single user request through prom.ua infrastructure including hardware, networks, services, and databases.
This talk will feature an explanation of our architecture and reasons behind its current state and external and internal challenges which arise in a high load project built completely on premise.
Практика студентів на складі одягу H&M у Польщіtetiana1958
Пропонуємо студентам Державного біотехнологічного університету активно поринути у аспекти логістики складу одягу H&M.
Метою практики є не тільки отримання теоретичних знань, а й їх застосування практично.
Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випро...tetiana1958
29 травня 2024 року на кафедрі зоології, ентомології, фітопатології, інтегрованого захисту і карантину рослин ім. Б.М. Литвинова факультету агрономії та захисту рослин Державного біотехнологічного університету було проведено відкриту лекцію на тему «Важливість впровадження стандарту ISO/IEC 17025:2019 у процес державних випробувань пестицидів: шлях до підвищення якості та надійності досліджень» від кандидата біологічних наук, виконавчого директора ГК Bionorma, директора Інституту агробіології Ірини Бровко.
Участь у заході взяли понад 70 студентів та аспірантів спеціальностей 202, 201 та 203, а також викладачі факультету та фахівці із виробництва. Тема лекції є надзвичайно актуальною для сільського господарства України і викликала жваве обговорення слухачів та багато запитань до лектора.
Дякуємо пані Ірині за приділений час, надзвичайно цікавий матеріал та особистий внесок у побудову сучасного захисту рослин у нашій країні!
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
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
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
9. Як організувати практику, щоб було
цікаво і студентам, і керівнику
● Придумати цікаве і корисне завдання
● Придумати цікавий робочий процес
● Викладатись на максимум і вимагати цього ж
● Давати не тільки критику, але і похвалу
● Краще багато маленьких завдань, ніж одне велике
● Не скупитись ділитись знаннями
10. Про проект
Lost and Found - Бюро знахідок
● Подача/перегляд оголошень
● GPS-координати знайденої/загубленої речі
● Пошук співпадінь, прив’язка до категорій
● Соціалізація
● https://github.com/stfalcon-studio/lost-and-found
19. Перший тиждень
● Уроки по Git на Code School
● Реєстрація на GitHub
● Розгортання Symfony
● Code Style
● phpDocumentor
● Проектування бази даних
● Semantic Versioning
● Опис перших сутностей та міграції
● Перший робочий функціонал: форма для
додавання речей, адмінка
26. Другий тиждень
● Версіонування даних
● Сторінка перегляду окремої речі
● Доробки в адмінці (batch actions, плюшки від Sonata)
● Підключення Leaflet.js
● Шаблонізатор TWIG
● ORM, DBAL
● FormType в Symfony
● Сесія, флеш-повідомлення
● Валідація
● Різні маркери категорії
● YAGNI, KISS, DRY
● Реєстрація користувачів через Facebook
● Сторінка профілю користувача
● Можливість позначення території для загубленої речі
28. Третій тиждень
● PHPUnit
● DoctrineExtensions: Tree
● Popus on markers
● Emails
● Вивід карти загублених/знайдених речей
● AJAX
● Виправлення багів
● Service Container в Symfony2
● Як слідкувати за інформацією в світі PHP?
● Розділення функціоналу по ролям
● F.A.Q.
36. Четвертий тиждень
● Консольна команда для пошуку співпадінь
● Events and Event Dispatcher
● Запит контактів автора оголошення
● Форма зворотнього зв’язку
● Завантаження фотографії для оголошень
● Переклади інтерфейсу
● Статистика загублених і знайдених речей в
бекенді
● Вивчення Behat та перші тести
● SonataSeoBundle
● Корисні фічі PhpStorm
39. sКРЯm
● короткі спрінти: 3-4 дні для гнучкості
● тікети на команду, в команді тікети розподіляють
самостійно
● тім-лід приймає пулл-реквести в свій бранч
● в кінці спрінта - демо
● я приймаю тільки один великий пулл-реквест в
develop в кінці спрінта
40. П’ятий тиждень
● Refactoring
● Кастомізація адмінки
● Покриття тестами існуючого функціоналу
● Верстка
● Повідомлення між користувачами
● SonataMediaBundle
● CSRF tokens
● RESTful API
41. Story points
● Перший тиждень - 41
● Другий тиждень - 85
● Третій тиждень - 63
● Четвертий тиждень - 84,5
● П’ятий тиждень - 33,5...
43. Типові баги, факапи, фейли
● закомітили вендори і кеш
● код з однієї фічі попадав в бранч іншої
● не переглядали diff під час коміту, попадав
зайвий код
● вперто не видаляли закоментований код
● зламані міграції
56. Плани на наступну практику
● Покращення алгоритму пошуку співпадінь
● API
● Покращений пошук
● Кластеризація маркерів при зумі
● Публікація в соціальні мережі
● Рейтинг користувачів, бейджики
● Нотифікація про знайдені поряд речі
● Прив’язування оголошення до події
● Функціонал блогу
● RabbitMQ?
● ElasticSearch?
● MongoDB?