Avendo scoperto di recente python, ho tentato di scrivere un semplice logger. I dati vengono letti da un dispositivo, elaborati, visualizzati e archiviati su disco. Questi diversi compiti appartengono a moduli diversi, ovviamente.
Ciò che sembrava essere interessante al momento, era fornire un'interfaccia a riga di comando per ogni modulo, come spiegato qui: link
Il risultato è tat sebbene il programma nel suo complesso usi import x
e usi le classi nei moduli, i moduli possono essere usati anche dalla riga di comando. Ad esempio, invocando hw_comm.py
si aprirà il dispositivo predefinito con le opzioni predefinite e lo stream su stdout
. Anche plot.py
si aspetta modulo dati stdin
e disegna un grafico.
Posso vedere un sacco di vantaggi in questo design, come
- facile da eseguire il debug
- facile da adattare per diversi casi d'uso
- facile da testare
- fornisce un valore immediato all'utente finale, molto prima che il progetto sia finito.
Ho letto solo alcune migliaia di righe di python ancora, ma non ho visto questo approccio (moduli sia come classi importabili che come script stand-alone) altrove. Perché dovrebbe essere? Il lavoro extra per supportare questo formato è troppo per un progetto aziendale? O forse, a differenza del mio piccolo progetto, i progetti di scala aziendale non possono facilmente supportare questo comportamento, con centinaia di moduli che fanno cose diverse solo per raggiungere insieme un obiettivo complesso?