Принципы разработки программного обеспечения

Практический проект: разработка программного обеспечения на Python

Mark Pedigo

Principal Data Scientist

Дорожная карта

Дорожная карта с выполненными и предстоящими этапами проекта.

Практический проект: разработка программного обеспечения на Python

Модульность

Модульность: ключевой принцип разработки ПО

  • Самостоятельные независимые модули
  • Чёткая, специализированная функциональность
  • Понятные, хорошо определённые интерфейсы
  • Раздельная разработка, тестирование и поддержка
Практический проект: разработка программного обеспечения на Python

Принцип DRY

«Не повторяйся»: ключевой принцип разработки ПО

  • Минимизация повторений
  • Повторно используемые компоненты и классы
  • Пишем один раз — применяем везде
  • Чистый, поддерживаемый, менее подверженный ошибкам код
Практический проект: разработка программного обеспечения на Python

Пакетирование

Пакетирование: ключевой принцип разработки ПО

  • Организованная иерархия папок
  • Эффективное управление и структурирование кода
  • Файл __init__.py для инициализации модуля
Практический проект: разработка программного обеспечения на Python

Создание пакета

  • Минимальная структура: папка пакета + файл Python
  • Пакет: папка + файл __init__.py
  • Короткие имена директорий в нижнем регистре с подчёркиванием
  • __init__.py: определяет папку как пакет
Практический проект: разработка программного обеспечения на Python

Абсолютный и относительный импорт

  • Предположим, структура проекта выглядит следующим образом
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • Абсолютный импорт: полный путь от корня
    • from package import module1
    • from package.module1 import function
  • Относительный импорт: путь от текущего расположения (. = текущий, .. = родительский)
    • from . import module1
    • from .module1 import function
  • Абсолютный: понятен, но менее переносим
  • Относительный: гибкий, зависит от контекста
Практический проект: разработка программного обеспечения на Python

Давайте потренируемся!

Практический проект: разработка программного обеспечения на Python

Preparing Video For Download...