Principes van software-engineering

Casestudy: Software bouwen in Python

Mark Pedigo

Principal Data Scientist

Routekaart

Overzicht van welke delen van het project klaar zijn en welke we starten.

Casestudy: Software bouwen in Python

Modulariteit

Modulariteit: kernprincipe in software-engineering

  • Losse, zelfstandige modules
  • Gerichte, specifieke functionaliteit
  • Duidelijke, goed gedefinieerde interfaces
  • Ontwikkeling, testen, onderhoud gescheiden
Casestudy: Software bouwen in Python

Het DRY-principe

"Don't Repeat Yourself": kernprincipe in software-engineering

  • Minimaliseer herhaling
  • Herbruikbare componenten en classes
  • Eén keer schrijven, breed hergebruiken
  • Schone, onderhoudbare, minder foutgevoelige code
Casestudy: Software bouwen in Python

Packaging

Packaging: kernprincipe in software-engineering

  • Geordende mappenstructuur
  • Code efficiënt beheren en structureren
  • Het bestand __init__.py voor module-initialisatie
Casestudy: Software bouwen in Python

Een package bouwen

  • Minimale structuur: package-map + Python-bestand
  • Package: map + __init__.py-bestand
  • Korte, lowercase mapnamen met underscores
  • __init__.py: markeert map als package
Casestudy: Software bouwen in Python

Absolute en relatieve imports

  • Stel, je hebt deze projectstructuur
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • Absolute import: Volledig pad vanaf de root
    • from package import module1
    • from package.module1 import function
  • Relatieve import: Pad t.o.v. huidige locatie (. = huidig, .. = bovenliggend)
    • from . import module1
    • from .module1 import function
  • Absoluut: Duidelijk, maar minder draagbaar
  • Relatief: Flexibel, contextafhankelijk
Casestudy: Software bouwen in Python

Laten we oefenen!

Casestudy: Software bouwen in Python

Preparing Video For Download...