Principii de inginerie software

Studiu de caz: Construirea de software în Python

Mark Pedigo

Principal Data Scientist

Foaie de parcurs

Foaie de parcurs care ilustrează etapele finalizate și cele care urmează.

Studiu de caz: Construirea de software în Python

Modularitatea

Modularitatea: Principiu esențial în ingineria software

  • Module distincte și independente
  • Funcționalitate specifică și bine delimitată
  • Interfețe clare și bine definite
  • Dezvoltare, testare și întreținere separate
Studiu de caz: Construirea de software în Python

Principiul DRY

„Don't Repeat Yourself": Principiu esențial în ingineria software

  • Minimizați repetițiile
  • Componente și clase reutilizabile
  • Scrieți o dată, utilizați oriunde
  • Cod curat, ușor de întreținut și mai puțin predispus la erori
Studiu de caz: Construirea de software în Python

Împachetarea

Împachetarea: Principiu esențial în ingineria software

  • Ierarhie de foldere organizată
  • Gestionați și structurați codul eficient
  • Fișierul __init__.py pentru inițializarea modulelor
Studiu de caz: Construirea de software în Python

Construirea unui pachet

  • Structură minimă: folder de pachet + fișier Python
  • Pachet: folder + fișier __init__.py
  • Nume de directoare scurte, cu litere mici și liniuțe de subliniere
  • __init__.py: Identifică folderul ca pachet
Studiu de caz: Construirea de software în Python

Importuri absolute și relative

  • Să presupunem că aveți următoarea structură de proiect
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • Import absolut: Cale completă din rădăcină
    • from package import module1
    • from package.module1 import function
  • Import relativ: Cale față de locația curentă (. = curent, .. = părinte)
    • from . import module1
    • from .module1 import function
  • Absolut: Clar, dar mai puțin portabil
  • Relativ: Flexibil, dependent de context
Studiu de caz: Construirea de software în Python

Să exersăm!

Studiu de caz: Construirea de software în Python

Preparing Video For Download...