Zasady inżynierii oprogramowania

Studium przypadku: tworzenie oprogramowania w Pythonie

Mark Pedigo

Principal Data Scientist

Mapa drogowa

Mapa drogowa pokazująca ukończone i planowane etapy projektu.

Studium przypadku: tworzenie oprogramowania w Pythonie

Modularność

Modularność: Kluczowa zasada inżynierii oprogramowania

  • Odrębne, niezależne moduły
  • Skupiona, konkretna funkcjonalność
  • Jasne, dobrze zdefiniowane interfejsy
  • Oddzielne tworzenie, testowanie i utrzymanie
Studium przypadku: tworzenie oprogramowania w Pythonie

Zasada DRY

„Nie powtarzaj się": Kluczowa zasada inżynierii oprogramowania

  • Minimalizacja powtórzeń
  • Komponenty i klasy wielokrotnego użytku
  • Napisz raz, stosuj wszędzie
  • Czysty, łatwy w utrzymaniu, mniej podatny na błędy kod
Studium przypadku: tworzenie oprogramowania w Pythonie

Pakowanie

Pakowanie: Kluczowa zasada inżynierii oprogramowania

  • Zorganizowana hierarchia folderów
  • Efektywne zarządzanie i porządkowanie kodu
  • Plik __init__.py do inicjalizacji modułu
Studium przypadku: tworzenie oprogramowania w Pythonie

Tworzenie pakietu

  • Minimalna struktura: folder pakietu + plik Python
  • Pakiet: folder + plik __init__.py
  • Krótkie, małe litery w nazwach katalogów, z podkreśleniami
  • __init__.py: Oznacza folder jako pakiet
Studium przypadku: tworzenie oprogramowania w Pythonie

Importy bezwzględne i względne

  • Załóżmy, że projekt ma następującą strukturę
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • Import bezwzględny: Pełna ścieżka od korzenia
    • from package import module1
    • from package.module1 import function
  • Import względny: Ścieżka względem bieżącej lokalizacji (. = bieżący, .. = nadrzędny)
    • from . import module1
    • from .module1 import function
  • Bezwzględny: Czytelny, ale mniej przenośny
  • Względny: Elastyczny, zależny od kontekstu
Studium przypadku: tworzenie oprogramowania w Pythonie

Ćwiczmy!

Studium przypadku: tworzenie oprogramowania w Pythonie

Preparing Video For Download...