ІТЕРАЦІЯ
ЯК
DENYS MISHUNOV
ШЛЯХДОІДЕАЛУ
ДОБРОГОДНЯ
ХТОЯ?
ІТЕРАЦІЯ,ЯКШЛЯХДОІДЕАЛУ
- Вступ (10 хв.)
- Ітерація при розробці ПЗ (40 хв.)
— 10 хв. Перерва —
- Будівельні блоки ітерації в Frontend Engineering (40 хв.)
- Найкращі практики ітераційної розробки на фронтенді (40 хв.)
— 10 хв. Перерва —
- Hands-on завдання: Ітеративна побудова фронтенд проекту (80 хв.)
- Висновки та короткий конспект (10 хв.)
Визначення та важливість
ІТЕРАТИВНИЙПІДХІД
УРОЗРОБЦІПЗ
- Еволюція
- Мистецтво
- Спорт
- "День бабака”
ІТЕРАЦІЯУ
РЕАЛЬНОМУСВІТІ
ІТЕРАЦІЯВРОЗРОБЦІПЗ
ІТЕРАЦІЯПРОТИ“WATERFALL"
ІТЕРАЦІЯВРОЗРОБЦІ
“ЄДИНЕПОСТІЙНЕ
ВЖИТТІ-
ЦЕЗМІНА”
ГЕРАКЛІТ
ІТЕРАТИВНІМЕТОДОЛОГІЇ
- Agile
- Scrum
- Kanban
- Екстремальне
програмування (XP)
ІТЕРАТИВНІ
МЕТОДОЛОГІЇ
- Особистості та взаємодії важливіше процесів та інструментів.
- Робочий програмний продукт має перевагу над детальною документацією.
- Співпраця з замовником вище договірних умов.
- Готовність до змін важливіше, ніж дотримання плану.
AGILEМАНІФЕСТ
ЦІКАВИЙФАКТ
- Agile
- Scrum
- Kanban
- Екстремальне
програмування (XP)
ІТЕРАТИВНІ
МЕТОДОЛОГІЇ
- Робота в Scrum
- Ролі в Scrum
- Scrum Master
- Власник продукту
- Команда розробників
SCRUM
- Agile
- Scrum
- Kanban
- Екстремальне
програмування (XP)
ІТЕРАТИВНІ
МЕТОДОЛОГІЇ
KANBAN
- Візуалізуйте робочий процес
- Обмежуйте роботу в процесі
- Керуйте потоком
- Робіть політики процесів явними
- Реалізуйте зворотній зв'язок
- Співпрацюйте для еволюції
KANBAN
ЦІКАВИЙФАКТ
- Agile
- Scrum
- Kanban
- Екстремальне
програмування (XP)
ІТЕРАТИВНІ
МЕТОДОЛОГІЇ
- Розробка через тестування (TDD)
- Постійна інтеграція
- Парне програмування
- Колективна власність коду
- Рефакторинг
ЕКСТРЕМАЛЬНЕПРОГРАМУВАННЯ(XP)
ЦІКАВИЙФАКТ
ПЕРЕВАГИ
ІТЕРАТИВНОЇРОЗРОБКИ
- Управління ризиками
- Гнучкість і адаптивність планування
- Швидкий вихід на ринок
- Постійне покращення
ПЕРЕВАГИІТЕРАТИВНОЇРОЗРОБКИ
УПРАВЛІННЯРИЗИКАМИ
УПРАВЛІННЯРИЗИКАМИ
ЦІКАВИЙФАКТ
ПЕРЕВАГИІТЕРАТИВНОЇРОЗРОБКИ
- Управління ризиками
- Гнучкість і адаптивність планування
- Швидкий вихід на ринок
- Постійне покращення
ГНУЧКІСТЬ
ГНУЧКІСТЬ
ГНУЧКІСТЬ
ЦІКАВИЙФАКТ
ПЕРЕВАГИІТЕРАТИВНОЇРОЗРОБКИ
- Управління ризиками
- Гнучкість і адаптивність планування
- Швидкий вихід на ринок
- Постійне покращення
ШВИДКИЙВИХІДНАРИНОК
ШВИДКИЙВИХІДНАРИНОК:
MVP
ЦІКАВИЙФАКТ
- Управління ризиками
- Гнучкість і адаптивність планування
- Швидкий вихід на ринок
- Постійне покращення
ПЕРЕВАГИІТЕРАТИВНОЇРОЗРОБКИ
ПОСТІЙНЕПОКРАЩЕННЯ.
KAIZEN
ЦІКАВИЙФАКТ
ІТЕРАТИВНИЙПІДХІД:
ВИСНОВКИ
ПЕРЕВАГИ:
- Управління ризиками
- Гнучкість і адаптивність планування
- Швидкий вихід на ринок
- Постійне покращення
ІТЕРАТИВНИЙПІДХІД
МЕТОДОЛОГІЇ:
- Agile
- Scrum
- Kanban
- XP
"НЕМАЄНІЧОГОБІЛЬШБЕЗГЛУЗДОГО,ЯК
ЕФЕКТИВНОРОБИТИТЕ,ЩОВЗАГАЛІНЕ
ПОВИННОБУТИЗРОБЛЕНО."
ПІТЕР ДРУКЕР
ПЕРЕРВА
10 ХВИЛИН
БУДІВЕЛЬНІБЛОКИІТЕРАЦІЇВ
FRONTENDENGINEERING
ЯКІСТЬКОДУТА
ПІДТРИМУВАНІСТЬ
ЯКІСТЬКОДУТА
ПІДТРИМУВАНІСТЬ
ЯКІСТЬКОДУТА
ПІДТРИМУВАНІСТЬ
ЯКІСТЬКОДУТА
ПІДТРИМУВАНІСТЬ
ЯКІСТЬКОДУ:
МИСТЕЦТВОПИСЬМА
ЦІКАВИЙФАКТ
- Послідовність
- Модульність
- Документація
- Тестування
ПРАКТИКИДЛЯЯКОСТІКОДУ
ПІДТРИМУВАНІСТЬКОДУ
- Вільне зв’язування (Loose coupling)
- Використання патернів (проектування, дизайн, тощо)
- Правильна обробка помилок
- Контроль версій
- Перевірка коду
ПРАКТИКИДЛЯПІДТРИМУВАНОСТІКОДУ
ЯКІСТЬКОДУТАІТЕРАЦІЇ
КОМПОНЕНТНО-ОРІЄНТОВАНА
РОЗРОБКА
(COMPONENT-DRIVEN DEVELOPMENT)
ЦІКАВИЙФАКТ
ЩОТАКЕ
КОМПОНЕНТНО-ОРІЄНТОВАНА
РОЗРОБКА?
Workshop "Iteration as a Path to Perfection", Denys Mishunov
КОМПОНЕНТИУ
ФРОНТЕНДІЇ
- Швидший розвиток
- Спрощене тестування
- Поліпшена підтримка та супровід
- Сприяння співпраці
ПЕРЕВАГИКОМПОНЕНТНО-ОРІЄНТОВАНОЇРОЗРОБКИ
ЦІКАВИЙФАКТ
ПОПУЛЯРНІБІБЛІОТЕКИТА
ФРЕЙМВОРКИДЛЯCDD
- React
- Vue
- Angular
- Svelte
КОМПОНЕНТНО-ОРІЄНТОВАНІФРЕЙМВОРКІ
РЕКОМЕНДАЦІЇ:
- Єдність
- Модульність
- Тестування
- Документація
НАЙКРАЩІПРАКТИКИДЛЯКОМПОНЕНТІВ
ПРАКТИКИ:
- Чітке визначення обов'язків
- Коректна інкапсуляція стану та логіки
- Використання утиліт та міксінів
- Послідовність у найменуваннях
- Документація та коментарі
БІБЛІОТЕКИКОМПОНЕНТІВ
ТА
СИСТЕМИДИЗАЙНУ
БІБЛІОТЕКИКОМПОНЕНТІВ
ТА
СИСТЕМИДИЗАЙНУ
БІБЛІОТЕКИКОМПОНЕНТІВ
ТА
СИСТЕМИДИЗАЙНУ
БІБЛІОТЕКИКОМПОНЕНТІВ
ТА
СИСТЕМИДИЗАЙНУ
- @gitlab/ui
- MUI (раніше відома як Material-UI)
- Ant Design
- Bootstrap
- Tailwind
- інші
ПОПУЛЯРНІБІБЛІОТЕКИКОМПОНЕНТІВТАСИСТЕМИДИЗАЙНУ
БІБЛІОТЕКИКОМПОНЕНТІВТА
СИСТЕМИДИЗАЙНУ:НАВІЩО
РЕФАКТОРИНГ
- Зменшення технічного боргу
- Покращення зрозумілості
коду
- Покращення підтримуваності
- Збільшення розширюваності
ПЕРЕВАГИ
ІНКРЕМЕНТАЛЬНОГО
РЕФАКТОРИНГУ
- Правило хлопчика-скаута
- Червоний-Зелений-
Рефакторинг
- Розділити та панувати
СТРАТЕГІЇ
ІНКРЕМЕНТАЛЬНОГО
РЕФАКТОРИНГУ
- Зменшення технічного боргу
- Покращена зрозумілість коду
- Покращена підтримуваність
- Збільшена розширюваність
- Вища якість коду
- Співпраця та обмін знанням
- Спрощення перевірок коду та інтеграції
ПЕРЕВАГИІНКРЕМЕНТАЛЬНОГОРЕФАКТОРИНГУ
- JavaScript - Simplifying Complex Conditional
ПРИКЛАДРЕФАКТОРІНГУ
function canAccessContent(user) {
if (
user.isLoggedIn &&
user.subscription.isActive &&
user.subscription.level > 2 &&
user.age >= 18
) {
return true;
}
return false;
}
- JavaScript - Simplifying Complex Conditional
- Incrementally refactor this to make it more
readable
ПРИКЛАДИРЕФАКТОРІНГУ
function canAccessContent(user) {
if (
user.isLoggedIn &&
user.subscription.isActive &&
user.subscription.level > 2 &&
user.age >= 18
) {
return true;
}
return false;
}
function isSubscribed(user) {
return user.subscription.isActive
&& user.subscription.level > 2;
}
function isOfAge(user) {
return user.age >= 18;
}
function canAccessContent(user) {
return user.isLoggedIn &&
isSubscribed(user) && isOfAge(user);
}
TDD,
ЮНІТ-ТЕСТУВАННЯ
ПОДОРОЖУЧАСІ:
ІСТОРІЯТЕСТУВАННЯ
ПОДОРОЖУЧАСІ:
ІСТОРІЯТЕСТУВАННЯ
ПІОНЕРИ ТЕСТУВАННЯ
ПОДОРОЖУЧАСІ:
ІСТОРІЯТЕСТУВАННЯ
AGILE РЕВОЛЮЦІЯ
- Покращена якість коду
- Швидкий розвиток та легке
відлагодження
- Покращене співробітництво
ПЕРЕВАГИTDDТА
ЮНІТ-ТЕСТУВАННЯ
TDD:
ЧЕРВОНИЙ-ЗЕЛЕНИЙ-РЕФАКТОРИНГ
Пишемо тест який падає
TDD:ЧЕРВОНИЙ // user_list.spec.js
const { renderUserList } = require("./user-list");
test("renderUserList should return correct HTML", () => {
const users = [
{ name: "Alice", isOnline: true },
{ name: "Bob", isOnline: false },
];
const expectedHTML = `
<ul>
<li>Alice (online)</li>
<li>Bob (offline)</li>
</ul>`;
expect(renderUserList(users)).toBe(expectedHTML);
});
Пишемо МІНІМАЛЬНИЙ функціонал
щоб тест пройшов
TDD:ЗЕЛЕНИЙ // user-list.js
function renderUserList(users) {
let userListHTML = "<ul>";
users.forEach((user) => {
const status = user.isOnline ? "online" : "offline";
userListHTML += `<li>${user.name} (${status})</li>`;
});
userListHTML += "</ul>";
return userListHTML;
}
module.exports = { renderUserList };
Оптимізація, помилки,
додаткові перевірки, тощо
РЕФАКТОРИНГ
// user-list.js
function renderUserList(users) {
const userListItems = users.map((user) => {
const status = user.isOnline ? "online" : "offline";
return `<li>${user.name} (${status})</li>`;
});
return `<ul>${userListItems.join("")}</ul>`;
}
module.exports = { renderUserList };
// user-list.js
function renderUserList(users) {
let userListHTML = "<ul>";
users.forEach((user) => {
const status = user.isOnline ? "online" : "offline";
userListHTML += `<li>${user.name} (${status})</li>`;
});
userListHTML += "</ul>";
return userListHTML;
}
module.exports = { renderUserList };
- Використовуйте описові назви тестів
ПОРАДИДЛЯЮНІТ-ТЕСТУВАННЯ
Пишемо тест який падає
TDD:ЧЕРВОНИЙ // user_list.spec.js
const { renderUserList } = require("./user-list");
test("renderUserList should return correct HTML", () => {
const users = [
{ name: "Alice", isOnline: true },
{ name: "Bob", isOnline: false },
];
const expectedHTML = `
<ul>
<li>Alice (online)</li>
<li>Bob (offline)</li>
</ul>`;
expect(renderUserList(users)).toBe(expectedHTML);
});
- Використовуйте описові назви тестів
- Зберігайте тести простими та фокусованими
- Не забувайте про крайні випадки
ПОРАДИДЛЯЮНІТ-ТЕСТУВАННЯ
“УСПІХ—ЦЕТЕ,ЩОВІДБУВАЄТЬСЯ,КОЛИ
ПІДГОТОВКАЗУСТРІЧАЄТЬСЯЗ
МОЖЛИВІСТЮ”
СЕНЕКА
ПОСТІЙНАІНТЕГРАЦІЯ(CI)
ТА
ПОСТІЙНЕРОЗГОРТАННЯ(CD)
ІСТОРІЯCI/CD
ПОСТІЙНЕРОЗГОРТАННЯ(CD)
- Виявлення помилок на
ранніх етапах
- Швидкий зворотний зв'язок
- Стабільний користувацький
досвід
ЧОМУCI/CDВАЖЛИВІ
ДЛЯFRONTEND?
CI/CDТАПРОМИСЛОВАРЕВОЛЮЦІЯ
- Скоріший випуск змін коду
- Більша надійність
- Стабільний користувацький досвід
ПЕРЕВАГИCI/CDВРОЗРОБЦІПЗ
CI/CDALPHA
- GitLab CI/CD
- Jenkins
- CircleCI
- Travis CI
- Github Actions
ІНСТРУМЕНТИCI/CD
- Коллекція шаблонів CI/CD
конфігурацій
ПРИКЛАДИУGITLAB
https://tinyurl.com/yc3dx8d9
- Коллекція шаблонів CI/CD
конфігурацій
ПРИКЛАДИУGITLAB
https://tinyurl.com/yc3dx8d9
// test-add.spec.js
const add = require('./add');
test('add 1 + 2 to equal 3', () => {
expect(add(1, 2)).toBe(3);
});
# .gitlab-ci.yml
image: node:latest
stages:
- test
test:
stage: test
script:
- npm install
- npm run test
- Коллекція шаблонів CI/CD
конфігурацій
ПРИКЛАДИУGITLAB
https://tinyurl.com/yc3dx8d9
# .gitlab-ci.yml
stages:
- test
- deploy
test:
image: node:latest
stage: test
script:
- npm ci
- npm test
pages:
image: node:latest
stage: deploy
script:
- mkdir .public
- cp -r ./* .public
- rm -rf public
- mv .public public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
CI/CD-СУПЕРГЕРОЇРОЗРОБКИПЗ
НАЙКРАЩІПРАКТИКИ
ІТЕРАЦІЇНАФРОНТЕНДІ
- Використання Git для контролю версій
- Єдині стандарти кодування та перевірка коду на помилки (Linting)
- Правильне документування та коментування коду
- Парне програмування
НАЙКРАЩІПРАКТИКИІТЕРАЦІЇНАФРОНТЕНДІ
ВИКОРИСТАННЯGITДЛЯ
КОНТРОЛЮВЕРСІЙ
- Коміти: Атомарні, Часті та
Інформативні
- Гілки: для контекстуальної ізоляції
та структуризації
- Merge vs. Rebase: стратегічний
вибір
- Merge / Pull Requests як
платформа для співпраці та
рецензування
- .gitignore як охоронець вашого
репозиторію
ВИКОРИСТАННЯGIT
ДЛЯКОНТРОЛЮВЕРСІЙ
- Використання Git для контролю версій
- Єдині стандарти кодування та перевірка коду на помилки (Linting)
- Правильне документування та коментування коду
- Парне програмування
НАЙКРАЩІПРАКТИКИІТЕРАЦІЇНАФРОНТЕНДІ
ЄДИНІСТАНДАРТИ
КОДУВАННЯТАLINTING
ЩОТАКЕСТАНДАРТИ
КОДУВАННЯ?
- Покращена читабельність
- Зменшення помилок
- Покращена підтримуваність
- Збільшена продуктивність
ПЕРЕВАГИСТАНДАРТІВ
КОДУВАННЯ
JAVASCRIPTSTYLE
GUIDEВІДAIRBNB
- https://airbnb.io/javascript/
ЩОТАКЕЛІНТІНГ?
- ESLint: https://eslint.org/
ІНСТРУМЕНТИДЛЯ
ОФОРМЛЕННЯКОДУ
- Prettier: https://eslint.org/
ЧОМУВАЖЛИВОДОТРИМУВАТИСЬ
СТАНДАРТІВКОДУВАННЯ?
- ESLint
- Prettier
- Lefthook
ІНСТРУМЕНТИУ
JAVASCRIPTПРОЕКТІ
# 1. Встановіть ESLint, Prettier та Lefthook
➜ ~ npm install eslint prettier lefthook --save-dev
# 2. У кореневій директорії проекту налаштуйте файл
# `.eslintrc.json` для ESLint з правилами, які ви хочете
# застосувати.
# 3. Налаштуйте файл `.prettierrc` для Prettier, в якому ви
# вказуєте свої уподобання щодо форматування коду.
# 4. Ініціалізуйте та налаштуйте Lefthook у вашому проекті:
➜ ~ npx lefthook install
# 5. Створіть файл конфігурації `lefthook.yml` в кореневій
# директорії проекту:
pre-commit:
parallel: true
commands:
eslint:
glob: "*.{js,jsx,ts,tsx}"
run: npx eslint {staged_files} --fix
prettier:
glob: "*.{js,jsx,ts,tsx,css,md,json,yml}"
run: npx prettier --write {staged_files}
ПОСЛІДОВНІСТЬ-КЛЮЧДО
УСПІХУ
- Використання Git для контролю версій
- Єдині стандарти кодування та перевірка коду на помилки (Linting)
- Правильне документування та коментування коду
- Парне програмування
НАЙКРАЩІПРАКТИКИІТЕРАЦІЇНАФРОНТЕНДІ
ДОКУМЕНТУВАННЯТА
КОМЕНТУВАННЯКОДУ
- Чіткість мети
ДОКУМЕНТУВАННЯТА
КОМЕНТУВАННЯКОДУ
- Чіткість мети
ДОКУМЕНТУВАННЯТА
КОМЕНТУВАННЯКОДУ
function addToCart(id, qty) {
// TODO: implement
}
- Чіткість мети
ДОКУМЕНТУВАННЯТА
КОМЕНТУВАННЯКОДУ
function addToCart(id, qty) {
// TODO: implement
}
/**
* Adds an item to the shopping cart.
*
* @param {string} id - The unique identifier of the product.
* @param {number} qty - The quantity of the product to add.
*/
function addToCart(id, qty) {
// TODO: implement
}
- Чіткість мети
- Послідовність
- JSDoc для JavaScript
- Sphinx для Python
- Doxygen для C++
- ESLint та Prettier
ДОКУМЕНТУВАННЯТА
КОМЕНТУВАННЯКОДУ
НЕОБХІДНІСТЬОНОВЛЕНОЇ
ДОКУМЕНТАЦІЇ
КОД
- Docusaurus
- MkDocs
- VuePress
- etc.
API
- Swagger
- Postman
АВТОМАТИЗАЦІЯДОКУМЕНТУВАННЯ
- Read the Docs
- Con
fl
uence
- GitLab Wiki
- GitHub Wiki
ІНСТРУМЕНТИДЛЯРОЗМІЩЕННЯДОКУМЕНТАЦІЇ
ВАЖЛИВІСТЬКОМЕНТАРІВВ
КОДІ
ВАЖЛИВІСТЬПРИКЛАДІВ
КОДУВДОКУМЕНТАЦІЇ
ВАЖЛИВІСТЬПРИКЛАДІВ
КОДУВДОКУМЕНТАЦІЇ /**
* Calculates the total price of the items in the cart.
*
* @param {Object[]} cart - An array of cart items. Each
item should have 'id', 'qty', and 'price'.
* @return {number} The total price.
*/
function calculateTotal(cart) {
// TODO: implement
}
ВАЖЛИВІСТЬПРИКЛАДІВ
КОДУВДОКУМЕНТАЦІЇ
/**
* Calculates the total price of the items in the cart.
*
* @param {Object[]} cart - An array of cart items. Each
item should have 'id', 'qty', and 'price'.
* @return {number} The total price.
*/
function calculateTotal(cart) {
// TODO: implement
}
/**
* Calculates the total price of the items in the cart.
*
* @param {Object[]} cart - An array of cart items. Each
item should have 'id', 'qty', and 'price'.
* @return {number} The total price.
*
* Example usage:
*
* const cart = [
* { id: '1', qty: 2, price: 50 },
* { id: '2', qty: 1, price: 100 },
* ];
* calculateTotal(cart);
*/
function calculateTotal(cart) {
// TODO: implement
}
- Використання Git для контролю версій
- Єдині стандарти кодування та перевірка коду на помилки (Linting)
- Правильне документування та коментування коду
- Парне програмування
НАЙКРАЩІПРАКТИКИІТЕРАЦІЇНАФРОНТЕНДІ
ПАРНЕПРОГРАМУВАННЯ
- Регулярна зміна ролей
- Ефективна комунікація
- Повага та терпіння
- Збалансований підбір пар
- Робіть перерви
НАЙКРАЩІПРАКТИКИПАРНОГО
ПРОГРАМУВАННЯ(LISTBELOW)
СИНЕРГІЯКОД-РЕВ'ЮТА
ПАРНОГОПРОГРАМУВАННЯ
HANSEI
ВПЛИВКУЛЬТУРИКОМАНДИНА
ЕФЕКТИВНІСТЬКОД-РЕВ'ЮТАПАРНОГО
ПРОГРАМУВАННЯ
ПРОЦЕС,НЕЛИШЕРЕЗУЛЬТАТ
ПЕРЕРВА
10 ХВИЛИН
HANDS-ONЗАВДАННЯ
ВИСНОВКИТАПІДСУМКИ

More Related Content

PDF
ITEvent: Continuous Integration (ukr)
PDF
Continuous Integration - Анатолій Охотніков
PDF
Web Testing in Agile
PDF
Testing Web in Agile
PDF
Agile Feedback Loops (ukr)
PPTX
Тестування Програмного Забезпечення на Практиці - Червень 2014
PDF
Agile (IF PM Group) v2
PPTX
Code driven testing (UA)
ITEvent: Continuous Integration (ukr)
Continuous Integration - Анатолій Охотніков
Web Testing in Agile
Testing Web in Agile
Agile Feedback Loops (ukr)
Тестування Програмного Забезпечення на Практиці - Червень 2014
Agile (IF PM Group) v2
Code driven testing (UA)

Similar to Workshop "Iteration as a Path to Perfection", Denys Mishunov (20)

PPTX
Clean code (UA)
PDF
Як прокачати трьох студентів за п’ять тижнів
PDF
Як прокачати трьох студентів за п’ять тижнів
PPTX
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
PPTX
Agile in IT. conference 11.11.2021
PPTX
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
PPTX
Методологія розробки ІТ проектів Scrum
PPTX
Automated testing
PPTX
Марина Мінак-Супруненко Agile очима ISTQB
PPTX
cpp-2013 #3 OOP Basics
PDF
Igor Dumbur: Інженерна досконалість та DevOps (UA)
PPTX
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
PPTX
Iaroslav Grytsyna: Масштабування з однієї Scrum команди в цілу програму (UA)
PDF
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
PDF
Igor Dumbur: Інженерна досконалість та DevOps(UA)
PDF
Корнілов Андрій
PDF
Денис Павленко “CRUD&A як ще одна НОВА техніка тест дизайну” (CRUDA – їCreate...
PPTX
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
PPTX
SCRUM methodology
PPTX
Marafon_part1 (1).pptx
Clean code (UA)
Як прокачати трьох студентів за п’ять тижнів
Як прокачати трьох студентів за п’ять тижнів
[Knowledge Sharing] - Unit Testing by Pavlo Serdyuk (UKR)
Agile in IT. conference 11.11.2021
СВІТЛАНА ЯКОВЛЄВА «Реформування QA підходу – як це було і що з цього вийшло»
Методологія розробки ІТ проектів Scrum
Automated testing
Марина Мінак-Супруненко Agile очима ISTQB
cpp-2013 #3 OOP Basics
Igor Dumbur: Інженерна досконалість та DevOps (UA)
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019
Iaroslav Grytsyna: Масштабування з однієї Scrum команди в цілу програму (UA)
ВІТАЛІЙ МИХАЙЛЮК «Онбордінг нових тестерів до команди: як ефективно навчати і...
Igor Dumbur: Інженерна досконалість та DevOps(UA)
Корнілов Андрій
Денис Павленко “CRUD&A як ще одна НОВА техніка тест дизайну” (CRUDA – їCreate...
ОЛЕГ ЗАРЕВИЧ «Shift left та Shift Right підходи до тестування»
SCRUM methodology
Marafon_part1 (1).pptx

More from Fwdays (20)

PDF
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
PDF
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
PPTX
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
PDF
"Validation and Observability of AI Agents", Oleksandr Denisyuk
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
PPTX
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
PPTX
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
PDF
"AI is already here. What will happen to your team (and your role) tomorrow?"...
PPTX
"Is it worth investing in AI in 2025?", Alexander Sharko
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
"Як ми переписали Сільпо на Angular", Євген Русаков
"AI Transformation: Directions and Challenges", Pavlo Shaternik
"Validation and Observability of AI Agents", Oleksandr Denisyuk
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
"AI is already here. What will happen to your team (and your role) tomorrow?"...
"Is it worth investing in AI in 2025?", Alexander Sharko
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Database isolation: how we deal with hundreds of direct connections to the d...
"Scaling in space and time with Temporal", Andriy Lupa .pdf
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...

Workshop "Iteration as a Path to Perfection", Denys Mishunov