-2
votes

Comment éviter les odeurs de code (autre..Si) Syntaxe?

ci-dessous est le script Jenkins Groovy pour pousser les artefacts à la fonderie du cloud. XXX


Il s'agit d'un script unique de fichier JENKINS GROOVY, écrit à l'aide de plusieurs référentiels GITLAB. :

 Entrez la description de l'image ici

Pourquoi Pusha / Poussée? Parce que chaque poussée a son propre fichier manifeste

Comment éviter sinon..if odeur de code?

suggérez-vous HASHMAP avec reponame comme clé?

Si oui, comment enregistrer un pushx () méthode pendant le début de script? Dans Python, nous utilisons un décorateur d'enregistrement (exécuté à l'heure d'importation) pour mettre à jour les commandes dictionnaire , comme indiqué ci-dessous:

 Entrez la description de l'image ici


2 commentaires

Vraiment pas clair pourquoi avez-vous besoin de "si" ... quand vous avez juste besoin de pousser (reponame) ...


@daggett parce que chaque poussée a son propre manifeste.yml que le pipeline écrase, basé sur Dev / QA / Prod Space dans PCF


3 Réponses :


0
votes

Le code ci-dessous définit le mannequin pushx () pour imiter celles de votre exemple, puis définissez une carte de fermeture dans laquelle chaque fermeture appelle la fonction pertinente pushx () , puis recherchez la fermeture pertinente par nom et l'invoque, en passant le nom comme un paramètre: xxx

peut-être que quelque chose comme ça fonctionnerait pour vous. Cela sent toujours assez mauvais cependant; Si Pusha () n'est jamais utilisé lors de la reproduction pour le repo A, pourquoi a-t-il besoin du nom de repo en tant que paramètre? Il se peut que ce soit un meilleur moyen d'organiser tout ce cas, y compris les pièces non présentées ci-dessus.


0 commentaires

0
votes

Vous pouvez imiter un commutateur avec une dicte expédiée. En dessous d'un exemple idiot: xxx

sortie: xxx


0 commentaires

1
votes

Voici le code qui correspond approximativement à votre python. Cependant, cela vient de mettre la fermeture de la clé dans une carte ... xxx


2 commentaires

La réponse reste la même. Votre problème n'est pas clair. Je ne vois aucune raison pour laquelle vous ne pouvez pas utiliser la carte.


J'ai pusha () comme méthode extérieure nœud () {} Portée avec syntaxe def pusha () {...}