Preambolo
JMP Scripting Language (JSL) offre funzionalità di scripting che vanno dalla generazione automatizzata di codice (simile a un registratore di macro) a un ambiente di sviluppo integrato per lo sviluppo di applicazioni. Come con qualsiasi linguaggio di programmazione, l'applicazione di buone pratiche di programmazione ai progetti JSL si tradurrà in script e applicazioni robusti e facili da supportare. Poiché JSL ha semplificato le attività di programmazione comuni, la necessità di queste pratiche è facile da trascurare o ignorare.Data la potenza e la flessibilità offerte da JSL, ignorare le buone pratiche di programmazione espone gli utenti a potenziali rischi. Questo breve documento è stato scritto per renderti consapevole di questi rischi e per fornire strategie di programmazione che puoi utilizzare per gestirli.
Migliori Pratiche Generali
- Inizia sempre con un piano scritto o una dichiarazione del problema e usalo per creare una lista di controllo di risultati chiari.Questi aiutano a prevenire l'oscillazione dell'ambito e a mantenere il progetto in attività.
- Ove possibile, utilizzare le strutture esistenti (funzioni, codice predefinito, librerie, ecc.) invece di progettare tutto da zero.
- Sebbene sia spesso impossibile testare tutte le possibili situazioni di input, è necessario utilizzare più condizioni di input. Dovrebbero essere condotti anche test su versioni non definitive di JMP. Quando possibile, dovrebbe essere utilizzato un insieme salvato di file di test o un insieme scritto di condizioni di test (ad esempio, le impostazioni della finestra di dialogo).
- Dovrebbe essere creato un piano di successione, che espliciti chi sarà responsabile della manutenzione del codice quando i creatori originali non saranno più responsabili della manutenzione del codice.
Struttura della sceneggiatura
- Che tu sviluppi codice da solo o in gruppo, è consigliabile lavorare da una guida di stile. La guida dovrebbe contenere informazioni come convenzioni di denominazione per variabili e funzioni, spaziatura intorno agli elementi di codifica (ad esempio, formattazione), commenti, ecc. Il documento porta a una maggiore coerenza tra script e applicazioni, rendendoli più leggibili e gestibili. È possibile trovare collegamenti ad esempi qui .
- Una sezione commenti dovrebbe essere inclusa nella parte superiore dello script con informazioni come numero di versione, autore, data di revisione, input obbligatori e facoltativi, correzioni di bug dalla versione precedente e versione JMP testata. Dovrebbe essere aggiornato ogni volta che lo script viene modificato in modo da conservare una cronologia delle modifiche. Dovrebbe essere inclusa anche una breve descrizione del comportamento del programma che includa l'ambito e le limitazioni.
- I commenti devono essere aggiunti a qualsiasi sezione del codice in cui la scelta della struttura dei dati, del flusso di controllo o della logica non è immediatamente ovvia.
- Le variabili non devono essere definite al di fuori dello script/funzione/blocco in cui sono state inizialmente definite. Le variabili globali dovrebbero essere evitate a meno che non siano assolutamente necessarie. La funzionalità di ambito JSL dovrebbe essere utilizzata per implementare queste restrizioni.
- Quando possibile, le funzionalità di script o applicazioni devono essere suddivise in piccoli blocchi di codice indipendenti. Tale codice può essere archiviato in file separati o strutture di dati JSL.
Metodi di consegna
- Prendi in considerazione l'utilizzo di un repository, un sistema di controllo della versione, ecc. per gestire raccolte di codice e assicurare che gli utenti possano accedere alla versione più recente di uno script.
- Ove possibile, il codice dovrebbe essere confezionato per facilità d'uso.
- Per applicazioni medio-grandi, i componenti aggiuntivi sono preferiti per soluzioni complete
- A meno che non si sia completamente sicuri che il componente aggiuntivo sarà universalmente compatibile, utilizzare le funzioni Versione JMP minima e Host supportato nella procedura guidata del componente aggiuntivo per impedire l'esecuzione del componente aggiuntivo in ambienti non supportati.
- Per progetti di grandi dimensioni, le applicazioni JMP dovrebbero essere utilizzate all'interno dei componenti aggiuntivi per evitare tempi di caricamento lenti.
- Gli script JSL non imballati devono essere riservati per librerie di funzioni, script di elaborazione, lavoro di sviluppo, ecc.
- Il codice (in JSL, componente aggiuntivo o modulo di richiesta) che l'utente finale non dovrebbe essere in grado di modificare o visualizzare deve essere crittografato.
- Il codice che gli utenti non dovrebbero essere universalmente in grado di eseguire dovrebbe aver eseguito la crittografia.
altre considerazioni
- Prendi in considerazione l'inclusione di licenze o disclaimer legali con il codice. Possono essere richiesti da un'organizzazione se il codice viene pubblicato pubblicamente.
A proposito di questo documento
Dove sono i materiali?
A: Lo stai leggendo.
Al momento è disponibile solo internamente. Questo cambierà.
Qual è la nostra motivazione?
R: Per affrontare il seguente problema del cliente, reale o percepito:
I miei script non funzioneranno con l'ultima versione di JMP.
Cosa speriamo di ottenere?
R: Anche se non possiamo controllare i casi in cui vengono introdotti nuovi problemi, possiamo fornire una guida per evitare problemi autoinflitti.
A cosa serve/non serve il documento?
R: Il presente documento vuole essere una panoramica generale delle buone pratiche di programmazione. È descrittivo e non prescrittivo. Quest'ultimo probabilmente arriverà più tardi.
Di cosa abbiamo bisogno da te?
R: Per favore fateci sapere:
- Se c'è qualcosa che manca o non è chiaro nel documento.
- Quello che pensi dovrebbe succedere dopo.
- Dove ci credi, e le informazioni future dovrebbero vivere.
- Di cosa hai bisogno da noi per rendere il processo di spostamento dei tuoi clienti con gli script all'ultima versione.
Aggiungerei una sezione chiamata Script Development e ci sono diverse cose nei metodi di distribuzione che avrebbe senso includere in Script Development (ad esempio, repository e controllo della versione).Insieme ai componenti aggiuntivi elencati in Metodi di distribuzione, puoi anche menzionare altri metodi di distribuzione: nella tabella dei dati, script autonomi, esecuzione su funzione aperta, esecuzione utilizzando l'utilità di pianificazione delle attività di Windows, script nei giornali per gestire i flussi di lavoro. Lo sviluppo di script può includere cose come il salvataggio di script dai report (e il log in JMP 16!) e un paio di nozioni di base come come unire gli script che sono stati salvati dai report e Nuova finestra(), risorse come Scripting Index, JMP Comunità, ecc...