Технологии программирования 3. Паттерны программирования. Методологии разработки

YOUTUBE · 30.11.2025 05:26

Ключевые темы и таймкоды

Паттерны проектирования

0:05
  • Вводятся аббревиатуры для описания принципов проектирования: SOLID, KISS, DRY, SRP, OCP.
  • Рассматривается пример фабричного метода, который используется для создания объектов без нарушения принципа Open-Closed.

Паттерн Адаптер

4:29
  • Обсуждается паттерн Адаптер, который позволяет адаптировать код к изменениям в библиотеке.
  • Рассматривается пример с использованием библиотеки и изменением сигнатуры функции.

Семантика версий

7:46
  • Объясняется концепция семантики версий, которая состоит из мажорной, минорной и патч-версии.
  • Обсуждается, как изменение мажорной версии может нарушить обратную совместимость, а изменение минорной версии может сохранить ее.

Примеры продуктов с версиями

13:49
  • Приводятся примеры продуктов, которые используют семантику версий: Python, Gnome, Java.
  • Обсуждается, как некоторые продукты могут отбрасывать мажорную версию и использовать только минорные и патч-версии для обозначения изменений.

Версионирование и адаптеры

15:33
  • Обсуждение стандарта C++ и его нумерации.
  • Версионирование продукта и его использование для прочной разработки.
  • Семантика версий до первой обычно меняется только минорная версия, мажорная не меняется.
  • Версионирование может быть привязано к именованным комитам (тэгам).

Антипаттерны и их примеры

29:08
  • Антипаттерн "божественный объект" - класс, который пытается вобрать в себя всю функциональность.
  • Примеры: система, университет, инфу.
  • Антипаттерн "одиночка" - создание объекта таким образом, чтобы он хранился в единственном экземпляре.
  • Примеры: система, университет.
  • Паттерн "фасад" - программируемый интерфейс, который позволяет использовать внешние функции.

Фасады и методологии разработки

32:50
  • В видео обсуждается понятие "фасад", которое означает общую точку входа для запросов к различным компонентам системы.
  • Фасад позволяет ограничить доступ к внутренним компонентам и обеспечивает более гибкий и масштабируемый подход к разработке.

Стадии разработки и методологии

37:18
  • В видео обсуждаются стадии разработки программного обеспечения, включая проектирование, разработку, тестирование, внедрение и сопровождение.
  • Обсуждаются различные методологии разработки, включая тест-дрим девелопмент и ви-модель, где выход стадии теста является предварением стадии разработки.

Влияние на выбор методологии

46:28
  • В видео обсуждаются факторы, влияющие на выбор методологии разработки, включая спецификацию проекта, бюджет, строки, качество, сертификаты качества и масштаб проекта.
  • В качестве примера обсуждаются различные операционные системы, которые могут быть использованы в проектах.

Внешние факторы и методология

48:09
  • Обсуждение влияния внешних факторов на методологию разработки программного обеспечения, включая особенности проекта, количество людей в команде, сроки, бюджет, вариант поставки и качество.
  • Упоминание о форс-мажорных обстоятельствах, которые могут повлиять на сроки проекта, включая банкротство заказчика, интернет-аварии, пожары и т.д.

Государственные органы и распоряжения

53:22
  • Упоминание о законе о хранении персональных данных и его влиянии на выбор методологии разработки.
  • Обсуждение государственных распоряжений, таких как закон о хранении персональных данных, требования к шифрованию и сертификации.

Действия конкурентов

57:37
  • Упоминание о кибератаках, переманивании сотрудников и скупке объектов недвижимости конкурентами.
  • Обсуждение управленческих скандалов и их влияния на конкуренцию.

Экономические действия конкурентов

1:00:11
  • Упоминание о влиянии экономических действий конкурентов на государственные органы и распоряжения.
  • Пример с покупкой компании по доставке еды и его влияние на антимонопольные службы.

Методологии разработки

1:02:35
  • В видео обсуждаются различные методологии разработки, включая водопадную, расширяющую ее модель с возможностью отката на стадии проектирования, и спиральную модель, которая подходит для стадии проектирования.
  • Водопадная модель подходит для небольших проектов с четким началом и концом, а также четкими графиками.
  • Проблема этой модели заключается в том, что если на стадии тестирования возникают проблемы, проект останавливается, что может привести к большим проблемам.
  • Модель с разборкой позволяет делать откат на стадии проектирования, но также может привести к долгостроям.

Ви-модель

1:07:52
  • Ви-модель состоит из нескольких стадий: бизнес-анализ, системный анализ, архитектура и проектирование модулей.
  • На каждой стадии создаются требования для верификации выполнения этих требований.
  • Пирамида тестирования включает модульное, интеграционное, системное и приемочное тестирование.
  • Ви-модель подходит для проектов с жесткой приемкой, например, в космической отрасли.

Спиральная модель

1:14:47
  • Спиральная модель подходит для стадии проектирования, когда необходимо договориться о сроках, начале и завершении проекта.
  • Модель включает стадии разработки, рисков, планирования и определения задач.

Спираль разработки

1:16:20
  • В видео обсуждается спираль разработки, которая включает в себя определение сроков проекта, разработку концепции, оценку риска и создание прототипа.
  • После каждой итерации спирали, риски проекта сужаются, и время разработки становится более точным.

Тестирование и итерации

1:17:09
  • В видео объясняется, что после каждой итерации, прототип тестируется, и модель проекта расширяется.
  • Это позволяет проверить, выдерживает ли продукт нагрузку и другие факторы.

Семантическое версионирование

1:19:02
  • В видео обсуждается семантическое версионирование, которое позволяет уточнять время разработки проекта после каждой итерации.
  • В следующем видео планируется обсуждение юмель.