Курс "Microsoft" Patterns & Practices" в Києві

Курс Microsoft "Patterns & Practices"

Цей курс для тебе якщо ти:

Розробники та архітектори програмних рішень

Тривалість

40 год.

Кількість занять

20 занять

Початок курсу

Старт очікується

Наші випускники працюють в

Ваш шлях

Програма курсу

Кожне заняття — це живий онлайн-урок з практичними завданнями та зворотним зв'язком.

01
Урок 1. Шаблони проектування складених прикладних програм WPF та Silverlight. Частина 1
Шаблони категорії «Модульність» та «Тестування». Створення локатор-сервісу, впровадження залежності та інверсія керування.

Service Locator - Створює локатор сервісу, що містить посилання на сервіси та інкапсульовану логіку для їх розташування. У своїх класах використовуйте локатор сервісу для отримання екземплярів сервісу.

Dependency Injection - Екземпляри залежностей не повинні створюватися у класі явно, а мають бути представлені декларативно у його описанні. Використовуйте об’єкт Builder для отримання дійсних екземплярів залежності об’єкта та їх передачі в об’єкт при його створенні та/чи ініціалізації.

Inversion of Control - Делегування функції вибору конкретного типу реалізації залежностей класів зовнішньому компоненту чи джерелу
02
Урок 2. Шаблони проектування складених прикладних програм WPF та Silverlight. Частина 2
Шаблони категорії «Тестування».

Separated Presentation - Відокремлення логіки представлення від бізнес-логіки. Шаблон Separated Presentation може бути реалізований по-різному, наприклад, як Supervising Presenter, або Presentation Model та т.п.

Presentation Model - Розділяє обов’язки по візуальному відображенню та реалізації стану та поведінки інтерфейсу користувача (UI) між різними класами, котрі названі Представлення та Модель презентації відповідно. Клас представлення керує елементами управління UI. Клас моделі презентації інкапсулює методи доступу до моделі та забезпечує відкритий інтерфейс, з яким легко взаємодіяти представленню (наприклад, шляхом прив’язки даних). Таким чином, клас моделі презентації є фасадом з характерним для UI станом та поведінкою.

Supervising Presenter та Supervising Controller - Розподіляє обов’язки по візуальному відображенню та методами обробки подій між різними класами, котрі названі Представлення та Презентатор відповідно. Клас представлення керує елементами управління UI, передаючи події користувача класу презентатора. Клас презентатора включає логіку, яка дозволяє відповідати на події, оновлювати модель (бізнес-логіку та дані програми) та керувати станом класу представлення
03
Урок 3. Шаблони передачі даних. Переміщення даних. Частина 1
Data Replication - Створює набір реплікації та зв’язок реплікації для передачі даних між двома розташуваннями. Цей шаблон описує загальний процес, що деталізований у шаблонах передачі даних, описуваних у даному переліку.

Master-Master Replication - Копіює дані із джерела у задане місце, знаходить та усуває будь-які конфлікти оновлення, що виникли з моменту останньої реплікації (через зміни однакових даних джерела та цілі). Рішення включає два перехресні зв’язки реплікації між джерелом та цільовим розташуванням. Обидва зв’язки передають однаковий набір реплікації у обох напрямках. Такі пари зв’язків реплікації називають пов’язаними.

Master-Subordinate Replication - Копіює дані із джерела у задане місце без врахування оновлень, які могли відбутися для набору реплікації у цільовому розташуванні з моменту останньої реплікації.

Master-Master Row-Level Synchronization - Використовує пару пов’язаних зв’язків реплікації між джерелом та цільовим розташуванням, а також контролер синхронізації для управління синхронізацією у обох напрямках. Для синхронізації більше, ніж двох копій набору реплікації створює відповідну пару зв’язків реплікації для кожної додаткової копії.
04
Урок 4. Шаблони передачі даних. Переміщення даних. Частина 2
Master-Subordinate Snapshot Replication - Створює копію набору реплікації джерела у визначений момент часу (називається знімком), переносить цю копію у цільове розташування та перезаписує цільові дані. У цьому випадку будь-які зміни, що могли відбутися у цільовому наборі реплікації, заміняються новим набором реплікації джерела.

Capture Transaction Details - Створює додаткові об’єкти бази даних, такі як тригери і (тіньові) таблиці, та записує зміни до всіх таблиць, що входять у набір реплікації.

Master-Subordinate Transactional Incremental Replication - Запитує у джерела дані про транзакції, що завершилися, і повторює транзакції у правильній послідовності при записі у цільове розташування.

Master-Subordinate Cascading Replication - Збільшує число зв’язків реплікації між джерелом та ціллю, додаючи одну чи більше проміжних цілей між джерелом та кінцевими цільовими базами даних. Ці проміжні цілі являють собою сховище даних, що приймає набір реплікації із джерела, і, таким чином, виступає у ролі цільового розташування для попереднього зв’язку реплікації. При передачі даних по наступному зв’язку реплікації попередня проміжна ціль вже виступає в ролі джерела, і так далі, поки не буде досягнута кінцева ціль каскаду.
05
Урок 5. Шаблони передачі даних. Прототипи шаблонів
Maintain Data Copies - Виконує синхронний запис у копії даних із початкової програми чи синхронну публікацію даних у локальний кеш для подальшої їх передачі асинхронним сервісом.

Application-Managed Data Copies - Коли яка-небудь програма змінює свою копію даних, вона також повинна внести зміни і в інші копії. Програма повинна забезпечити оновлення копій даних і/чи похідних даних тією ж транзакцією, яка виконує зміну початкових даних.

Extract-Transform-Load - Тип передачі даних, який може забезпечувати виконання складних запитів для отримання даних із гетерогенних джерел, застосування складних операцій з даними, які включають агрегацію та очистку, але завжди виконуючий простий запис із заміщенням всіх змін у цілі.

Topologies for Data Copies - Архітектурні підходи по розгортанню копій даних на декількох платформах.
06
Урок 6. Шаблони корпоративних рішень. Шаблони розгортання. Частина 1
Deployment Plan - Створює план розгортання, що описує, які компоненти програми на які рівні будуть розгортатися. Якщо в процесі розподілу компонентів по шарам виявляється, що якийсь шар не підходить для компонента, визначте рентабельність внесення змін до компоненту для покращення його роботи з інфраструктурою чи внесення змін до інфраструктури для більшої відповідності компоненту.

Layered Application - Розділяє компоненти рішення на шари. Компоненти кожного шару повинні бути зв’язані і знаходитися приблизно на одному рівні абстракції. Кожний шар повинен бути слабо зв’язаним із нижче розташованими шарами.
07
Урок 7. Шаблони корпоративних рішень. Шаблони розгортання. Частина 2
Three-Layered Services Application - Копіює дані із джерела у задане місце без врахування оновлень, котрі могли відбутися для набору реплікації у цільовому розташуванні з моменту останньої реплікації.

Tiered Distribution - Структурує сервери та клієнтські комп’ютери як набір фізичних рівнів та розподіляє компоненти програми по відповідним рівням.

Three-Tiered Distribution - Структурує програму на три фізичні рівні: клієнтський рівень, рівень програми та рівень бази даних.
08
Урок 8. Шаблони корпоративних рішень. Розподілені системи
Broker - Використовуйте шаблон Broker для приховання деталей реалізації виклику віддаленого сервісу шляхом його інкапсуляції у окремий шар.

Data Transfer Object - Створює об’єкт передачі даних (Data Transfer Object, DTO), що містить всі дані, які необхідні для віддаленого виклику. Змінює сигнатуру віддаленого методу, щоб приймати DTO як один параметр та повертати його клієнту. Після того як DTO отримано і збережено у вигляді локального об’єкту, програма може викликати процедури DTO без необхідності виконання віддалених викликів.

Singleton - Одинак забезпечує створення єдиного екземпляру класу. Інші об’єкты можуть здійснювати доступ до даного екземпляру через глобально доступний метод класу, який повертає посилання на екземпляр. Крім того, конструктор класу повинен бути оголошений private, щоб ні один інший об’єкт не зміг створити новий екземпляр.
09
Урок 9. Шаблони корпоративних рішень. Продуктивність та надійність
Server Clustering - Кластер серверів – це об’єднання двох чи більше серверів, що представляється як єдиний сервер. Таким чином, формується віртуальний ресурс, котрий розширяє доступність, масштабованість чи і те, і інше.

Load-Balanced Cluster - Забезпечує установку сервісу чи програми на декілька серверів, що сконфігуровані для розподілення робочого навантаження. Такий тип конфігурації називають кластером з балансуванням навантаження. Балансування навантаження масштабує продуктивність таких серверних програм, як веб-сервер, шляхом розподілення клієнтських запитів на множину серверів. Технології балансування навантажень, які звичайно називають підсистемами балансування навантаження, приймають вхідні запити і у випадку необхідності перенаправляють їх на певний вузол. Вузли балансування навантаження одночасно відповідають на запити різних клієнтів (навіть на велику кількість запитів одного клієнта).

Failover Cluster - Відмовостійкий кластер – це набір серверів, сконфігурованих таким чином, що якщо один сервер стає недоступним, інші сервери автоматично беруть на себе роботу того серверу, який вийшов із ладу, та продовжують опрацювання даних. Кожному серверу кластера назначений, в найменшій мірі, один резервний сервер із числа серверів цього ж кластеру.
10
Урок 10. Шаблони корпоративних рішень. Шаблони сервісів
Service Interface - Створює компонент, що забезпечує точку входу для взаємодії споживачів з сервісом, та представляє слабо деталізований інтерфейс, відділяючи реалізацію від бізнес-логіки.

Service Gateway – Інкапсулює код, що реалізує клієнтську частину контракту, в окремий компонент Service Gateway, який виступає у ролі посередника для других сервісів, інкапсулюючи деталі підключення до джерела і виконуючи всі необхідні перетворення.
11
Урок 11. Шаблони корпоративних рішень. Шаблони веб-представлення
Model-View-Controller - Цей шаблон розподіляє, основані на користувацькому вводі, дані предметної області представлення і дій у три окремих класи. Модель керує поведінкою та даними домену програми, відповідає на запити даних про стан (звичайно такі запити надходять від Представлення) та на команди внести зміни до стану (звичайно такі запити надходять від Контролера). Представлення керує відображенням інформації. Контролер інтерпретує вхідні дані користувача, отримані від миші та клавіатури, і інформує модель та/чи представлення про необхідність внесення відповідних змін.

Page Controller - Цей шаблон дозволяє приймати вхідні дані запиту сторінки, викликати запитувані дії моделі та визначати відповідне представлення сторінки-результату. Відокремлює логіку диспетчеризації від коду представлення. Там, де це необхідно, створюйте загальний базовий клас для всіх контролерів сторінок, щоб уникнути дублювання коду і підвищити узгодженість и тестованість.

Front Controller - Цей шаблон вирішує проблему децентралізації, що притаманна шаблону Page Controller, шляхом направлення всіх запитів через один контролер. Сам контролер звичайно реалізований у вигляді двох складових: обробника і ієрархії команд. Обробник отримує від веб-сервера HTTP-запити Post або Get та добуває із них відповідні параметри. Він використовує параметри запиту для вибору необхідної команди, а потім для передачі управління команді обробки. Самі команди також входять до складу контролера. Команди представляють певні дії, описані у шаблоні Command.

Шаблони Intercepting Filter, Page Cache та Observer.
12
Урок 12. Шаблони інтеграції. Шари інтеграції
Entity Aggregation - Вводить шар Entity Aggregation, що забезпечує логічне представлення сутностей на рівні підприємства з фізичними зв’язками, які підтримують доступ та оновлення відповідних їм екземплярів у серверних сховищах.

Process Integration - Визначає модель бізнес-процесів, яка описує окремі етапи, складові складної бізнес-функції. Створює окремий компонент диспетчера процесів, який може одночасно інтерпретувати велику кількість екземплярів цієї моделі та взаємодіяти з існуючими програмами для виконання окремих етапів процесу.

Portal Integration - Створює програму порталу, що відображає дані, отримані із декількох програм, в уніфікованому UI. Користувачі можуть здійснювати необхідні задачі на основі даних, відображених на цьому порталі.
13
Урок 13. Шаблони інтеграції. Топології інтеграції
Message Broker - Розширює рішення по інтеграції. Брокер повідомлень – це фізичний компонент, що забезпечує зв’язок між програмами. Програми взаємодіють не одне з одним, а лише з посередником - брокером повідомлень. Програма відправляє повідомлення посереднику разом з логічним ім’ям отримувачів. Посередник знаходить програми, зареєстровані під даним логічним іменем, і передає їм повідомлення.

Message Bus - Підключає всі програми через логічний компонент, який називають шиною повідомлень. Шина повідомлень забезпечує передачу повідомлень між програмами. Шина повідомлень включає три основні елементи: набір узгоджених з повідомленнями схем, набір загальних повідомлень з командою та спільно використовуваною інфраструктурою для відправки повідомлень шини отримувачем.

Publish/Subscribe - Забезпечує класи для публікації подій, на які можуть підписуватися інші програми. Механізм Publish\Subscribe забезпечує відправку подій чи повідомлень всім читачам.
14
Урок 14. Шаблони інтеграції. Системні підключення
Data Integration - Інтегрує програми у логічному шарі доступу до даних, відкриває дані однієї програми (джерело) для доступу із інших програм (ціль).

Functional Integration - Інтегрирує програми у логічному бізнес-шарі, відкриваючи бізнес-функцію однієї програми (джерело) для доступу із інших програм (ціль).

Service-Oriented Integration - Для логічної інтеграції програм у бізнес-шарі, дозволяє системам використовувати та надавати веб-сервіси XML. Використовуйте контракти Web Services Description Language (WSDL) для описання інтерфейсів цих систем. Забезпечте можливість взаємодії, узгодивши вашу реалізацію з сімейством специфікацій Web Services (WS-*).

Presentation Integration - Забезпечує доступ до функцій програми через UI шляхом моделювання вводу даних користувачем та читання даних з екрану монітору.
15
Урок 15. Шаблони інтеграції. Додаткові шаблони інтеграції
Pipes and Filters - Реалізує перетворення шляхом використання послідовності компонентів фільтрів, де кожный фільтр отримує вхідні повідомлення, виконує прості перетворення та передає перетворене повідомлення наступному компоненту. Проводить повідомлення через канали, що з’єднують входи та виходи фільтрів та буферизують зв’язок між фільтрами.

Gateway - Виносить всю функціональність доступу до зовнішньої системи в один інтерфейс. Даний шаблон усуває необхідність розуміння принципів підключення до зовнішньої системи, спрощуючи, таким чином, процеси розробки та обслуговування, пов’язані з доступом до зовнішніх систем.
16
Урок 16. Шаблони безпеки Web-сервісів. Аутентифікація
Brokered Authentication - Веб-сервіс перевіряє облікові дані, надані клієнтом, без необхідності прямої взаємодії між двома сторонами. Посередник аутентифікації, якому довіряють обидві сторони, передає маркер доступу клієнту. Після цього клієнт може надати Веб-сервісу облікові дані, включаючи і маркер доступу. Наступні три шаблони описують спеціальні реалізації шаблона Brokered Authentication.

Brokered Authentication: Kerberos – Виконує аутентифікацію через посередника між клієнтами і Веб-серверами за допомогою протоколу Kerberos.

Brokered Authentication: X509 PKI - Для перевірки облікових даних, що надаються програмою запитувачем, використовує аутентифікацію через посередника по сертифікатам X.509, що випущені центром сертифікації (Certificate Authority, CA) для інфраструктури відкритих ключів (Public Key Infrastructure, PKI).

Brokered Authentication: STS - Використовує аутентифікацію через посередника з маркером доступу, що випущені сервісом маркерів доступу (Security Token Service, STS). І клієнт, і Веб-сервіс довіряють STS забезпечення маркерів доступу.

Direct Authentication - Веб-сервіс виступає в ролі сервіса аутентифікації, перевіряючи облікові дані, отримані від клієнта. Облікові дані, що включають підтвердження володіння на основі спільних секретів, звіряються зі сховищем посвідчень.
17
Урок 17. Шаблони безпеки Web-сервісів. Авторизація і Керування винятковими ситуаціями
Trusted Subsystem - Веб-сервіс для доступу до додаткових ресурсів діє як довірена підсистема. Він використовує власні облікові дані (замість даних користувача) для доступу до ресурсів.

Exception Shielding - Очищає небезпечні виняткові ситуації, замінюючи їх винятковими ситуаціями з безпечною структурою. Повертає клієнту тільки очищенні виняткові ситуації чи виняткові ситуації із безпечною структурою. Виняткові ситуації із безпечною структурою не включають конфіденціальні дані в повідомлення про виняткову ситуацію та не містять докладні записи трасування стеку, оскільки це може призвести до розголошення конфіденційних даних про внутрішні операції Веб-сервісу.
18
Урок 18. Шаблони безпеки Web-сервісів. Шифрування повідомлень і Виявлення повторів повідомлень
Data Confidentiality - Використовує шифрування для захисту конфіденційних даних повідомлення. Незашифровані дані, котрі називають відкритим текстом (plaintext), перетворюються в зашифровані дані (ciphertext). Дані шифруються за допомогою алгоритму і ключа шифрування. По досягненню місця призначення зашифрований текст перетворюється знову у звичайний текст.

Message Replay Detection - Кеширування ідентифікаторів вхідних повідомлень і використання виявлення повторів повідомлень дозволяє розпізнати та відключити повідомлення, для яких у кеші визначення повторів вже існує відповідний запис.
19
Урок 19. Шаблони безпеки Web-сервісів. Підпис повідомлень і Перевірка повідомлень
Data Origin Authentication - Використання аутентифікації джерела даних дозволяє отримувачу впевнитися, що повідомлення не були пошкоджені при передачі (цілісність даних) і що вони надходять від очікуваного відправника (аутентичність).

Message Validator - Логіка перевірки повідомлень реалізує строго визначену політику, котра установлює обов’язкові частини повідомлення запиту для його успішної обробки сервісом. Перевірка корисного навантаження XML-повідомлень на відповідність XML-схемі (XSD) дозволяє впевнитися у правильності їх структури та відповідності очікуванням сервісу-обробника. Логіка перевірки також перевіряє повідомлення на відповідність певним критеріям: перевіряється розмір повідомлення, його вміст і використані набори символів. Повідомлення, що не відповідають заданим критеріям, відхиляються.
20
Урок 20. Шаблони безпеки Web-сервісів. Розгортання
Perimeter Service Router - Спроектуйте проміжний Веб-сервіс, який буде виступати у ролі прикордонного сервісного маршрутизатора. Прикордонний сервісний маршрутизатор забезпечує зовнішній інтерфейс прикордонної мережі для внутрішніх Веб-сервісів. Він приймає повідомлення від зовнішніх програм і направляє їх на відповідний Веб-сервіс приватної мережі.
Навички після курсу

По завершенню курсу ви будете вміти

Check

Розбиратися в патернах проектування складових додатків WPF та Silverlight

Check

Використовувати шаблони передачі даних, корпоративних рішень, інтеграції, безпеки

Check

Визначати, в якій ситуації варто використовувати той чи інший шаблон

Check

Покращувати якість коду та полегшувати його читання
Старт очікується

Спробуй
Microsoft Patterns & Practices безкоштовно

Перше повноцінне заняття з тренером.

Як проходить навчання

Просто та зрозуміло

Структура заняття

120 хвилин

Теорія

Розбір коду

Q&A

Теорія - 60 хвилин

Розбір коду - 45 хвилин

Q&A сесія - 10 хвилин

Коли відбуваються заняття

Група 1

Група 2

ПН

ВТ

СР

ЧТ

ПТ

СБ

НД

19:00 - 21:00

Живе заняття з тренером

Задавай питання в реальному часі

1

Живі онлайн заняття
з тренером

Заняття групи проходять онлайн. Це ефективне живе спілкування. Всі уроки записуються і доступні для повторного перегляду.

2

Виконання
домашніх завдань

До кожного уроку розроблені практичні завдання, які необхідно виконувати і здавати у спеціальній LMS системі

3

Перевірка ДЗ
та фідбек

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

4

Тестування
та сертифікація

Після завершення курсу студенти складають фінальний тест і отримують сертифікат, який підтверджує рівень знань.

Сертифікація

Підтверди свої знання

Іменний сертифікат після закінчення курсу

Після завершення курсу та проходження тестування ви отримаєте іменний сертифікат від CyberBionic Systematics та TestProvider.com — платформи, яку визнають провідні IT-компанії України

Тестування та сертифікація ІТ фахівців проходить на нашій власній платформі TestProvider.com
Ви отримуєте завірений сертифікат від CyberBionic Systematics, який підтверджує рівень ваших знань та збільшує шанси на успішне працевлаштування.
Кожен сертифікат має серійний номер, роботодавець може його перевірити та переконатися у справжності сертифіката.
Certificate
Хто проводить навчання

Твої тренери

Запис відкритий

Готовий почати навчання?

Відправляй заявку та зафіксуй свою знижку на навчання

Уточнимо деталі та зарезервуємо місце

Отримаєш перший урок безкоштовно

Почнеш карʼєру в ІТ

Зарезервувати місце

Залиш контакти — ми зателефонуємо та розповімо деталі

Відгуки студентів
Що кажуть ті, хто вже вчився
Відгуки наших студентів
photo
Oleksandr Sych
Lead Software Engineer в EPAM
Star Star Star Star Star
<p>Я проходив навчання в ІТ-школі CyberBionic Systematics і залишився дуже задоволений. До курсів я вже цікавився програмуванням і мав певний досвід, але саме навчання допомогло мені систематизувати теоретичні знання та дізнатися багато нового.</p> <p>Особливо корисною виявилася підготовка до фінального тесту &mdash; ці питання часто трапляються на співбесідах, і отримані знання допомагають мені й сьогодні.</p> <p>Єдиний недолік &mdash; для досягнення хороших результатів потрібно докладати чимало власних зусиль і самостійно вчитися, але це лише мотивує розвиватися далі.</p> <p>Я дуже радий, що свого часу обрав саме цю школу &mdash; це рішення дало мені потужний поштовх у професійному розвитку. Рекомендую CyberBionic Systematics усім, хто хоче якісно вивчити програмування!</p>

Читати повністю

Підтверджено на DOU
photo
Анна Ливицкая
FrontEnd Developer
Star Star Star Star Star
Об учебном центре CyberBionic Systematics узнала через знакомого. Данная специальность интересовала меня и ранее, было интересно верстать страницы, но тяжело давался при самообучении JavaScript. Мне нравится в этой специальности то, что сразу же видно, что ты делаешь, и возможность внести творческую нотку. Легким был JavaScript Essential и Bootstrap 4, тяжелым оказался Angular 2 из-за большого количества связей между файлами, тяжело уловить логику происходящего. Я приобрел очень много новых навыков и умений, полностью новым был TypeScript и Angular 2, понятия конструкторов, классов, абстракций. Сергей Патёха- отличный тренер, большое спасибо ему за терпение и способность по нескольку раз объяснять одно и то же. Хорошо подаёт информацию, интересно и оживленно. Советы новичкам: делать практические задания.
photo
Dmytro Saliakin
Full-stack developer (JS, Python)
Star Star Star Star Star
<p>Системний курс з хорошою підтримкою<br /> Проходжу курс Python Developer у CyberBionic Systematics &mdash; загалом задоволений.</p> <p>Що сподобалось:</p> <ul> <li>Матеріали добре структуровані, логічна послідовність тем</li> <li>Тренери-практики, які пояснюють на реальних прикладах, а не просто читають слайди</li> <li>Швидка технічна підтримка &mdash; відповідають по суті, з прикладами коду</li> <li>Надають ліцензії для IDE (JetBrains)</li> <li>Доступні сертифікації на Test Provider</li> <li>Практичні завдання можна додати в портфоліо</li> <li>Кар&rsquo;єрний сервіс допомагає з резюме та підготовкою до співбесід</li> <li>Курс регулярно оновлюється</li> </ul> <p>Для кого підійде:</p> <p>Як для новачків, так і для тих, хто перекваліфіковується. Підхід системний &mdash; вчать не просто писати код, а структурувати проєкти, документувати, дотримуватись best practices.<br /> Рекомендую тим, хто цінує якість матеріалів і підтримку в процесі навчання.<br /> В процесі навчання для активних студентів передбачені несподівані приємні бонуси)</p>

Читати повністю

Підтверджено на DOU
icon

Відгуки з DOU

icon

Відгуки з Facebook

icon

Відгуки з Google

Вартість навчання

Оберіть свій формат

Групове навчання з тренером

2 заняття на тиждень

2 години

288

або × 7 платежів

Оплата частинами

Monobank

7 платежів
PrivatBank

7 платежів
Консультація

Залишились питання?

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

Phone

0 800 337 146

Або напишіть нам у месенджери:

Viber Viber
Telegram Telegram
WhatsApp WhatsApp

Звʼяжемось з вами найближчим часом

Напишіть мені у