Préambule
JMP Scripting Language (JSL) offre des fonctionnalités de script allant de la génération de code automatisée (similaire à un enregistreur de macros) à un environnement de développement intégré pour le développement d'applications. Comme pour tout langage de programmation, l'application de bonnes pratiques de programmation aux projets JSL se traduira par des scripts et des applications robustes et faciles à prendre en charge. Étant donné que JSL a simplifié les tâches de programmation courantes, la nécessité de ces pratiques est facile à négliger ou à ignorer.Compte tenu de la puissance et de la flexibilité offertes par JSL, le non-respect des bonnes pratiques de programmation expose les utilisateurs à des risques potentiels. Ce court document a été rédigé pour vous sensibiliser à ces risques et pour vous fournir des stratégies de programmation que vous pouvez utiliser pour les gérer.
Meilleures pratiques générales
- Commencez toujours par un plan écrit ou un énoncé de problème et utilisez-le pour créer une liste de contrôle de livrables clairs.Ceux-ci aident à prévenir la dérive de la portée et à maintenir le projet sur la tâche.
- Dans la mesure du possible, utilisez des structures existantes (fonctions, code préfabriqué, bibliothèques, etc.) au lieu de tout concevoir à partir de zéro.
- Bien qu'il soit souvent impossible de tester toutes les situations d'entrée possibles, plusieurs conditions d'entrée doivent être utilisées. Des tests par rapport aux versions préliminaires de JMP doivent également être effectués. Lorsque cela est possible, un ensemble enregistré de fichiers de test ou un ensemble écrit de conditions de test (par exemple, les paramètres de la boîte de dialogue) doit être utilisé.
- Un plan de succession doit être créé, indiquant clairement qui sera responsable de la maintenance du code lorsque le ou les créateurs d'origine ne seront plus responsables de la maintenance du code.
Structure du script
- Que vous développiez du code seul ou en groupe, il est conseillé de travailler à partir d'un guide de style. Le guide doit contenir des informations telles que les conventions de dénomination des variables et des fonctions, l'espacement autour des éléments de codage (c'est-à-dire la mise en forme), les commentaires, etc. Le document conduit à plus de cohérence entre les scripts et les applications, ce qui les rend plus lisibles et maintenables. Des liens vers des exemples peuvent être trouvés ici .
- Une section de commentaires doit être incluse en haut du script avec des informations telles que le numéro de version, l'auteur, la date de révision, les entrées obligatoires et facultatives, les corrections de bogues de la version précédente et la version JMP testée. Il doit être mis à jour à chaque modification du script afin de conserver un historique des modifications. Une brève description du comportement du programme, y compris la portée et les limites, doit également être incluse.
- Des commentaires doivent être ajoutés à toute section de code où le choix de la structure de données, du flux de contrôle ou de la logique n'est pas immédiatement évident.
- Les variables ne doivent pas être définies en dehors du script/de la fonction/du bloc dans lequel elles sont initialement définies. Les variables globales doivent être évitées sauf en cas d'absolue nécessité. La fonctionnalité de portée JSL doit être utilisée pour implémenter ces restrictions.
- Dans la mesure du possible, les fonctionnalités de script ou d'application doivent être divisées en petits blocs de code indépendants. Ce code peut être stocké dans des fichiers séparés ou des structures de données JSL.
Modes de livraison
- Envisagez d'utiliser un référentiel, un système de contrôle de version, etc. pour gérer les collections de code et vous assurer que les utilisateurs peuvent accéder à la version la plus récente d'un script.
- Dans la mesure du possible, le code doit être empaqueté pour en faciliter l'utilisation.
- Pour les applications moyennes à grandes, les compléments sont préférés pour des solutions complètes
- À moins que vous ne soyez absolument sûr que le complément sera universellement compatible, utilisez les fonctionnalités Version JMP minimale et Hôte pris en charge dans l'assistant Complément pour empêcher le complément de s'exécuter dans des environnements non pris en charge.
- Pour les grands projets, les applications JMP doivent être utilisées dans les compléments pour éviter des temps de chargement lents.
- Les scripts JSL non empaquetés doivent être réservés aux bibliothèques de fonctions, aux scripts de traitement, aux travaux de développement, etc.
- Le code (dans JSL, Addin ou Formulaire d'application) que l'utilisateur final ne doit pas pouvoir modifier ou afficher doit être chiffré.
- Le code que les utilisateurs ne devraient pas être en mesure d'exécuter universellement doit avoir exécuté le chiffrement en place.
autres considérations
- Envisagez d'inclure des licences ou des clauses de non-responsabilité avec le code. Ils peuvent être requis par une organisation si le code est publié publiquement.
À propos de ce document
Q : Où sont les matériaux ?
R : Vous êtes en train de le lire.
Il n'est actuellement disponible qu'en interne. Cela va changer.
Q : Quelle est notre motivation ?
R : Pour résoudre le problème client suivant, qu'il soit réel ou perçu :
Mes scripts ne fonctionnent pas avec la dernière version de JMP.
Q : Qu'espérons-nous accomplir ?
R : Bien que nous ne puissions pas contrôler les cas où de nouveaux problèmes sont introduits, nous pouvons fournir des conseils pour éviter les problèmes auto-infligés.
Q : À quoi sert/ne sert pas le document ?
R : Le document actuel se veut un aperçu général des bonnes pratiques de programmation. Il est descriptif et non prescriptif. Ce dernier viendra probablement plus tard.
Q : De quoi avons-nous besoin de vous ?
R : Veuillez nous indiquer :
- Si quelque chose manque ou n'est pas clair dans le document.
- Ce que vous pensez devrait arriver ensuite.
- Où vous croyez cela, et les informations futures devraient vivre.
- Ce dont vous avez besoin de notre part pour effectuer le processus de migration de vos clients avec des scripts vers la dernière version.