Quale modello di progettazione (in python) da utilizzare per le informazioni runtime separate con codice core?

1

Non sono sicuro che questa sia una domanda chiara.

Lavoro su un progetto python basato su terminale (console), per il quale ho intenzione di implementare una GUI.

Non sono importante in CS quindi non ho davvero idea di come progettare efficacemente un sistema di messaggi tale che:

  1. In console, fornisce informazioni di aspetto gradevole durante il runtime.
  2. Nella GUI, è diretto a un determinato widget, ad esempio un'etichetta di testo o una barra in basso o una cornice nascosta.

Hai qualche suggerimento?

Attualmente sto utilizzando la funzione print per fornire informazioni essenziali su stdout durante il runtime. Quindi un sacco di print .... sono distribuiti qua e là tra il codice.

Sto pensando di usare variabili macro come "FILE_NOT_EXTIS_MESSAGE" per la stampa e definire le variabili in un file. È un modo standard che le persone fanno sempre? Che ne dici di introdurre un sistema di registrazione?

In sintesi, chiedo uno schema che le persone comunemente usano per gestire le informazioni sullo schermo con elevata efficacia e adattabilità.

    
posta Jerry Ma 09.09.2013 - 22:27
fonte

2 risposte

1

Lo scopo di questa domanda è troppo ampio per rispondere su questa piattaforma.

Tuttavia, posso suggerire alcuni suggerimenti che potrebbero aiutarti

  • Mantieni il modulo del tuo core e i moduli che visualizzano / registrano le informazioni il più distinti possibile.

  • Avere un'interfaccia per il modulo del programma principale che può essere utilizzato dal modulo di uscita della console e / o dal modulo di uscita della GUI e / o dal modulo di registrazione.

  • Il modulo principale non deve sapere a quale dei moduli di output sono attualmente collegati.

  • Controlla lo schema di progettazione di Observer, se il modulo principale invia solo informazioni che devono essere visualizzate / registrate.

Il modo migliore per imparare è provando diversi modi di strutturare il codice, quindi leggi di più sulla progettazione e poi torna indietro e rifatta il tuo progetto. Iterate fino a quando non finisci il tempo.

    
risposta data 10.09.2013 - 06:05
fonte
0

Quello che stai descrivendo è davvero un logger. Python fornisce le seguenti funzionalità: documentazione di registrazione (Py 3.3) . La classe del logger raccoglie fondamentalmente tutti i messaggi che ci si butta dentro e può emetterli per l'uso in qualsiasi forma tu voglia.

Personalmente mi piace avere una piccola finestra di stato con i messaggi, ma scrivo software scientifico, quindi sono sempre in modalità debug. Per gli utenti finali comuni, rimango con un file di registro (se utilizzi editor di testo avanzati (notepad ++, ecc.) Puoi dire loro di ricaricare continuamente e scorrere fino all'ultima riga, che è piuttosto vicina all'output di una console)

    
risposta data 19.09.2013 - 01:55
fonte

Leggi altre domande sui tag