Курс Software Engineering

  • Online
  • Для начинающих, Для опытных
  • Other
Образовательный центр: IT-Столица
Формат:Курс
Язык обучения:Ukrainian
Длительность обучения:10 занятий
Начало курса:Любой момент
Стоимость обучения:6 100 UAH за курс

Курс Software Engineering побудований таким чином, що студенти розглядають п'ять складових процесу роботи, щоб отримати повне уявлення про процес розробки ПО. Continuous Integration, Testing, Delivery, Deployment і Operation.

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

Підготовчий етап

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

Continuous Integration

  • Основні поняття у галузі розробки програмного забезпечення
  • Взаємодія розробника з членами команди
  • Застосування Git для командної роботи над кодом
  • Веб-додаток для управління завданнями Github
  • Складання робочого графіка і менеджмент ресурсів
  • За допомогою яких інструментів реалізують перевірку якості коду
  • Автоматизація та управління завданнями за допомогою Jenkins
  • Бранчінг версій для релізу і стабілізація коду

Continuous Testing

  • Принципи розробки TDD (test-driven development)
  • Як відбувається тестування якості коду із застосуванням SonarQube
  • Юніт-тести й покриття коду
  • Налаштування профілів воріт якості Quality Gates
  • User Story Isolation
  • Як визначити уразливості коду
  • Відправлення коду в репозиторій
  • Мануальне тестування
  • Автоматизоване тестування
  • E2E - тестування функції в реальних сервісах
  • UI - тестування інтерфейсу шляхом імітації дій користувача

Архітектура програмного забезпечення (Software Architecture)

  • Зовнішні чинники якості - robustness (стійкість), correctness (коректність), reusability (повторне використання), extendibility (розширюваність)
  • Який буває архітектура ПО - Serverless, SOA, Web-Queue-Worker
  • Типи архітектури: Standalone, N-tier, SOA, Microservices, Big Data / Big Compute, Serverless, Web-Queue-Worker, Event-driven architecture
  • Моделі хмарних сервісів. XaaS, SaaS, IaaS, PaaS
  • Збір вимог, постановка задачі estimates, pre-sales, RFI/RFP - запит інформації й запит пропозиції
  • Робота з зовнішніми факторами якості

Проєктування програмного забезпечення (Software Design)

  • Архітектура ПО і проєктування
  • Архітектурне рішення і дизайн інтерфейсу
  • Графічне представлення програмного коду
  • Розподілене обчислення - теорія та алгоритми
  • Polyglot Persistence
  • Polyglot Programming
  • Що таке парадигми програмування
  • Функціональне та логічне програмування
  • Процедурне програмування й ООП
  • Структура даних
  • Компілятор і інтерпретатор
  • Відносини між класами в ООП: композиція і декомпозиція, асоціація, успадкування, агрегація
  • Загальна структура організації проєкту
  • Компонентна модель
  • Дизайн-шаблони GRASP, T-diagrams, UML, MVC (MVVM)
  • Документація
  • CAP-теорема
  • RDBMS
  • NoSQL
  • Graph DB, DB Migration
  • Написання мікросервісу для API на мові Java
  • Створення мікросервісу для аутентифікації за допомогою Node.js
  • Багатопотокове програмування C++
  • Алгоритми lock-free
  • Angular/Typescript (front-end складова сервісу)
  • Groovy для Jenkins DSL
  • Підключення Postgresql, MongoDB і Neo4j
  • Аутентифікація й авторизація. Контроль доступу RBAC/ABAC
  • Message brokering
  • Чим відрізняються принципи mobile-first і mobile-only
  • Waterfall, RUP, Agile
  • Багатопотокове програмування, клієнт-серверні системи, P2P
  • Технічний борг, legacy-продукти, рефакторинг
  • Кешування
  • Multitenancy, аудит, брендинг, GDPR

Програмний інтерфейс додатку API

  • Як створюється інтерфейс взаємодії
  • Принципи об'єктно-орієнтованого програмування SOLID
  • Контрактне програмування - специфікації інтерфейсів
  • Що таке ортогональний API
  • Стандарти API - GraphQL, RESTful API, OpenAPI
  • Впровадження системи API-менеджменту
  • Як організувати пагінацію (pagination)
  • Rate Limits - обмеження частоти запитів до API для оптимізації роботи додатка
  • Огляд ML

Continuous Delivery

  • Внутрішня структура розробки ПО
  • Сховище артефактів в репозиторії
  • Що таке змінні середовища
  • NoOps, Opsless
  • Технологія Docker. Як використовувати Docker compose, щоб запустити додаток-контейнер
  • Swarm
  • Kubernetes
  • Service Mesh (Istio)

Continuous Deployment

  • Середовище розробки: Preview Env, Development Env, Test Env, Production Env
  • Ефективність моделі follow-the-sun
  • Швидкість розгортання версії ПЗ і вартість розробки
  • A/B, Canary, 0-downtime, Blue-Green Deployment - шаблони розгортання
  • Rolling updates - плаваючий метод оновлення ПЗ

Continuous Operation

  • Технічна підтримка як частина розробки програмного забезпечення
  • Обслуговування клієнтів і доопрацювання програми
  • Планування розробки з урахуванням завдань SRE
  • Лінії підтримки L1, L2, L3 і розв'язання клієнтських проблем
  • Угода про рівень обслуговування SRE, SRE, SLI, SLA, SLO
  • Відновлення даних і data backup strategy
  • Системи моніторингу прогнозування
  • Налаштування сповіщень про збої

Хмарні технології

  • Хмарні технології як інструмент розробки
  • Ключові технології хмарних сервісів
  • Огляд основних хмарних платформ, їх архітектура
  • Гібридна хмара - що таке і як з ним працювати
  • Створення кластера для розгортання програми
  • Робота з географічними зонами
  • Апаратна і призначена для користувача віртуалізація
  • Технології віртуалізації Docker і Kubernetes

Що вміють випускники курсу:

  • Використовувати гілки та працювати в Git, знають стандарти зберігання програмного коду
  • Ефективно проводити Release Management, керуючи процесом виходу програмного продукту
  • Налаштовувати Quality Gates для SonarQube для оцінки якості коду, створювати користувальницькі ворота якості
  • Проводити Code Review для підвищення якості коду програмних продуктів
  • Формулювати бізнес-вимоги й перетворювати їх в технічне завдання
  • Знають всі етапи життєвого циклу ПО і контролюють якість проходження кожного, починаючи з планування системи, закінчуючи її технічною підтримкою
  • Уміють відправляти Pull Request, що є необхідною частиною процесу Code Review, і вносити зміни в код
  • Знають принципи TDD (test-driven development) і застосовують їх у своїх проєктах
  • Проводять налаштування систем (CI/CD), поєднуючи SonarQube, Jenkins, SonarQube, Github і Nexus для безперервної інтеграції
  • Створюють фреймворки тестування і знають відмінності між end-to-end і юніт-тестуванням

Особливості курсу

  • Викладачі практики
  • Корпоративне навчання
  • Можливість навчатись у вихідні
  • Можливість влаштуватись у провідні IT-компанії
  • Індивідуальне навчання

Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.

Похожие курсы

Учебный центр
Genius.Space
Формат
Online
Начало обучения
Будь-який момент
Длительность
9 занятий
Уровень
Для начинающих, Для опытных
Язык обучения
Ukrainian
Стоимость
49 USD за курс
Учебный центр
CASES-Креативна Практика
Формат
Online
Начало обучения
Будь-який момент
Длительность
-
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
безкоштовно
Учебный центр
SkillsUp
Формат
Online
Начало обучения
Будь-який момент
Длительность
11 недель
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
5 490 UAH за курс
Учебный центр
Учебный центр «Данко»
Формат
Online
Начало обучения
Дата формується
Длительность
12 часов
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
уточняйте