Differenzia tra i formati di input degli script utente

1

Ho un progetto .NET al lavoro che fornisce un paio di script (Iron) Python ai clienti, per consentire loro di personalizzare l'output del programma. L'applicazione genera codice per determinate macchine e supporta un paio di formati diversi.

Fino a poco tempo fa, fornivamo solo uno script per un formato. Ci stiamo espandendo per includere il supporto per gli altri. Se l'utente sta utilizzando uno script, selezionano il loro script di input prima di generare il codice di output. Uno script progettato per Format1 output genererà errori se tentano di generare output Format2 . Devo occuparmi di questo.

Un'opzione sarebbe semplicemente lasciare che i clienti usino il buon senso e, se caricano lo script sbagliato, falliranno o, peggio, produrranno dati inaccurati. Sono propenso a fornire un po 'più di protezione.

Al momento sto considerando di mettere una riga di commento in stile shebang nella parte superiore dello script, ala:

# OUTPUT - Format1

Se l'utente tenta di eseguire un Format2 processo con uno script Format1 , li avviserà. In alternativa, potrei creare estensioni di file diverse per gli script di input che variano in base al tipo.

L'approccio ai commenti sul tipo di file aiuta a prevenire il caricamento scorretto dello script, a costo di non avvisare l'utente finché non lo ha già selezionato, tramite una finestra di dialogo. L'utilizzo di estensioni di file diverse mi consentirà di ridurre il disordine visivo quando fornisci una finestra di dialogo dei file, ma in realtà non impedisce loro di caricare lo script sbagliato.

Quindi non sono sicuro se l'approccio giusto sia semplicemente lasciarlo in pace o fornire alcune misure di sicurezza.

    
posta KChaloux 01.06.2012 - 21:09
fonte

1 risposta

0

Bene, nessuno risponde, quindi suppongo che dirò cosa abbiamo finito per fare. Abbiamo finito per inserire un controllo programmatico nello script che garantisce che il processo passato abbia l'attributo identificativo corretto (in questo caso, un Enum , che IronPython può confrontare come una stringa). Se viene passato un processo con l'identificativo errato Enum , lo script avviserà l'utente e terminerà.

Nulla impedisce all'utente di eliminare quel controllo dal proprio script. Lo stesso potrebbe dirsi per cambiare le estensioni di file o scrivere una riga di tipo shebang. Tuttavia, sembra che il lavoro sia svolto senza troppi sforzi.

    
risposta data 22.06.2012 - 23:47
fonte

Leggi altre domande sui tag